DPM在windows下配置并使用自己标定的数据进行训练

时间:2024-04-02 14:46:15

1.DPM原理

 

最近因为需要一直在研究DPM相关的东西,先要搞清楚DPM的原理其中我主要使用的是

 http://blog.csdn.net/masibuaa/article/details/17924671使用判别训练的部件模型进行目标检测

 http://blog.csdn.net/masibuaa/article/details/17533419判别训练的多尺度可变形部件模型

这两位大神的资料,据说这是相关论文翻译过来的中文版 讲解比较详细,下一步就要在windows下配置文件开始训练,

2.DPMwindows下的配置

 

首先需要下载voc-release5的原code 下面给出github中下载的地址

https://github.com/rbgirshick/voc-dpm

当前下载下来的code是在linux下编译训练测试的,因为我没有用过Linux的编译,所以需要在windows下编译需要配置,具体可以看这位大神的配置方法,http://blog.csdn.net/seu_nuaa_zc/article/details/52412771,配置结束后可以在MATLAB的命令行中输入compile就可以进行编译,编译完成可以开始训练了。

注意:在配置的过程中一定要细心,我在配置fv_cache.cc 的过程中因为有一个大括号}没有注释,一直出现警告: Maybe you need to call fv_cache('unlock') first,当出现这个警告是就需要去检查配置过程有没有什么疏漏。

这是我编译好的http://download.csdn.net/download/wakojosin/9919065

如果按照上面所说方法配置是完全没有问题的。

 

3.训练

编译完成,需要开始训练,在训练之前需要准备DMP的相关文件,VOCdevkit,VOC2007文件库

相关下载地址

VOCdeviket     http://pascallin.ecs.soton.ac.uk/challenges/VOC/voc2007/

VOC2007         http://host.robots.ox.ac.uk/pascal/VOC/#bestpractice

下载完成后解压需要将VOCdeviket文件放入到voc-release5的文件夹中,将VOC2007放入到VOCdeviket文件夹中如下图所示

DPM在windows下配置并使用自己标定的数据进行训练DPM在windows下配置并使用自己标定的数据进行训练


其中VOC2007中保存着原code中的训练的图像。

需要修改训练路径,主要修改的是

(1)voc_config.m

BASE_DIR    = 'E:/qinyanhong/DPM/code/voc-release5new/voc-release5'; 修改为自己的voc-release5的路径

conf = cv(conf, 'pascal.dev_kit', [conf.paths.base_dir '/VOCdevkit/']);   修改为vocdeviket的路径

DPM在windows下配置并使用自己标定的数据进行训练DPM在windows下配置并使用自己标定的数据进行训练

按照上图路径创建文件夹,2007中保存训练结果

(2)pascal_data.m

我训练的图像使用的是自己标定的图像,标定后的txt格式为1.jpg 2 x1 y1 x2 y2 x1_1 y1_1 x2_1 y2_1 

其中需要注意的是x1>x2 y1>y2  x1_1>x2_1 y1_1>y2_1,如果不满足条件会在创建金字塔模型时出现错误。可以通过修改金字塔中的坐标对应关系解决

修改pascal_data.m文件夹我是参照这位大神的来完成的http://www.cnblogs.com/louyihang-loves-baiyan/p/4965992.html


其中正样本positive.txt(标定后的样本)和负样本negtive.txt (只包含图像名称)都保存在PosImageFile中

DPM在windows下配置并使用自己标定的数据进行训练


开始训练模型

训练的过程

DPM在windows下配置并使用自己标定的数据进行训练