导航:首页 > 车辆百科 > opencv车辆分类器

opencv车辆分类器

发布时间:2021-10-22 13:32:03

1、如何利用OpenCV自带的级联分类器训练程序训练分类器

利用OpenCV自带的haar training程序训练一个分类器,需要经过以下几个步骤:
(1)收集训练样本:
训练样本包括正样本和负样本。正样本,通俗点说,就是图片中只有你需要的目标。而负样本的图片只要其中不含有目标就可以了。但需要说明的是,负样本也并非随便选取的。例如,你需要检测的目标是汽车,那么正样本就应该是仅仅含有汽车的图片,而负样本显然不能是一些包含天空的,海洋的,风景的图片。因为你最终训练分类器的目的是检测汽车,而汽车应该出现在马路上。也就是说,分类器最终检测的图片应该是那些包含马路,交通标志,建筑物,广告牌,汽车,摩托车,三轮车,行人,自行车等在内的图片。很明显,这里的负样本应该是包含摩托车、三轮车、自行车、行人、路面、灌木丛、花草、交通标志、广告牌等。
另外,需要提醒的是,adaboost方法也是机器学习中的一个经典算法,而机器学习算法的前提条件是,测试样本和训练样本独立同分布。所谓的独立同分布,可以简单理解为:训练样本要和最终的应用场合非常接近或者一致。否则,基于机器学习的算法并不能保证算法的有效性。此外,足够的训练样本(至少得几千张正样本、几千张负样本)也是保证训练算法有效性的一个前提条件。
这里,假设所有的正样本都放在f:/pos文件夹下,所有的负样本都放在f:/neg文件夹下;

(2)对所有的正样本进行尺寸归一化:
上一步收集到的正样本,有很多的尺寸大小,有的是200*300,有的是500*800...尺寸归一化的目的,就是把所有的图片都缩放到同一大小。比如,都缩放到50*60的大小。

(3)生成正样本描述文件:
所谓的正样本描述文件,其实就是一个文本文件,只不过,很多人喜欢将这个文件的后缀改成.dat而已。正样本描述文件中的内容包括:文件名 目标个数 目标在图片中的位置(x,y,width,height)
典型的正样本描述文件如下所示:
0.jpg 1 0 0 30 40
1.jpg 1 0 0 30 40
2.jpg 1 0 0 30 40
.....
不难发现,正样本描述文件中,每一个正样本占一行,每一行以正样本图片开头,后面紧跟着该图片中正样本的数量(通常为1),以及正样本在图片中的位置
假如,f:\pos文件夹下有5000个正样本图片,每个图片中仅有一个目标。那么,我们可以写程序(遍历文件夹中的所有图片文件,将文件名写入到文件中,将正样本在图片中的位置,大小都写入文件中)生成一个pos.dat文件作为正样本描述文件。

2、Opencv对视频中出现的车辆分类时,有什么办法可以使得对每个车辆进行一次分类?

你的意思是特征提取了,特征有好多种,一般监控系统中是根据车牌定位与跟踪,而且摄像机会根据监控的车道数选择是200w还是500w的高清摄像机,一般对车牌提取时借用车牌区域的宽高比,并做形态学处理,然后做分割和数字的匹配处理,车牌是车辆的唯一性标识,当然也有车体分析,驾驶人的特征分析,这些不具有代表性,也不具有唯一性,容易定位错误和跟踪丢失。

3、怎么测试已经训练好的opencv分类器

face/cmu_0000.pgm 1 0 0 18 18
face/cmu_0001.pgm 1 0 0 18 18
face/cmu_0002.pgm 1 0 0 18 18
...
face/cmu_0471.pgm 1 0 0 18 18

bg.txt文件内容如下, 为了避免路径错误,建议使用绝对路径:
/Users/liuweijie/workspace/objection_detection/train_img_set/non-face/cmu_0000.pgm
/Users/liuweijie/workspace/objection_detection/train_img_set/non-face/cmu_0001.pgm
/Users/liuweijie/workspace/objection_detection/train_img_set/non-face/cmu_0002.pgm
...
/Users/liuweijie/workspace/objection_detection/train_img_set/non-face/cmu_99

4、opencv训练好的分类器有哪些

opencv3训练好的分类器有基于haar特征的双眼,左眼,右眼,鼻子,嘴巴,人脸,人体上半身,笑脸级联分类器以及对应的cuda环境下的分类器;基于lbp特征的人脸级联分类器;基于hog特征的人体SVM分类器.
以上分类器均在在路径opencv-sources-data中.版本OpenCV3.

5、opencv车辆检测都用什么方法

常规的车辆检测使用机器学习或者深度学习方法。通过为相关的分类器或者神经网进行大量的车辆图片进行训练最终训练出可以识别车辆的模型。使用模型对图像中的车辆进行检测。


与opencv车辆分类器相关的内容