OpenCV训练分类器制作xml文档之一

2009-12-19考了CET英语,心情很差,估计又不过的,哎!英文差!
于是看看书,看看自己感兴趣的书
今天下午,研究了整个下午的小难题,在8点40分终于搞定了!肚子饿,还没吃饭,还没洗澡,克服了一个不懂的小难题,心理有点体会,想在这里留点纪念,方便别人以后学习。于是乎,我写了:
(那些开训练器的相关介绍我就不再详细谈了,进入正题)
我的问题:有了opencv自带的那些xml人脸检测文档,我们 就可以用cvLoad()这个函数加载他们,让他们对我们的人脸进行检测,但是,现在生活中的计算机视觉并不远远是检测人脸,还有很多物品需要识别,所以,能不能自己做个xml的检测文档,用它来检测自己需要的东西呢?例如,检测一个可乐瓶!
问题解决:
首先了解下,目标检测分为三个步骤:
1、 样本的创建
2、 训练分类器
3、 利用训练好的分类器进行目标检测。

一,样本的创建:
训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本(例如可乐瓶,人脸等),反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,20x20)。
1 负样本(反例样本)可以来自于任意的图片,但这些图片不能包含目标特征。负样本由背景描述文件来描述。背景描述文件是一个文本文件,每一行包含了一个负样本图片的文件名(基于描述文件的相对路径)。该文件必须手工创建。例如,假定目录下有 bg1.bmp bg2.bmp 这2个负样本的图片,这2个图片放在img目录下,所以其背景描述文件 bg.txt  的内容为
_img/bg1.bmp 1 0 0 24 28
_ing/bg2.bmp 1 0 0 24 28
_img/bg3.bmp 1 0 0 24 28
_ing/bg4.bmp 1 0 0 24 28
_img/bg5.bmp 1 0 0 24 28
_ing/bg6.bmp 1 0 0 24 28
_img/bg7.bmp 1 0 0 24 28
_ing/bg8.bmp 1 0 0 24 28
_img/bg9.bmp 1 0 0 24 28
_ing/bg10.bmp 1 0 0 24 28


这样负样本建立完毕,先保存!等会用!
2,正样本
现在,我们来看正样本的创建步骤:
正样本由程序createsample 程序来创建。该程序的源代码由OpenCV 给出,并且在bin 目录下包含了这     个可执行的程序。例如你opencv安装目录为 c:/ 既C:/OpenCV/bin,你找找就有
正样本可以由单个的目标图片或者一系列的事先标记好的图片来创建!
2-2在用createsamples.exe 这个程序前,先来了解下这个程序的一些命令组合模式
Createsamples 程序的命令行参数:
命令行参数:
-vec <vec_file_name>
训练好的正样本的输出文件名。
-img<image_file_name>
源目标图片(例如:一个公司图标)
-bg<background_file_name>
背景描述文件。
-num<number_of_samples>
要产生的正样本的数量,和正样本图片数目相同。
-bgcolor<background_color>
背景色(假定当前图片为灰度图)。背景色制定了透明色。对于压缩图片,颜色方差量由bgthresh
参数来指定。则在bgcolor-bgthresh 和bgcolor+bgthresh 中间的像素被认为是透明的。
-bgthresh<background_color_threshold>
-inv
如果指定,颜色会反色
-randinv
如果指定,颜色会任意反色
-maxidev<max_intensity_deviation>
背景色最大的偏离度。
-maxangel<max_x_rotation_angle>
-maxangle<max_y_rotation_angle>,
-maxzangle<max_x_rotation_angle>
最大旋转角度,以弧度为单位。
-show
如果指定,每个样本会被显示出来,按下"esc"会关闭这一开关,即不显示样本图片,而创建过程
继续。这是个有用的debug 选项。
-w<sample_width>
输出样本的宽度(以像素为单位)
-h《sample_height》
输出样本的高度,以像素为单位。
注:正样本也可以从一个预先标记好的图像集合中获取。这个集合由一个文本文件来描述,类似于背景描
述文件。每一个文本行对应一个图片。每行的第一个元素是图片文件名,第二个元素是对象实体的个数。
后面紧跟着的是与之匹配的矩形框(x, y, 宽度,高度)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值