文档章节

opencv: 训练分类器

e_s
 e_s
发布于 2016/11/16 23:33
字数 335
阅读 38
收藏 0

opencv的分类器表示是一个.xml文件,里面相当于包含了传统意义上的weights文件。

过程:

1-准备负样本,产生negative_sample_description.dat

$ find <path of negative samples> -name '*.jpg' >negative.dat

*经验表明,negative samples所在路径必须在当前工作目录 ‘.’下

 

2-准备正样本,产生positive_sample_description.dat, 以及positive_samples.vec

$ find <path of positive> -name ’*.jpg‘ -exec identity -format '%i 1 0 0 %w %h' \{\} \; >positive.dat

$ opencv_createsamples -info positive.dat -vec positive_samples.vec -w 20 -h 20

 

3-准备test samples,用于训练完以后opencv_performance的衡量。

$ opencv_createsamples -img <one random positive image> -num <number of negative images you want to use as background> -bg negative.dat -info test.dat -maxxangle <distortion angle at x-axis> -maxyangle ... -maxzangle ... -maxidev ... -bgcolor ... -bgthresh ...

此时在工作目录下的文件分布应该如下

 

4-开始训练

$ opencv_haartraining  -data <dest of trained-files> -vec positive_samples.vec -bg negative.dat -nstages 20 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos ... -nneg ... -w 20 -h 20 -nonsym -mem 512 -mode ALL

 

5-获得.xml类型分类器后,进行 opencv_performance测试,即用test.dat进行accuracy测试

 

×××× 补充 ××××:

1. 关于opencv_haartraining中 -nPos 参数的选取是有讲究的,这是每一级训练时放入的正样本数,尤其是在正样本数不够大的情况下,除了要保证不能超过正样本vec向量的总数,还需控制在一定数量内,否则会导致在训练到较高级时出现error,因为所有正样本都用完了。

 

© 著作权归作者所有

共有 人打赏支持
e_s

e_s

粉丝 0
博文 58
码字总数 24581
作品 0
澳门
程序员
图片人脸检测(OpenCV版)

图片人脸检测 人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看. 功能展示 识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下...

vipstone
05/21
0
0
图片人脸检测——OpenCV版(二)

图片人脸检测 人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看. 往期目录 视频人脸检测——Dlib版(六) OpenCV添加中文(五) 图片人脸检测——Dlib版(四) 视...

王磊的博客
04/19
0
0
使用OpenCV通过摄像头捕获实时视频并探测人脸

在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,视频可以看作是一帧一帧的图片,因此图片操作其实是视频操作的基础,这篇手记就来讲讲OpenCV中的视频操作,并实现一...

种子_fe
08/16
0
0
19- OpenCV+TensorFlow 入门人工智能图像处理-刷脸识别实现

章节介绍 实现一个刷脸识别 输入一张图片,找到图片中的人脸,识别这个是哪一个人。 案例代码简单 人工网络层级低。 隐层只有一层。 综合: 样本收集 + 图像预处理 + TensorFlow神经网络 pyth...

天涯明月笙
05/19
0
0
关于 opencv 训练LBP联级分类器的一点总结

最近需要做一个联级分类器来定位图像中的目标(用车牌定位来做例子),于是选用opencv的LBP算法。关于介绍,这篇博文写的还可以 点击打开链接 实现的时候查找其他博客也遇到了很多问题,我用...

evinxu
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
28分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
32分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
41分钟前
1
0
android -------- Data Binding的使用 ( 六) 自定义属性

今天来说说DataBinding在自定义属性的使用 默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。 默认...

切切歆语
48分钟前
1
0
收邮件 下载附件

uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...;procedure SaveAttachmentsFromFile(FileName: String)var IdMessage: TIdMessage; MsgPart: Ti......

vga
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部