之前主要做DPM算法的优化以及使用,也有优化得比较好的C++代码,和原著的cascade_demo速度相比能至少提升一倍吧(效果不影响)。但是之前公司可能涉及到公司核心算法部分,并没有把训练算法给我,所以这段时间只能依靠自己和网上的文章研究DPM的训练以及和C++代码的结合使用问题。希望能自己训练自己需要的模型进行DPM算法的使用。经过两三个星期的研究,终于能自己训练自己的DPM算法了。目前,在目标检测方面已经成功掌握了两套算法(DPM+cascade和LBP+HOG+BOW),可喜可贺一下,这篇文章总结一下,以备后用。下面一步一步按步骤来:首先工作环境,我用的是:voc-release4.01版本,matlab:R2010A和VS 2010,win7 4G内存。因为大部分内容其他文章都有总结的,所以说说主要的就行了。
一:首先是DPM算法在window上的使用问题,因为DPM算法刚开始主要是在linux上使用的,由于我习惯使用了windows,所以主要还是在windows上使用,
主要可以参考这篇文章,http://blog.csdn.net/seanwang_25/article/details/38237407,等等这些文章百度比较多,可以参考一下,需要注意的是MATLAB和vs2010的混合编程的问题,步骤在这篇文章中可以看到。windows matlab配置vs2010的编译器,http://blog.sciencenet.cn/blog-261330-813470.html。注意的是由于matlab 2010a是没有vs2010的编译器的,所以要先下载一个补丁。然后compile,有错的改正过来就可以了,主要都是linux和windows指令的区别,然后用vs2010新建一个工程,编译learn.cpp生成learn.exe可执行程序,直接放到voc-release4.01路径下。 编译完成后,在matlab命令行中输入demo,进行目标检测试验,根据提示,依次会出现小轿车、人、自行车的部件模型和检测结果,如果想检测其他图片,修改demo文件即可。这样第一步完成,能在window上使用DPM的检测程序。这步一般问题不大。