DPM(Deformable Part Model)原理详解

写在前面:

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

 

由于DPM用到了HOG的东西,可以参考本人http://blog.csdn.net/qq_14845119/article/details/52187774

 

算法思想:

1Root filter+ Part filter

该模型包含了一个8*8分辨率的根滤波器(Root filter)(左)和4*4分辨率的组件滤波器(Part filter)(中)。其中,中图的分辨率为左图的2倍,并且Part filter的大小是Root filter的2倍,因此,看的梯度会更加精细。右图为其高斯滤波后的2倍空间模型。


(左)Rootfilter(中) Part filter (右)高斯滤波后模型

2)响应值(score)的计算:

响应值得分公式如下:

其中,

x 0, y 0, l 0分别为锚点的横坐标,纵坐标,尺度。

R 0,l 0 (x 0, y 0)为根模型的响应分数

Di,l 0−λ(2(x 0, y 0) + vi)为部件模型的响应分数

b为不同模型组件之间的偏移系数,加上这个偏移量使其与跟模型进行对齐

2(x 0, y 0)表示组件模型的像素为原始的2倍,所以,锚点*2

vi为锚点和理想检测点之间的偏移系数,如下图中红框和黄框

 

其部件模型的详细响应得分公式如下:


其中,

x, y为训练的理想模型的位置

Ri,l(x + dx, y + dy)为组件模型的匹配得分

di · φd(dx, dy))为组件的偏移损失得分

di ·为偏移损失系数

φd(dx, dy))为组件模型的锚点和组件模型的检测点之间的距离

简单的说,这个公式表明,组件模型的响应越高,各个组件和其相应的锚点距离越小,则响应分数越高,越有可能是待检测的物体。

 

3DPM特征定义:

DPM首先采用的是HOG进行特征的提取,但是又有别于HOG,DPM中,只保留了HOG中的Cell。如上图所示,假设,一个8*8的Cell,将该细胞单元与其对角线临域的4个细胞单元做归一化操作。

         提取有符号的HOG梯度,0-360度将产生18个梯度向量,提取无符号的HOG梯度,0-180度将产生9个梯度向量。因此,一个8*8的细胞单元将会产生,(18+9)*4=108,维度有点高,Felzenszwalb大神给出了其优化思想。

         首先,只提取无符号的HOG梯度,将会产生4*9=36维特征,将其看成一个4*9的矩阵,分别将行和列分别相加,最终将生成4+9=13个特征向量,为了进一步提高精度,将提取的18维有符号的梯度特征也加进来,这样,一共产生13+18=31维梯度特征。实现了很好的目标检测。

4 DPM 检测流程:


如上图所示,对于任意一张输入图像,提取其DPM特征图,然后将原始图像进行高斯金字塔上采样,然后提取其DPM特征图。对于原始图像的DPM特征图和训练好的Root filter做卷积操作,从而得到Root filter的响应图。对于2倍图像的DPM特征图,和训练好的Part filter做卷积操作,从而得到Part filter的响应图。然后对其精细高斯金字塔的下采样操作。这样Root filter的响应图和Part filter的响应图就具有相同的分辨率了。然后将其进行加权平均,得到最终的响应图。亮度越大表示响应值越大。

5Latent SVM:

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

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

         实际效果图如下图所示:

实验效果:

如下图所示,左面为检测自行车的检测效果,右面为Root filter,Part filter,2维高斯滤波下的偏离损失图

References:

[1]: https://people.eecs.berkeley.edu/~rbg/latent/index.html

[2]: P. Felzenszwalb, D. McAllester, D.Ramanan A Discriminatively Trained, Multiscale, Deformable Part Model IEEEConference on Computer Vision and Pattern Recognition (CVPR), 2008

[3]: P. Felzenszwalb, R. Girshick, D.McAllester, D. Ramanan Object Detection with Discriminatively TrainedPart Based Models IEEE Transactions on Pattern Analysis and MachineIntelligence, Vol. 32, No. 9, Sep. 2010 

[4]: P. Felzenszwalb, R. Girshick, D.McAllester Cascade Object Detection with Deformable Part Models IEEEConference on Computer Vision and Pattern Recognition (CVPR), 2010

[5]: P. Felzenszwalb, D. McAllester ObjectDetection Grammars University of Chicago, Computer Science TR-2010-02, February2010

[6]: R. Girshick, P. Felzenszwalb, D.McAllester Object Detection with Grammar Models Neural InformationProcessing Systems (NIPS), 2011

[7]: R. Girshick From RigidTemplates to Grammars: Object Detection with Structured Models
Ph.D. dissertation, The University of Chicago, Apr. 2012



  • 22
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
DPM(Dirichlet Process Mixture Model)模型是一种非参数贝叶斯模型,用于聚类和分割数据集。在DPM模型中,参数设置对于模型的性能和结果具有重要影响。 首先,需要设置先验分布参数。DPM模型使用Dirichlet process先验作为聚类分布,其中的超参数控制了聚类过程中簇的数量和大小。通常使用狄利克雷过程先验分布的浓度参数来调整簇的数量,较小的浓度参数会得到较少的簇数目,而较大的浓度参数会得到较多的簇数目。 其次,需要设置超参数。超参数用于调整模型的性能和灵活性。通常包括簇成员权重的先验分布参数、伽马分布参数以及观测模型参数的先验分布参数等。超参数的设置需要根据实际情况进行调整,以在给定数据集下获得最佳拟合效果。 此外,还需设置模型的初始参数。模型初始参数的选择会直接影响收敛的速度和结果的质量。一种常用的初始化策略是随机选择一个簇中心,并逐步将数据点分配到最近的簇中心。不同的初始化策略可能导致不同的结果,所以需要进行多次试验以选择最佳的初始参数。 最后,还需要设置算法参数。算法参数包括迭代次数、收敛准则、步长等。迭代次数决定了模型的学习效果,需要根据数据集的大小和复杂程度进行调整。收敛准则用于判断模型是否已经收敛,常用的准则包括簇中心的偏移量、似然函数值的变化等。步长影响了模型的优化过程,需要进行适当的调整以提高算法的效率和收敛速度。 综上所述,DPM模型的参数设置是一个非常重要的工作,它直接影响了模型的性能和结果的准确性。合理的参数设置需要考虑模型的先验分布、超参数、初始参数及算法参数等因素,并根据实际情况进行调整和优化,以获得最佳的拟合效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值