最近在设计一个基于DPM算法的检测器,采用自设计的特征取代原模型的HOG特征,希望能够达到实时。先看一遍DPM的训练部分,头大!!!尤其是那所谓的grammar,当然那是release4.01以后才有的。觉得本来蛮清晰的概念,给搞得云里雾里的。直接跳过,可是那样生成的matlab模型就看不懂了。好吧,我来玩猜猜猜,把这个mat模型结构猜一下。猜错勿怪!
关于DPM的概念原理,请阅读作者的PAMI论文“Object Detection with Discriminatively Trained Part Based Models”,这里不做具体描述。简单来说,模型由1个根滤波器和n个部件滤波器构成。检测的时候,对这滑动窗口区域的图像数据做这n+1个滤波,并求和与某个阈值比较,输出正或负。这里部件与根滤波器之间允许有一定的位置变化(即形变),当然,有形变就要引入deformation cost。
数学上简单描述一下:以上目标模型能够形式上定义为一个(n+2)元组: (F0,P1,...,Pn,b) , F0 是根滤波器, Pi 是第 i 个部件的模型,