Piotr Dollar目标检测工具箱,样本标注与训练工具Matlab

Piotr Dollar在行人检测方面有着深入的研究,尤其是在深度学习兴起以前,其对Adaboost的研究优化和改进令人瞩目,其目标检测工具箱Piotr Dollar’s Toolbox被广泛使用。在使用该工具箱的过程中,我们通常需要手动勾选正样本,不得不承认,在监督学习的过程中,标注样本是重要,且费时费力的重复体力劳动,提高标注的效率至关重要。

博主在这篇博客中,释出一份配合该工具箱使用的GUI程序,帮助勾选样本,进行标注。一、代码

话不多说,先push代码

GitHub 仓库挂件 WordPress 插件

P-Chao / acfdetect

adaboost acf feature detect toolbox, fork from Piotr's Image & Video Matlab Toolbox(https://github.com/pdollar/toolbox)

二、使用步骤

  1. 将toolbox(及其子文件夹)加入matlab环境目录(SetPath按钮)
  2. 进入工具文件夹,新建database/negative database/positive  datebase/posGt   /models 四个文件夹
  3. 使用m将样本图像转化为3通道jpg格式,注意原图像通道数并在代码修改r
  4. 将正样本放置在positive文件夹中,负样本放置在negative文件夹中
  5. 启动CropPosSample进行标注
  6. 在models文件夹清空的情况下运行acfCarTest进行训练,在models文件夹下有文件时运行的是检测步骤
  7. 运行saveAcfDector将分类器保存成二进制文件,方便C++程序调用

三、界面

使用空格键快速切换下一个,点击Add按钮,可以添加更多标注物体框。点击Delete按钮,就可以永久删除该图片。

标注好后,txt文件就放在PosGT中,然后就可以按照以上说明中的步骤运行训练了。

四、C++检测程序

这部分内容是我的另一个开源项目的子项目,点开项目,里面有AcfDetect目录,其中就是AcfDectect的C++检测版本,先Post源码,以后再介绍:

 

《Piotr Dollar目标检测工具箱,样本标注与训练工具Matlab》有6条评论

  1. 你好我用这个工具箱想训练一个分类器出来但在matlab开启并行池训练之后就报错退出显示imResample使用错误申请的内存超过最大预设数组 一直找不到原因是哪出错了可以指教下吗拜托

    回复
      • 你好我按照官网的方式重新编译了一下工具箱 还是同样的错误 其实我是在您的博客找到的acf代码c++部分想做毕设车辆检测的应用可是缺少detector.dat的训练文件我就想自己训练一个但遇到了这个问题没办法继续进行 才来请求解惑

        回复
        • 要不换台电脑试一下,imResample这个函数本身应该是没有错误的,我认为和平台,还有调用有关系
          如果要分析错误的话,建议打断点,找到错误位置的入口,看看传入参数是否异常

          回复
  2. 谢谢您的耐心回复 我再用另一台电脑试一下 对了在编译工具箱的工程中提示gradientMex.cpp这个文件编译失败但文件都是工具箱里自带的没有更改过 不知道是不是这个产生的影响 还有我想请问您那是否有已经训练好的cardetector.dat文件因为c版本运行时这个文件是不存在的如果有方便的话能否发一份给我 日后好做参考谢谢

    回复

回复 王琳 取消回复