以下是我参考的几个人脸分类器的文章:

http://blog.csdn.net/yangleo1987/article/details/52883864

http://m.blog.csdn.net/duhaomin/article/details/10155813

http://blog.csdn.net/autoliuweijie/article/details/51911289

训练工作主要分为如下几步:

  • 配置训练环境
  • 制作训练数据集
  • 生成正样本描述文件(.vec)
  • 训练身份证分类器
  • 使用分类器进行身份证识别分类

配置训练环境


训练过程主要依靠OpenCV自带的两个可执行程序opencv_createsamples.exeopencv_haartraining.exe操作完成的。可以直接下载我已经配置好的文件进行训练。文件地址为:http://download.csdn.net/download/u010782875/10033202

文件目录如下:

id_24x16_10目录:新建的一个目录,存放之后训练生成的分类器文件

negdata目录:存放负样本的目录

posdata目录:存放正样本的目录

negdata.txt:负样本的文件路径

posdata24x16.txt:正样本的文件路径

posdata24x16.vec:生成的正样本描述文件

opencv_createsamples.exe:生成正样本描述文件的可执行程序

opencv_haartraining.exe:训练样本的可执行程序

制作训练数据集


将要训练的正样本放入posdata目录,这里为身份证图片,像素大小为24x16(经多次尝试该尺寸效果最佳);将负样本放入negdata目录下,负样本的像素尺寸要大于正样本,正负样本比例1:3效果最佳。我这里使用了110张正样本和300张负样本。

接下来需要正负样本的文件路径,用于训练中找到每个样本。进入正负样本目录,新建一个文本文档num.bat,内容如下。

双击运行后生成当前图片的绝对路径,然后将正样本的路径格式进行如下替换(负样本路径文件可不做修改):

将绝对路径改为相对路径,然后添加的1代表个数,后面四个分别表示样本的left  top  width  height

生成正样本描述文件


打开cmd.exe,进入上述目录,然后运行指令:opencv_createsamples.exe -info posdata24x16.txt -vec posdata24x16.vec -num 110 -w 24 -h 16

-info  样本说明文件

-vec  正样本描述文件的名字及路径

-num  样本数量

-w-h  样本尺寸大小

执行结束后将生成正样本描述文件posdata24x16.vec

训练身份证分类器


接着执行指令:opencv_haartraining.exe -data id_24x16_10 -vec posdata24x16.vec -bg negdata.txt -npos 110 -nneg 300 -nstages 10 -nsplits 1 -sym -w 24 -h 16 -mode all -mem 1024

         

这里用到了OpenCV自带的工具opencv_haartraining.exe,该工具封装了haar特征提取以及adaboost分类器训练过程,并合并各级分类器成为最终的xml文件

-data  指定生成的文件目录,用于存放各级分类器文件

-vec  正样本描述文件

-bg  负样本路径文件

-npos  每个阶段用来训练的正样本数目

-nneg  每个阶段用来训练的负样本数目

-nstages  指定训练层数,层数越高,识别粒度越小,耗时越长

-nsplits  分裂子节点数目,1表示使用简单地stump classifier分类

-sys  后面不用跟其他参数,用于指定目标对象是否垂直对称

-mode  all指定haar特征的种类,basic仅仅使用垂直特征,all表示使用垂直特征以及45度旋转特征

-mem  表示允许使用计算机的1024M内存进行训练

运行结束后,目录下会生成最终的xml文件

使用分类器进行身份证识别分类


将生成的xml文件放到相关项目中(这里放在安卓客户端验证),分类结果如下:

使用OpenCV的Haar特征训练身份证级联分类器相关推荐

  1. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  2. 照片美妆---基于Haar特征的Adaboost级联人脸检测分类器

    本文转载自张雨石http://blog.csdn.net/stdcoutzyx/article/details/34842233 基于Haar特征的Adaboost级联人脸检测分类器 基于Haar特征 ...

  3. opencv 使用SVM+HOG训练行人检测分类器(INRIA Person Dataset训练集)

    目录 1.训练过程(即代码流程) 2.模型及结果优缺点分析 3.模型建立中发现的问题及改进方法 4.行人检测OpenCv 代码(C++) 1.训练过程(即代码流程) 1. 准备训练样本集合: 包括正样 ...

  4. opencv学习笔记——自己训练人脸识别分类器

    在使用opencv自带的分类器haarcascade_frontalface_alt.xml进行人脸识别的基础认识后,决定自己训练一个分类器看一下效果.该过程大致可分为三个阶段:样本采集.分类器训练和 ...

  5. 【OpenCV】车辆识别 目标检测 级联分类器 C++ 案例实现

    目录 前言 一.目标检测技术 二.样本采集工作原理 三.创建自己的级联分类器 Step1:准备好样本图像 Step2:环境配置(OpenCV win10) Step3:设置路径 Step4:实现样本数 ...

  6. 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)

    一.前言 由于还处于学习阶段,大多数内容都是从网上学习借鉴的,重复的内容就不多赘述,只是将自己的经验和想法分享出来.感觉不错的学习资源如下 http://www.cnblogs.com/tornado ...

  7. 利用OpenCV的级联分类器类CascadeClassifier和Haar特征实现人脸区域的检测

    级联分类器是将若干个分类器进行连接,从而构成一种多项式级的强分类器.级联分类器使用前要先进行训练,怎么训练呢?用目标的特征值去训练,对于人脸来说,通常使用Haar特征进行训练. Haar特征是由M.O ...

  8. haar分类器详解(Haar特征,积分图,adaboost算法,筛选式级联分类器),DCG介绍 --文献阅读报告《基于素描对视频的人脸识别研究》

    基于素描对视频的人脸识别--haar分类器详解,haar特征,adaboost,级联强分类器,积分图,DCG 背景 算法总体流程 1.预处理--识别出人脸并将人脸图像标准化 haar特征 积分图--加 ...

  9. Haar特征类有哪些最新发表的毕业论文呢?

    一.总体简介 Haar特征的相关文献在2006年到2020年内共计132篇,主要集中在自动化技术.计算机技术.无线电电子学.电信技术.公路运输 等领域,其中期刊论文100篇.会议论文4篇.专利文献28 ...

最新文章

  1. 其他算法-高斯混合模型
  2. python之6-3嵌套函数
  3. javascript 常用校验代码 2
  4. Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_3细说invokeBeanDefinitionRegistryPostProcessors
  5. Stanford机器学习笔记-5.神经网络Neural Networks (part two)
  6. smooth_L1_loss_layer.cpp:28] Check failed: bottom[0]-channels() == bottom[1]-channels() (12 vs. 84
  7. 全地球的水也没办法将这个“特殊”的瓶子装满!
  8. oracle的主目录怎么删除,删除oracle数据库卸载
  9. C#LeetCode刷题之#441-排列硬币(Arranging Coins)
  10. [转]setTimeout() 函数未定义错误
  11. SVN同步分支代码到主干
  12. Java生成、解析二维码方案以及代码实现
  13. utils工具 常见函数
  14. 2021-2027全球及中国气提系统行业研究及十四五规划分析报告
  15. 【安路FPGA】FPGA开发日记(一)
  16. 如何去除word中的空行
  17. Mac 下终端运行C++
  18. 安卓android获取存储路径,Android系统的手机文件夹目录详解
  19. 动态链接库DLL是什么?
  20. 中国降低京沪高铁票价和速度

热门文章

  1. 冰冰学习笔记:扫雷游戏的实现:展开,排查,标记,取消标记
  2. 编程设计一个购房贷款计算器
  3. 一键检测 Linux基本系统信息、I/O测试、网速测试— —Superbench
  4. OpenCV-4.0.0在Ubuntu16.04 64位中的安装
  5. 最优控制电池储能模型 蓄电池储能模型的最优控制python源代码
  6. To B端SaaS产品运营该如何开展?整理了一套SaaS运营的框架
  7. D-Wave Leap量子云系统首次落地欧洲于利希超算中心
  8. 质量工具之头脑风暴法
  9. 《科研伦理与学术规范》网课第三章课后习题答案
  10. 【Linux】内存管理机制