EdgeBox与DPM均是用于进行目标检测。
EdgeBox的算法原理大体如下图所示:
在这儿参考了一片博客blog.sina.com.cn/s/blog_e1b9226a0102w5rt.html,大体总结Edgebox进行目标检测的思路为:首先利用结构化的方法检测出边缘,并利用非极大值抑制对边缘进行筛选;然后基于某种策略将似乎在一条直线上的边缘点集合成若干个edge group,并计算edge group之间的相似度,越是在同一直线上的edge group,其相似度越高。再通过edge group来确定轮廓数,实现策略为给每个edge group计算一个权值,将权值为1的edge group归为proposal内轮廓上的一部分,将权值为 0 的edge group归为proposal外或proposal框重叠的一部分,由此便提取得到proposal,并对proposal进行评分,选取得分最高的proposal作为最后的检测输出。
但是该算法有一个明显的缺陷是当一幅图像中包含多个相同的检测目标时,其得分最高的proposal几乎包含整幅图像,而不是单独的目标。原因在于,其不是基于“学习”的算法,没有训练的过程,也就没有具体的针对目标的模型,故这使得其在进行单一类别多目标检测时效果不佳。
DPM(Deformable Parts Model):
由名字可以看出,该目标检测的模型是可变形的,即具有一定的弹性。参考了博文blog.csdn.net/carson2005/article/details/22499565
其与HoG的大体思路一致,训练得到一个目标的梯度模型,然后再根据该梯度模型对待检测目标进行匹配操作。只是DPM在形成模型时做了更多的改进工作,相比于Hog的但模型结构,其得到的是多模型结构。
其大体流程为:
训练得到多个主模型(即不同视角下的物体表征),然后形成多个子模型结构,在进行检测时,根据主模型与子模型两者匹配结果的综合,来实现目标的最终检测结果。之所以会有子模型结构的提出,主要是为了解决非刚性物体的形变问题,利用子模型与主模型间的先验知识(如距离等)来判断出在产生形变后的物体是否仍为待检目标。其检测流程可见下图:
即首先利用主模型对图像进行匹配操作,然后利用子模型对图像进行匹配操作,最后将匹配后的结果进行某种运算,即基于子模型高相应中心是否在理论上该出现的位置,最后将结果进行综合得到最后的检测结果。
DPM模型的本质是 一种弹簧模型,即允许待检测物体产生一定程度上的形变,由主模型与子模型间的检测结果的综合来实现检测任务。