opencv3.2训练分类器步骤记录

本文详细记录了在win10环境下,使用OpenCV3.2.0进行样本采集、分类器训练和应用的过程。介绍了如何收集正负样本,如何进行样本尺寸归一化,以及创建和训练级联分类器的步骤和相关参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:win10,OpenCV3.2.0

用到的工具:opencv_createsamples.exe、opencv_traincascade.exe(有些版本是opencv_haartraining.exe),这两个工具在opencv的安装路径下。

整个过程分成三阶段:样本采集、分类器训练和运用训练好的分类器进行人脸检测。

一、样本采集

 (1)收集训练样本 
训练样本包括正样本和负样本。正样本,通俗点说,就是图片中只有你需要的目标。而负样本的图片只要其中不含有目标就可以了。但需要说明的是,负样本也并非随便选取的,最好是与检测目标相关的图片。例如,你需要检测的目标是汽车,那么正样本就应该是仅仅含有汽车的图片,而负样本显然不能是一些包含天空、海洋等风景的图片,因为最终训练分类器的目的是检测汽车,而汽车应该出现在马路上。也就是说,分类器最终检测的图片应该是那些包含马路,交通标志,建筑物,广告牌,汽车,摩托车,三轮车,行人,自行车等在内的图片。很明显,这里的负样本应该是包含摩托车、三轮车、自行车、行人、路面、灌木丛、花草、交通标志、广告牌等的图片。 
需要注意的是,adaboost方法是机器学习中的一个经典算法,而机器学习算法的前提条件是,测试样本和训练样本独立同分布。所谓的独立同分布,可以简单理解为:训练样本要和最终的应用场合非常接近或者一致。否则,基于机器学习的算法并不能保证算法的有效性。此外,足够的训练样本(至少得几千张正样本、几千张负样本)也是保证训练算法有效性的一个前提条件。 
(2)正样本尺寸归一化 
将上一步收集到的正样本进行尺寸归一化,尺寸归一化的目的是将所有的图片都缩放到同一大小,比如,缩放到20*20的大小,可以用批量编辑工具,批量将图片改成同一尺寸。 
(3)建立正负样本说明文件 
利用命令行,运行生成正样本图片名描述文件,打开pos.txt删除非图片名的行;同样的方法建立负样本名描述文件neg.txt,注意删除非图片名的行,每一行为一个文件名,负样本图像可以是不同的尺寸,但是图像尺寸应该比训练窗口的尺寸大,因为这些图像将被用于抠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值