2013年08月08日 ⁄ 综合 ⁄ 共 1061字 ⁄ 字号    ⁄ 评论关闭
 

经过近一个月的工程实战,把自己累积的经验分享给大家,教你如何训练一个收敛的,比opencv自带的data效果好的xml。

openv有两个训练exe,一个是opencv_haartraining.exe,一个是opencv_traincascade.exe,后者是前者的新版本,一般我们都使用后者,或者有三个特征:HAAR、HOG、LBP,cascade训练,如果你的opencv么有opencv_traincascade.exe,你可以自重新编译一遍,就会生成opencv_traincascade.exe,(cmake是从新编译opencv的神器哦,还有记得把对应的opencv lib和opencv_traincascade.exe放在一起哦)。不得不提的是opencv_createsamples.exe.这个是用来生成正样本vec的。

这两个exe的 的bat如下:

opencv_createsamples.exe -info name763.dat -vec zhengmian_763.vec -num 763 -w 50 -h 55

opencv_traincascade.exe -data DATAHOG -vec 763.vec -bg negname.dat -numPos 700 -numNeg 2100 -featureType HOG -w 50 -h 55 -numStages 20

好吧,具体命令什么的有很多人都讲过了。这里不啰嗦了。讲一下我实战出来的注意事项吧:

1 关于正样本,首先正样本不是有些人说的,你实际有300个正样本,在traincascade的时候可以写成3000的,这种思路是没有用的。在采集正样本的时候你一定要注意保持所有样本宽高比大致相同,如果你自己截图,推荐使用光影魔术手。或者牛逼的你自己写个gui截图工具。为了避免出现opencv error,在用opencv_traincascade.exe的时候,-numPos要稍微低于实际的正样本数目,比如你有2100个你就可以将numpos设为1900-2000,

2  无论正样本负样本,图片命名时不要用特殊字符,你就规规矩矩的命名pos1.jpg 。。。。。等等,特殊字符包括(),会出现opencv error,或者无法识别。

3 正负样本比例1:2.5~1:3,曾经有篇文章中说,为了减小false positive ,可以加大负样本数目。

4 当出现内存不够的情况时,有几种方法:1 你可以在64为pc上跑,2 减小正负样本的数目。3 减小正样本的宽高。

经验之谈,不善之处,多提意见。

opencv_traincascade 训练自己的检测器的更多相关文章

  1. opencv利用Cascade Classifier训练人脸检测器

    opencv默认提供了haar特征和lbp特征训练的人脸分类器,但是效果不太好,所以我们可以用opencv提供的跑opencv_traincascade函数来训练一个LBP特征的分类器.(由于open ...

  2. 【dlib代码解读】人脸检测器的训练【转】

    转自:http://blog.csdn.net/elaine_bao/article/details/53046542 版权声明:本文为博主原创文章,转载请注明.   目录(?)[-] 综述 代码解读 ...

  3. 如何正确训练一个 SVM + HOG 行人检测器

    这几个月一直在忙着做大论文,一个基于 SVM 的新的目标检测算法.为了做性能对比,我必须训练一个经典的 Dalal05 提出的行人检测器,我原以为这个任务很简单,但是我错了. 为了训练出一个性能达标的 ...

  4. 【计算机视觉】如何使用opencv自带工具训练人脸检测分类器

    前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练.本文就对此进行展开. 步骤 1.查找工具文件: 2.准备样本数据: 3.训练分类器: ...

  5. opencv_haar分类器的训练

    本文为作者原创,未经允许不得转载:原文由作者发表在博客园: http://www.cnblogs.com/panxiaochun/p/5345412.html 因为工作的原因,本人需要用到分类器来检测 ...

  6. SIGAI机器学习第二十二集 AdaBoost算法3

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用. AdaB ...

  7. 基于MATLAB的adaboost级联形式的人脸检测实现

    很早之前就做过一些关于人脸检测和目标检测的课题,一直都没有好好总结出来,趁着这个机会,写个总结,希望所写的内容能给研究同类问题的博友一些见解和启发!!博客里面涉及的公式太繁琐了,直接截图了. 转载请注 ...

  8. KCF目标跟踪方法分析与总结

    KCF目标跟踪方法分析与总结 correlation filter Kernelized correlation filter tracking 读"J. F. Henriques, R. ...

  9. 论文笔记(3):STC: A Simple to Complex Framework for Weakly-supervised Semantic Segmentation

    论文题目是STC,即Simple to Complex的一个框架,使用弱标签(image label)来解决密集估计(语义分割)问题. 2014年末以来,半监督的语义分割层出不穷,究其原因还是因为pi ...

随机推荐

  1. idea中解决Git反复输入代码的问题

    打开git终端,或者idea中的插件终端,输入命令: git config --global credential.helper store 借用一下别人的图不要介意哈.......... 执行上述命 ...

  2. [svc]线上Iptables重启报错

    线上iptables重启了下发现报错,排查了下 [root@xxxx ~]# /etc/init.d/iptables restart iptables: Setting chains to poli ...

  3. 【hive】时间段为五分钟的统计

    问题内容 今天遇到了一个需求,需求就是时间段为5分钟的统计.有数据的时间戳.对成交单量进行统计. 想法思路 因为数据有时间戳,可以通过from_unixtime()来获取具体的时间. 有了具体的时间, ...

  4. jQuery hover 延时器实现代码

    例如: 复制代码代码如下: $('#foo').slideUp(300).delay(800).fadeIn(400);// 在.slideUp() 和 .fadeIn()之间延时800毫秒.  ho ...

  5. Big Table中文翻译

    题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才. 官方的 Google Reader blog 中有对BigTable 的解释.这是Google 内 ...

  6. FIS 的思想和优点

    资源表 各种性能优化算法的加载框架 依赖声明有助于组件化 资源自动合并 链接 与webpack对比

  7. PHP迭代器的小坑

    使用PHP迭代器的时候,需要主要到很多迭代器是对内部迭代器的封装,当外部迭代器移动的时候,实际上也是在移动内部迭代器. 示例一:命令行 &"C:\wamp64\bin\php\php ...

  8. 仿智能社官网:原生JS实现简单又酷炫的3D立方体时钟

    先放一下我做的效果:https://linrunzheng.github.io/3Dclock/3Dclock/new.html 至于3D立方体怎么做这里就不在阐述了,可以看一下我之前的博客. 这里默 ...

  9. Ubuntu系统配置apt-get软件更新源

    从别人那摘录的Ubuntu源,测的很好用 # 电子科技大学 (教育网) deb http://ubuntu.uestc.edu.cn/ubuntu/ oneiric main restricted u ...

  10. kubernetes下的Nginx加Tomcat三部曲之二:细说开发

    本文是<kubernetes下的Nginx加Tomcat三部曲>的第二章,在<kubernetes下的Nginx加Tomcat三部曲之一:极速体验>一文我们快速部署了Nginx ...