文档章节

opencv: 训练分类器

e_s
 e_s
发布于 2016/11/16 23:33
字数 335
阅读 68
收藏 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
2018/05/21
0
0
图片人脸检测——OpenCV版(二)

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

王磊的博客
2018/04/19
0
0
【OpenCV人脸识别入门教程之二】人脸检测

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsq2902101015/article/details/47057081 本篇文章主要介绍了如何使用OpenCV实现人脸检测。本文不具体讲解人脸...

小路孩
2015/09/28
0
0
【OpenCv小白入门】人脸检测

本篇小结是关于OpenCv小白入门的,分享一下自己的想法,并且较为详细的总结一下利用OpenCv自带的Haar分类器进行人脸检测以及基于OpenCV3.1+Vs2013+C++的具体代码实现。 原文链接 没有实际的操...

cleverzcc
2018/01/26
0
0
7行Python代码的人脸识别

版权声明:本文为半吊子子全栈工匠(wirelesscom,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wirelesscom/article/details/64120516 随着去年alphago 的震撼表现,AI 再...

abel_cao
01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
1
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
2
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部