配置了一上午,终于能训练自己的DPM模型,实属不易

我的环境

DPM源码版本:voc-release3.1

VOC开发包版本:VOC2007_devkit_08-Jun

使用的训练数据集:VOC2007

训练验证集:VOC2007_trainval_06-Nov(438MB)

测试集:VOC2007_test_06-Nov-2007(430MB)

Matlab版本:MatlabR2012b

c++编译器:VS2010

系统:Win7 32位

首先需要下载voc-release3.1和VOCdevkit开发包:

Deformable Part Model voc-release3.1下载:http://cs.brown.edu/~pff/latent-release3/(DPM项目主页)

PASCAL VOC 2007 数据集及开发包下载:http://pan.baidu.com/disk/home#list/path=%2F%E6%95%B0%E6%8D%AE

下载训练验证集VOC2007_trainval_06-Nov和测试集VOC2007_test_06-Nov-2007,链接:http://pan.baidu.com/disk/home#list/path=%2F%E6%95%B0%E6%8D%AE 然后把测试集中的xml标注文件拷贝到VOCdevkit\VOC2007\Annotations文件夹内,把测试集中的jpeg图片拷贝到VOCdevkit\VOC2007\JPEGImages文件夹内,这样整个数据集才完整,否则在训练或测试的时候可能出现找不到需要读取的标注文件或图片的错误。

1、修改globals.m中的一些全局变量(主要是目录设定)

cachedir= 'D:\DPMtrain\VOCCache\';

% 训练好的模型结果和中间数据的文件目录,此目录可以自己任意指定

tmpdir ='D:\DPMtrain\VOCtemp\';

% 训练中用到的临时文件的目录,临时文件可能会很大,此目录可以自己任意指定

VOCdevkit =['H:\计算机视觉\数据集\PascalVOC\VOC2007\VOCdevkit'];

% PASCAL VOC 开发包目录,定位到VOC开发包所在目录

2、修改VOCdevkit开发包中的VOCinit.m文件,设定数据集目录

我们使用VOC2007数据集,所以将VOC2006标识设为false(默认就是false)。

如果将解压出来的VOC2007数据集的文件夹放在VOCdevkit目录下的话,就不用再修改VOCinit.m中的目录设定了,因为代码中默认就是这样的目录安排。但如果想把数据集放到其他地方,可以修改VOCopts.datadir目录,指向数据集所在目录。

我是直接将VOC2007文件夹放在了VOCdevkit下,目录结构如下:

-VOCdevkit

-local

-VOC2006

-VOC2007

-results

-VOC2006

-VOC2007

-VOC2007

-Annotations

-ImageSets

-JPEGImages

-SegmentationClass

-SegmentationObject

-VOCcode

3 修改 pascal_data.m,rewritedat.m,train.m,learn.cc,数组下标越界错误等问题可以参考http://blog.csdn.net/masibuaa/article/details/22855473,一步步配置,可以配置成功。也可以不用配置,用我配置好的voc-release3.1包,链接:http://pan.baidu.com/disk/home#list/path=%2F%E4%BB%A3%E7%A0%81。

自己用少量数据训练了一个单组件人体模型,截取trainval.txt中的前50个图片文件名做正样本,train.txt中的前300个做负样本,经过pascal.data函数处理后,获得了含176个负样本的neg数组,含45个正样本的pos数组。learn.cc中的迭代次数我没改,还是每次train迭代500万次(感觉时间都花在这里了,如果只是做测试的话,可以修改learn.cc中的迭代次数ITER值),训练过程用了大概1小时左右吧,训练完后用PASCAL开发包中的评价函数做了评价,正确率和召回率都是0,平均精度AP也是0,在预料之中。

训练完后,最终结果在cachedir目录中,很多中间数据也在这个目录中,如下:

其中person_final.mat就是训练好的最终模型。源码中训练的每个阶段都会将中间数据保存下来,所以即使某一阶段出现了错误,下次重新运行时自动加载上次保存的数据,而不用再次计算,非常方便。

详细代码解析可参考关于DPM(Deformable Part Model)算法中模型结构的解释

用Deformable Part Model(DPM)voc-release3.1训练自己的模型相关推荐

  1. 在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型

    我的环境 DPM源码版本:voc-release3.1 VOC开发包版本:VOC2007_devkit_08-Jun 使用的训练数据集:VOC2007                         ...

  2. 用DPM(Deformable Part Model,voc-release3.1)算法在INRIA数据集上训练自己的人体检测模型

    我的环境 DPM源码版本:voc-release3.1 VOC开发包版本:VOC2007_devkit_08-Jun Matlab版本:MatlabR2012b c++编译器:VS2010 系统:Wi ...

  3. 关于DPM(Deformable Part Model)算法中模型可视化的解释

    搭建了自己的博客平台,本文地址:http://masikkk.com/blog/DPM-model-visualization/ DPM源代码(voc-release)中的模型可视化做的还算相当炫酷的 ...

  4. 关于DPM(Deformable Part Model)算法中模型结构的解释

    关于可变部件模型的描写叙述在作者[2010 PAMI]Object Detection with Discriminatively Trained Part Based Models的论文中已经有说明 ...

  5. DPM(Deformable Parts Model)--原理(一)

    申明:本文非笔者原创,原文转载自:http://blog.csdn.NET/ttransposition/article/details/12966521 DPM(Deformable Parts M ...

  6. 有关可变形部件模型(Deformable Part Model)的一些说明

    (1)可变形部件模型 可变形部件模型(DeformablePart Model)由三部分组成: (1) 一个较为粗糙的,覆盖整个目标的全局根模版(或叫做根滤波器). (2) 几个高分辨率的部件模版(或 ...

  7. tensorflow精进之路(二十五)——Object Detection API目标检测(下)(VOC数据集训练自己的模型进行目标检测)

    1.概述 上一讲,我们使用了别人根据COCO数据集训练好的模型来做目标检测,这一讲,我们就来训练自己的模型. 2.下载数据集 为了方便学习,我们先使用别人整理好的数据集来训练---VOC 2012数据 ...

  8. ICnet基于VOC数据集的训练

    Voc4ICnet 数据集准备的目的:ICNET基于VOc数据集的训练,和同时做分割和检测的Blitznet做对比. 一.数据集标签制作与准备: Pascal VOC数据集可用于目标检测和分割,提供了 ...

  9. 谷歌正式开源Model Search!自动优化并识别AI模型,最佳模版唾手可得

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要8分钟 Follow小博主,每天更新前沿干货   Model Search:查找最佳机器学习模型的开源平台 2 月 19 日,谷歌 宣布 发布 ...

最新文章

  1. 全球智慧医疗产业发展现状
  2. 汤家凤高等数学基础手写笔记-重积分
  3. Jquery常用标签
  4. LeetCode 1055. 形成字符串的最短路径(贪心)
  5. 浅谈OpenCL之Platform API(1)
  6. php公众号客服消息图文,微信公众号开发系列-发送客服消息(示例代码)
  7. 良心好用无功能限制、珍藏单文件版Windows录屏软件分享!
  8. 模拟实现死亡之Ping(Ping of death)
  9. Nordic-nRF52840环境搭建及学习
  10. React-Native调用系统分享组件Share组件的使用
  11. python批量处理word格式_python自动化办公(V1.0)批量修改word文档格式
  12. python监控网站更新_Python 通过网站search功能监控网站内容更新
  13. tof摄像头手势识别_全面解析深度摄像头(TOF Camera)的原理
  14. 系统分析与设计 HW9
  15. [转载]快速提高你修养的100句话,值得你珍藏
  16. pythoneval函数错误_python中eval函数未实现错误
  17. 席绢言情系列书评总序
  18. Go按多组id数组出现次数,由多到少排序并去重,输出权重id数组
  19. windows安装Weblogic教程(图文教程超详细版)
  20. html5账号秘密,JavaScript有关的10个秘密和怪癖

热门文章

  1. 翻译原版教材的一些技巧和心得
  2. 将Excel中的数据导入到MSSQLServer2000
  3. 如何在 Linux 和 Windows 之间共享文件?
  4. 如何批量修改PPT字体、大小、颜色(转)
  5. 面向面试的Java后端必会知识点概述及面经
  6. 手把手教你制作一个PWA应用教程
  7. 全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子...
  8. 区块链溯源防伪新零售:优化供应链管理及经销商体系
  9. android百度地图显示某个地区,百度地图api只显示某个省市的行政区域
  10. prometheus+grafana+全方位立体监控redis