【机器学习】传统目标检测算法之DPM

2023-11-01

前面介绍了一下HOG,HOG有一个缺点:很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测。

继2005年HOG提出之后,DPM模型在借鉴了HOG之后也被提了出来同时还取得了不错的成绩。

DPM概述

DPMDeformable Part Model),正如其名称所述,可变形的组件模型,是一种基于组件的检测算法,其所见即其意。该模型由大神Felzenszwalb在2008年提出,并发表了一系列的cvpr,NIPS。并且还拿下了2010年,PASCAL VOC的“终身成就奖”。

DPM算法采用了改进后的HOG特征,SVM分类器和滑动窗口(Sliding Windows)检测思想,针对目标的多视角问题,采用了多组件(Component)的策略,针对目标本身的形变问题,采用了基于图结构(Pictorial Structure)的部件模型策略。此外,将样本的所属的模型类别,部件模型的位置等作为潜变量(Latent Variable),采用多示例学习(Multiple-instance Learning)来自动确定。

DPM特征

DPM检测模型

DPM检测流程

Latent SVM

 

传统的Hog+SVM和DPM+LatentSVM的区别如上面公式所示。

         由于,训练的样本中,负样本集肯定是100%的准确的,而正样本集中就可能有噪声。因为,正样本的标注是人工进行的,人是会犯错的,标注的也肯定会有不精确的。因此,需要首先去除里面的噪声数据。而对于剩下的数据,里面由于各种角度,姿势的不一样,导致训练的模型的梯度图也比较发散,无规则。因此需要选择其中的具有相同的姿势的数据,即离正负样本的分界线最近的那些样本,将离分界线很近的样本称为Hard-examples,相反,那些距离较远的称为Easy-examples。

实际效果图如下图所示:

 

 

Latent SVM接下来有时间独立开一篇去整理学习一下。

优缺点

DPM算法的步骤:

1、产生多个模板,整体模板以及不同的局部模板;

2、拿这些不同的模板同输入图像“卷积”产生特征图;

3、将这些特征图组合形成融合特征;

4、对融合特征进行传统分类,回归得到目标位置。

DPM算法优点:

1、方法直观简单;

2、运算速度块;

2、适应动物变形;

DPM算法缺点:

1、性能一般

2、激励特征人为设计,工作量大;

   这种方法不具有普适性,因为用来检测人的激励模板不能拿去检测小猫或者小狗,所以在每做一种物件的探测的时候,都需要人工来设计激励模板,为了获得比较好的探测效果,需要花大量时间去做一些设计,工作量很大。

3、无法适应大幅度的旋转,稳定性很差;


前面官方的话讲了一大堆,简单概括一下整体流程吧

  1. 首先要有根模型(root filter)和若干部件模型(part filter)和部件模型的偏离损失。这些东西就是通过已有的人体,四肢等样本提取HOG特征然后经过svm训练而来的。
  2. 用root filter提取原始图像的DMP特征图,再对DMP特征图用root filter和part filter计算响应图。(实际上就是一个模版匹配)
  3. 加权平均root的和part的,得到最终的融合特征图
  4. 对融合特征进行传统分类,回归得到目标位置。

DPM算法思想:输入一幅图像,对图像提取图像特征,针对某个物件制作出相应的激励模板,在原始的图像中计算,得到该激励效果图,根据激励的分布,确定目标位置。

制作激励模板就相当于人为地设计一个卷积核,一个比较复杂的卷积核,拿这个卷积核与原图像进行卷积运算得到一幅特征图。比如拿一个静止站立的人的HOG特征形成的卷积核,与原图像的梯度图像进行一个卷积运算,那么目标区域就会被加密。

那么说到这里就会出现一个问题,人在图像中可能有各种的姿态,比如躺着,趴着,坐着等等,我们只用一个静止站立状态的人的激励模板去做探测就会失败。也就是说图像中的物件可能会发生形变,那么我们用固定的激励模板去探测目标物件的时候就不再适用,那么该如何解决这一问题呢,这就引出了局部模板,也就是说,我们不做一个整体的人的激励模板,转而去做人的部分组件的模板,比如头、胳膊、腿等,其实这就是DPM算法。

再概括一下,HOG的特征提取比较死板,一定要是一个人,这个人还只能是特定的姿态比如站立,动作幅度改变不能太大。而DMP就是先检测整个人,再检测四肢,然后综合两者的信息去判断。

参考文章:https://blog.csdn.net/qq_14845119/article/details/52625426

https://blog.csdn.net/tiandijun/article/details/50601841

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【机器学习】传统目标检测算法之DPM 的相关文章

  • linux gcc 头文件搜索路径

    一 头文件 gcc 在编译时寻找所需要的头文件 搜寻会从 I开始 然后找gcc的环境变量 C INCLUDE PATH CPLUS INCLUDE PATH OBJC INCLUDE PATH 再找内定目录 usr include usr
  • Nginx面试中最常见的18道题

    Nginx的并发能力在同类型网页服务器中的表现 相对而言是比较好的 因此受到了很多企业的青睐 我国使用Nginx网站的知名用户包括腾讯 淘宝 百度 京东 新浪 网易等等 Nginx是网页服务器运维人员必备技能之一 下面为大家整理了一些比较常
  • 光标聚焦事件—搜索框实例

    要点 1 onfocus事件是光标聚集响应的事件 onblur是焦点失去事件 2 注意光标聚焦时 将提示内容去掉 并将字体的前景色改为黑色 和用户输入颜色上作区分 在改回提示内容时 将前景色改为灰色 html和内置的js代码

随机推荐

  • Pymc3的安装

    Pymc3的安装 安装代码 python版本3 8 pip install arviz pip install theano pymc pip install pymc3 一定要装theano pymc 而不是theano 安装theano
  • Chrome 谷歌翻译凉了?教你修复

    9月30日发现 Chrome 的右键网页翻译突然失效了 遇到其他语言的网站 Chrome 右键的网页翻译真乃神器 原来 Google 发言人称因 使用率太低 谷歌翻译服务已正式退出中国 这就导致了两个问题 Chrome 浏览器的右键网页翻译
  • 深度学习:Keras入门(一)之基础篇

    http www cnblogs com lc1217 p 7132364 html 1 关于Keras 1 简介 Keras是由纯python编写的基于theano tensorflow的深度学习框架 Keras是一个高层神经网络API
  • 283. Move Zeroes

    class Solution public void moveZeroes vector
  • adb push permission denied解决办法

    解决方法一 adb remount 解决方法二 1 adb shell进去手机端 2 代表是普通用户权限 3 su 进去root权限 变成 4 chmod R 777 system 5 exit exit 退出来 6 adb push xx
  • 关于GB2312,GBK,GB18030,Unicode,utf-8,utf-16等的字符集和编码问题一次全说清

    文章目录 关于字符 字符集和字符编码 ASCII字符集 ASCII编码 EASCII ASCII扩展 字符集和编码 GB2312字符集和编码 GB18030字符集和编码 BIG5字符集和编码 Unicode字符集 UTF 32编码 UTF
  • CLion配置Qt环境

    配置CLion QT5 前言 一 Qt的安装 二 安装Clion 三 配置Clion 总结 前言 我们在学习或者使用QT开发项目的时候 会使用Qt Creator进行编码 但是Qt Creator编译器对于从PyCharm或者IDEA等Je
  • 数据可视化需求评估内容

    一 参与沟通人员 1 业务需求提出方 2 IT或设计的业务系统运维部门 eg ERP部门 3 报表开发部门人员 二 会议确定内容 1 确定报表使用对象 2 各指标的数据来源是否都有 数据质量 3 数据缺失是否需要补录 补录方式 是否需要帆软
  • Python 抓取数据并可视化

    Python 抓取数据并数据可视化 前言 一 数据抓取篇 更新爬虫代码 2023 3 11 1 简单的构建反爬措施 2 解析数据 3 完整代码 二 数据可视化篇 1 数据可视化库选用 2 案例实战 1 柱状图Bar 2 地图Map 省份 城
  • 深度学习Keras实现CNN结构框架------LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet

    一 LeNet 5模型的结构图 LeNet 5共有7层 不包含输入 每层都包含可训练参数 连接权重 输入图像为32 32大小 这要比Mnist数据库 一个公认的手写数据库 大小应该是28 28 中最大的字母还大 这样做的原因是希望潜在的明显
  • Mac字体怎么安装?如何在macOS电脑导入字体文件?

    在我们平时见到的广告 摄影水印 报价 专辑封面 书籍封面产品设计 签名 名片 徽标 品牌 杂志 社交媒体文案等等都是需要不同的字体来完成 想要突出你的作品风格 选择一款精美的字体是很重要的 下面让MacW小编带大家学一下Mac字体的安装方法
  • json-server 安装报错 ERR:EPERM

    在学习json server中碰到的问题 在安装json server时 npm install g json server 会报出ERR EPERM的错 就像这样 这是因为没有权限导致的 百度了很多方法都没用 打开windows powe
  • HTML5练习案例——特别休假申请单

    完成 特别休假申请单 表格结构如下图所示 代码实现 h2 style width 500px text align center h2
  • 简单体验K8S的Saas服务-青云KubeSphereCloud轻量集群服务

    简单体验K8S的Saas服务 青云KubeSphereCloud轻量集群服务 背景 之前有写过几篇KubeSphere的使用笔记 使用kubekey的all in one安装K8S1 24及KubeSphere3 3 https lizhi
  • win7安装centos7双系统

    采用硬盘安装 前景 打算用U盘安装 但是u盘是FAT32格式限制了文件4g大小 我官网下的iso镜像大于4g 只好采用硬盘安装 其实U盘安装是最方便的 网上很多教程用UltraISO软件把U盘直接作为linux镜像启动盘 猜测这种方式适合空
  • Qt .pro文件部分变量解析

    由于项目需要 转战QT半月有余 被虐的够惨的 把相关心得写下来 寻求大家的帮助与指导 日期 2016 06 主要变量 TARGET 用于表示生成的exe dll lib名称 TEMPLATE 生成工程时 指明生成的对象 可以是库 也可以是e
  • 天数怎么换算成月_如何一键将EXCEL的整数天数转变为年月日形式

    小编今天要和大家讲解的是在Excel中 如何通过一键设置把excel表格中的整数天数 例如20100909 转换成多少年多少月多少天 例如2010年9月9日 的格式 本例非常实用而且操作也不复杂 首先第一步 小伙伴们需要了解本例的重点是利用
  • 5.找出字符串中第一个只出现一次的字符

    5 找出字符串中第一个只出现一次的字符 输入描述 输入几个非空字符串 输出描述 输出第一个只出现一次的字符 如果不存在输出 1 示例 输入 asdfasdfo aabb 输出 o 1 分析 1 键盘录入一个字符串 2 如果一个字符串从前往后
  • CentOS 7安装postgres数据库

    一 yum安装postgres 1 下载所需要的数据库版本https yum postgresql org repopackages php https yum postgresql org repopackages php 2 安装数据库
  • 【机器学习】传统目标检测算法之DPM

    前面介绍了一下HOG HOG有一个缺点 很难处理遮挡问题 人体姿势动作幅度过大或物体方向改变也不易检测 继2005年HOG提出之后 DPM模型在借鉴了HOG之后也被提了出来同时还取得了不错的成绩 DPM概述 DPM Deformable P