当前位置:网站首页>【OpenCV】 级联分类器训练模型
【OpenCV】 级联分类器训练模型
2022-08-03 12:49:00 【我今年十六岁】
目录
一:OpenCV级联分类器概念
目前常用的实用性目标检测与跟踪的方式方法有以下两种
二:OpenCV级联分类器操作步骤
三:样本采集工作原理分析一
使用基于Haar特征的级联分类器的对象检测这是一种基于机器学习的方法,其中从许多正负图像中训练级联函数。然后用于检测其他图像中的对象。
在这里,我们将进行人脸检测举例说明。最初,该算法需要大量正图像(面部图像)和负图像(无面部图像)来训练分类器。 然后,我们需要从中提取特征。为此,使用下图所示的Haar功能。 它们就像我们的卷积核一样。 每个特征都是通过从黑色矩形下的像素总和中减去白色矩形下的像素总和而获得的单个值。

四:样本采集工作原理分析二
现在,每个内核的所有可能大小和位置都用于计算许多功能。(试想一下它产生多少计算?即使是一个24x24的窗口也会产生超过160000个特征)。对于每个特征计算,我们需要找到白色和黑色矩形下的像素总和。为了解决这个问题,他们引入了整体图像。无论你的图像有多大,它都会将给定像素的计算减少到仅涉及四个像素的操作。很好,不是吗?它使事情变得更快。
但是在我们计算的所有这些特征中,大多数都不相关。例如,考虑下图。第一行显示了两个良好的特征。选择的第一个特征似乎着眼于眼睛区域通常比鼻子和脸颊区域更暗的性质。选择的第二个特征依赖于眼睛比鼻梁更黑的属性。但是,将相同的窗口应用于脸颊或其他任何地方都是无关紧要的。那么,我们如何从16万多个功能中选择最佳特征?它是由Adaboost算法实现的。

为此,我们将所有特征应用于所有训练图像。对于每个特征,它会找到最佳的阈值,该阈值会将人脸分为正面和负面。显然,会出现错误或分类错误。我们选择错误率最低的特征,这意味着它们是对人脸和非人脸图像进行最准确分类的特征。 (此过程并非如此简单。在开始时,每个图像的权重均相等。在每次分类后,错误分类的图像的权重都会增加。然后执行相同的过程。将计算新的错误率。还要计算新的权重。继续进行此过程,直到达到所需的精度或错误率或找到所需的功能数量为止。
最终分类器是这些弱分类器的加权和。之所以称为弱分类,是因为仅凭它不能对图像进行分类,而是与其他分类一起形成强分类器。该论文说,甚至200个功能都可以提供95%的准确度检测。他们的最终设置具有大约6000个功能。 (想象一下,从160000多个功能减少到6000个功能。这是很大的收获)。
五:创建自己的级联分类器
5.1 创建自己的级联分类器第一步


5.2 创建自己的级联分类器第二步
将以上文件拷贝到正负样本文件路径下

5.3 创建自己的级联分类器第三步
创建正负样本的图像路径的txt文件


5.4 创建自己的级联分类器第四步
通过命令行执行命令进行样本采集生成car_samples.vec正样本矢量集文件
opencv_createsamples.exe -info car_list.txt -vec car_samples.vec -num 80 -w 33 -h 33info字段填写正样本描述文件;vec用于保存制作的正样本;num制定正样本的数目;w和-h分别指定正样本的宽和高

5.5 创建自己的级联分类器第五步
通过命令行执行命令进行训练生成
opencv_traincascade.exe -data data -vec car_samples.vec -bg ng_data.txt -numPos 80 -numNeg 240
-numStages 7 -w 33 -h 33 -minHitRate 0.995 -maxFalseAlarmRate 0.45 -mode ALLdata:指定保存训练结果的文件夹;vec:指定正样本集;bg:指定负样本的描述文件夹;numPos:指定每一级参与训练的正样本的数目(要小于正样本总数);numNeg:指定每一级参与训练的负样本的数目(可以大于负样本图片的总数);numStage:训练的级数;w:正样本的宽;h:正样本的高;minHitRate:每一级需要达到的命中率(一般取值0.95-0.995);maxFalseAlarmRate:每一级所允许的最大误检率;mode:使用Haar-like特征时使用,可选BASIC、CORE或者ALL;另外,还可指定以下字段:featureType:可选HAAR或LBP,默认为HAAR;
创建自己的级联分类器第五步 效果展示如下:


最终得到的cascade.xml即为级联分类器最终文件
边栏推荐
猜你喜欢

An工具介绍之摄像头

An introduction to the camera

Feature dimensionality reduction study notes (pca and lda) (1)

PyTorch构建分类网络模型(Mnist数据集,全连接神经网络)
![[微服务]多级缓存](/img/58/72e01c789a862c058cba58b9113272.png)
[微服务]多级缓存

PyTorch构建神经网络预测气温(数据集对比,CPU与GPU对比)

How to disable software from running in the background in Windows 11?How to prevent apps from running in the background in Windows 11

An动画优化之传统引导层动画

BOM系列之sessionStorage

How can I get a city's year-round weather data for free?Precipitation, temperature, humidity, solar radiation, etc.
随机推荐
Graphic animation and button animation of an animation basic component
PyTorch构建神经网络预测气温(数据集对比,CPU与GPU对比)
技术分享 | 接口自动化测试如何搞定 json 响应断言?
浅谈程序员的职业操守
[Practical skills] APP video tutorial for updating APP in CANFD, I2C, SPI and serial port mode of single-chip bootloader (2022-08-01)
An工具介绍之形状工具及渐变变形工具
Feature Engineering Study Notes
nacos app
self-discipline
[微服务]多级缓存
欧曼自动挡、银河大马力、行星新产品 欧曼全新产品以燎原之势赢领市场
利用pgsql插件PostGIS 实现地理坐标系数据转换
An工具介绍之摄像头
Unsupervised learning KMeans notes and examples
An工具介绍之宽度工具、变形工具与套索工具
shell编程条件语句
An动画基础之按钮动画与基础代码相结合
In order to counteract the drop in sales and explore the low-end market, Weilai's new brand products are priced as low as 100,000?
Image fusion SDDGAN article learning
An工具介绍之钢笔工具、铅笔工具与画笔工具