本文主要是介绍DPM(Deformable Parts Model),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目标检测方法
(1)基于cascade的目标检测
cascade的级联思想可以快速抛弃没有目标的平滑窗(sliding window),因而大大提高了检测效率,但也不是没缺点,缺点就是它仅仅使用了很弱的特征,用它做分类的检测器也是弱分类器,仅仅比随机猜的要好一些,它的精度靠的是多个弱分类器来实行一票否决式推举(就是大家都检测是对的)来提高命中率,确定分类器的个数也是经验问题。这节就来说说改进的特征,尽量使得改进的特征可以检测任何物体,当然Deep Learning学习特征很有效,但今天还是按论文发表顺序来说下其他方法,(服务器还没配置好,现在还不能大批跑Deep Learning ),。
(2)基于形变部件的目标检测
形变部件模型检测方法是现在除了深度学习之外的还相对不错的目标检测方法,先来看下为什么要使用形变部件,在下图1中,同一个人的不同姿态,试问用前面几节中的什么方法可以检测到这些不同姿态的人?阈值不行,广义霍夫变换行吗?人的姿态是变换无穷的,需要太多的模板。霍夫森林投票?貌似可以,但是霍夫森立的特征是图像块,只适用于一些形变不大的物体,当图像块内的形变很大时同样不太适用。那么ASM可以吗?想想也是和广义霍夫变换一样,需要太多的均值模板。归根结底就是我们没有很好的形状描述方法,没有好的特征。而Pedro几乎每发表一篇论文就改进一下形状描述的方法,最终由简单的表示方法到语法形式的表示方法,其演化过程可以在参考文献[4]中看出,参考文献[4]是Pedro的博士论文。
图1
1 思路
DPM是一个非常成功的目标检测算法,连续获得VOC(Visual Object Class)07,08,09年的检测冠军。目前已成为众多分类器、分割、人体姿态和行为分类的重要部分。DPM可以看做是HOG(Histogrrams of Oriented Gradients)的扩展,大体思路与HOG一致。先计算梯度方向直方图,然后用SVM(Surpport Vector Machine )训练得到物体的梯度模型(Model)。有了这样的模板就可以直接用来分类了,简单理解就是模型和目标匹配。DPM只是在模型上做了很多改进工作。
上图是HOG论文中训练出来的人形模型。它是单模型,对直立的正面和背面人检测效果很好,较以前取得了重大的突破。也是目前为止最好的的特征(最近被CVPR20 13年的一篇论文 《Histograms of Sparse Codes for Object Detection》 超过了)。但是, 如果是侧面呢?所以自然我们会想到用多模型来做。DPM就使用了2个模型,主页上最新版本Versio5的程序使用了12个模型。
上图就是自行车的模型,左图为侧面看,右图为从正前方看。训练的时候只是给了一堆自行车的照片,没有标注是属于component 1,还是component 2.直接按照边界的长宽比,分为2半训练。这样肯定会有很多很多分错了的情况,训练出来的自然就失真了。不过没关系,论文里面只是把这两个Model当做初始值。重点就是作者用了多模型。
上图右边的两个模型各使用了6个子模型,白色矩形框出来的区域就是一个子模型。基本上见过自行车的人都知道这是自行车。之所以会比左边好辨识,是因为分错component类别的问题基本上解决了,还有就是图像分辨率是左边的两倍,这个就不细说,看论文。
有了多模型就能解决视角的问题了,还有个严重的问题,动物是动的,就算是没有生命的车也有很多款式,单单用一个Model,如果动物动一下,比如美女搔首弄姿,那模型和这个美女的匹配程度就低了很多。也就是说,我们的模型太死板了,不能适应物体的运动,特别是非刚性物体的运动。自然我们又能想到添加子模型,比如给手一个子模型,当手移动时,子模型能够检测到手的位置。把子模型和主模型的匹配程度综合起来,最简单的就是相加,那模型匹配程度不就提高了吗?还有个小细节,子模型肯定不能离主模型太远了,试想下假如手到身体的位置有两倍身高那么远,那这还是人吗?也许这是个检测是不是鬼的好主意。所以我们加入子模型与主模型的位置偏移作为Cost,也就是说综合得分要减去偏移Cost.本质上就是使用子模型和主模型的空间先验知识。
来一张合影。最右边就是我们的偏移Cost,圆圈中心自然就是子模型的理性位置,如果检测出来的子模型的位置恰好在此,那Cost就为0,在周边那就要减掉一定的值,偏离的越远减掉的值越大。
参考文献[1]、[2]、[3]分别讲述了如何利用形变模型描述物体(特征阶段)、如何利用形变部件来做检测(特征处理+分类阶段)、如何加速检测。文献[1]的形变部件。在Deformable Part Model中,通过描述每一部分和部分间的位置关系来表示物体(part+deformable configuration)。其实早在1973年,Part Model就已经在 “Therepresentation and matching of pictorial structures” 这篇文章中被提出了。
图2
Part Model中,我们通过描述a collection of parts以及connection between parts来表示物体。图2表示经典的弹簧模型,物体的每一部分通
这篇关于DPM(Deformable Parts Model)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!