创建自己的训练分类器
来源:互联网 发布:小米手机怎么清楚数据 编辑:程序博客网 时间:2024/05/29 04:13
本文为进行目标检测——自己感兴趣的目标,如茶杯、手机等。现在大都是针对人脸、车辆等现有的XML,我们之间调用,那如何建立自己的XML的检测文档呢?
首先,介绍下目标检测的三个主要步骤:
1、 样本的创建
2、 训练分类器
3、 利用训练好的分类器进行目标检测。
进入主题:
1、进行样本训练需要样本,训练样本分为正样本和负样本,正样本是包含检测目标的图像,归一化到统一大小,这里我建立200个正样本,大小为18*24,负样本是背景样本,不包含目标的图像,这里也是400个样本,不用对负样本进行归一化;
2、建立背景描述文件--负样本,用来描述负样本,文件中每一行包含了一个负样本图片的文件名和大小信息,如,负样本放于F:\pest\negdata文件夹下,那么,创建负样本的方法使用DOS:
,然后将最后一行删除,全局替换为如下格式:
negdata/201.JPG
negdata/202.JPG
negdata/203.JPG …………
图片201.JPG 包含了单个目标对象实体;
3、建立背景描述文件--正样本,用于描述正样本,文件中每一行包含了一个负样本图片的文件名和大小信息,如,正样本放于F:\pest\posdata文件夹下,那么,创建正样本的方法如上图,只需将目录切换到posdata下,即可,建立完成后将posdata.dat最后一行删除,并替换到如下格式:
posdata/1.jpg 1 0 0 18 24
posdata/2.jpg 1 0 0 18 24
posdata/3.jpg 1 0 0 18 24 …………
4、生成正样本文件:由OpenCV自带createsamples.exe创建,位置在安装opencv目录bin下;将包含此文件的bin文件夹及此文件拷贝到F:\pest\下,同时将正/负样本文件及正负样本图片文件也拷贝到同一目录下,如图所示;
createsamples.exe的内部信息这里了解下;
下面利用DOS创建正样本文件,过程如图所示:
切换到bin目录下按照上述步骤就可生成正样本文件a.vec.
至此正样本的创建完成。
5、接下来就要训练这个分类器了,训练函数也是OpenCV提供:haartraining实现,位置也在安装opencv目录bin下,现已经随bin拷贝到pest下了;
运行效果如图所示:
运行结束后会在新建文件夹data生成xml文件:data.xml至此训练器建立完成。
疑问:利用人脸的haar特征来训练其他物体,真的可行吗?
今天验证了下,能检测出部分物体,说明还是有些特征是可以采用的,只是不希望调整窗口大小来检测,因为待检测目标大小相当,故需要改进,样本量也需要增加.
ps:有时候我们会遇到这样的情况:训练卡在某一层进行不下去,具体原因现在还不是很清楚,就想利用现有的分类器手动生成xml,现在方法如下:
opencv里自带转换工具:convert_cascade.exe,位置在:D:\open CV\OpenCV\samples\c\convert_cascade.exe.它需要指定正样本图像的大小,分类器的路径,和生成xml的名字
最终在7这个文件夹下,手动生成我们所需要的xml格式的级联分类器。
- 创建自己的训练分类器
- 训练自己的分类器
- opencv训练自己的分类器
- OpenCV训练自己的分类器
- opencv 训练自己的分类器
- opencv训练自己的分类器
- opencv_traincascade 训练自己的分类器
- 如何训练自己的分类器xml文件
- 如何用opencv训练自己的分类器
- 如何用OpenCV训练自己的分类器
- 如何用OpenCV训练自己的分类器[转]
- [转]如何用OpenCV训练自己的分类器
- 如何用 opencv 训练自己的分类器
- 如何用OpenCV训练自己的分类器
- 如何用OpenCV训练自己的分类器
- 如何用OpenCV训练自己的分类器
- 如何用OpenCV训练自己的分类器
- 如何用OpenCV训练自己的分类器
- python paste介绍和使用教程
- secureCRT使用记录
- ubuntu mysql 中文字符集
- RightBtn
- Activity与Service跨进程通信(Messenger方式)
- 创建自己的训练分类器
- BigFile和SmallFile表空间技术
- 如何学习自动化测试
- Timer的schedule和scheduleAtFixedRate方法的区别解析
- 养生:程序员需要强健的体魄!!!
- PHP代码优化技巧
- tcpdump命令详解
- 如何用mstsc访问ubutu
- JDK linux安装