车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等

       车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等_第1张图片

      在样本数量比较少的情况下,可以采用HOG、SVM对样本进行初步的筛选出,正负样本,本文接着上一节二值化出来部分样本后,用pictureRelate做初步筛选出正负样本各500,准确训练。


1、pictureRelate使用http://www.walthelm.net/picture-relate/

   可以用来比较图片的相似程度,或找出类似的图片文件的图像处理工具。在同一个视窗里浏览不同文件夹和硬盘驱动器中的图片文件#支持查看,改名,删除,剪贴,拖动,切换至文件管理器等操作#可处理多达50000多张图片!支持JPG, BMP, PNG, TIFF, PPM, PGM, PBM, RAS等格式#可以通过导入过滤命令行读取任何其它格式。

车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等_第2张图片


      这里HOG LBP特征可以采用VLfeat(http://www.vlfeat.org/)这个开源库里面的特征,或者用OpenCV里面的也可以,分类器SVM采用的是OpenCV里面的。

2、下面介绍下VLfeat里面的HOG特征

车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等_第3张图片车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等_第4张图片

左图是原图,右图是HOG变化后的可视化效果。可以仔细对比,房子的轮廓还是可见的。


3、HOG+SVM训练目标检测的流程(OpenCV自带):

http://blog.csdn.net/carson2005/article/details/7841443

(1)准备训练样本集合;包括正样本集和负样本集;

(2)收集到足够的训练样本之后,你需要手动裁剪样本。例如,你想用Hog+SVM来对商业步行街的监控画面中进行行人检测,那么,你就应该用收集到的训练样本集合,手动裁剪画面中的行人(可以写个简单程序,只需要鼠标框选一下,就将框选区域保存下来--这一步在上一节有介绍)。

(3)裁剪得到训练样本之后,将所有正样本放在一个文件夹中;将所有负样本放在另一个文件夹中;并将所有训练样本缩放到同样的尺寸大小。本文是采用90*24的区域训练的。

(4)提取所有正样本的Hog特征;

(5)提取所有负样本的Hog特征;

(6)对所有正负样本赋予样本标签;例如,所有正样本标记为1,所有负样本标记为0

(7)将正负样本的Hog特征,正负样本的标签,都输入到SVM中进行训练;Dalal在论文中考虑到速度问题,建议采用线性SVM进行训练。这里,不妨也采用线性SVM

(8)SVM训练之后,将结果保存为文本文件。

(9)线性SVM进行训练之后得到的文本文件里面,有一个数组,叫做support vector,还有一个数组,叫做alpha,有一个浮点数,叫做rho;alpha矩阵同support vector相乘,注意,alpha*supportVector,将得到一个列向量。之后,再该列向量的最后添加一个元素rho。如此,变得到了一个分类器,利用该分类器,直接替换opencv中行人检测默认的那个分类器(cv::HOGDescriptor::setSVMDetector()),就可以利用你的训练样本训练出来的分类器进行检测了。


效果显示:

车牌识别技术详解五--采用LBP+HOG SVM做目标分类,车牌检测,字符检测等_第5张图片


欢迎交流,QQ:896922782,微信:15058133936

http://blog.csdn.net/zhubenfulovepoem/article/details/12343219



你可能感兴趣的:(车牌识别系统)