原创

[机器学习]有监督学习——通过特征学习来识别车牌号中的几个通用解决问题经验分享

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://lekkoliu.blog.csdn.net/article/details/82926444

写在前面

车牌号一般通过设定的阈值和图片直方图,找出波峰,用于分隔字符。然后利用openVC中自带的SVM进行训练后得到特征库。包含了汉字,英文及数字的特征。最终通过图像处理如:高斯去噪分辨率调整车牌定位图像边缘计算得到车牌位于的图像边缘整体形成的矩形区域,然后通过车牌特征进行疑似的矩阵排除。得到正确的矩阵后进行文字分割,最终通过特征库匹配进而得到正确的识别字符

经验分享
经验一,一般通过停车场档口进行拍摄的照片识别率较高,而通过高速摄像机上拍到的照片基本识别不了的问题。
原因查明后在于这里主要是识别精度的问题。一开始以为是图片分辨率的问题。然后对分辨率进行了提升。后面拿到高精度的分辨率图片依然不能正确识别出来。这个问题最终是通过扩大在[车牌定位]处的识别参数进行调整,这样虽然扩大了满足特征的样本数但是更多的涵盖住了正确的车牌点。后续只要调整对样本的排除算法和参数计可以解决问题。

MAX_WIDTH = 1920 

经验二,对于距离比较远的车辆车牌无法进行识别的问题。
这里除了上述第一个解决思路之外,同时还有一个对于车牌号矩阵大小的设置问题。因此这里没有一个固定设置多大多小更合适,而在于不同的场景下需要对车牌预期矩阵大小进行调整。比如高速上就需要对车牌区域允许最小面积进行较小的设定,同时对于车牌的长宽比的话更倾向于在3以上到5.5之间的设置。如果对于距离较近的停车场识别环境或者车主拍照的模式,则需要考虑到长宽比在3以下和不同角度拍照问题,同时车牌预期矩阵大小应该设置相对较大。

Min_Area = 1000 

经验三,关于识别精度和文字分割问题。
一般来说,对于阈值和图片直方图的比例设定直接关系到文字分割的精准度。我尝试过多种设定比例,一般来说,对于Y轴的阈值域直方图关系设定,我在7左右,主要是考虑到那些封闭和未封闭的字符之间关系。如U和0或者O这种。因此在这里我一般设定为7.

y_threshold = (y_min + y_average) / 7

对于横轴x的阈值和图片直方图的比例,我设定为3。主要是考虑到7或者1这一类字符。

x_threshold = (x_min + x_average) / 3

经验四,关于车牌边缘识别的问题。
一般来说,正常较新的车牌在白天的情况下能够被正常识别出内容边缘,不会将边框识别进入。但是很多时间较长的车牌使用后会出现生锈、周围刮花的情况,不能被正确进行识别。这里可以考虑对于识别出来的内容框去掉车牌上下边缘1个像素,来减少因为边框对阈值判断的影响。不过一般对于识别率较低尤其是黑夜的情况下,我们是希望有更多的内容进入到识别内容,所以这个是否去除需要考虑到使用环境。

gray_img = gray_img[1:row_num-1]

经验五,对于车牌色域识别的问题
这里色域的设定对于识别车牌区域起着至关重要的作用。因此对于HSV的设定需要考虑一般情况,也要考虑使用情况如是否是黑夜,是否摄像头产生红移,用户车牌有偏色等等。我们需要对色偏进行适当的调整才能正确处理车牌矩阵。

经验六,色域信号处理。
我们通过对车牌矩阵中的颜色模式进行识别后,进行对应的信号处理。这里的算法需要考虑多种关系,如识别出来的色调信号并不单一,包含了多种信号在里面。因此我们需要考虑增加对去燥信号的算法处理。另外,有的信号特别清晰,导致该颜色的信号量少但是整体色域信号量大,导致机器误判等问题。因此也需要增加额外算法进行处理。

经验七,文字处理的其他内容
主要是包含了车牌上的钮钉和分割点。这两个容易对识别内容进行干扰,需要提取内容的时候去除掉。

挑战
通过SVM的算法利用自带的文字库进行识别,正确率能够在77%左右。后面需要改进的地方还有三点。第一点是对拍摄角度不同的照片处理,需要算法进行自适应计算。第二点是色偏和清晰度对识别正确率的调整。第三,如果加入人工智能的方式对训练库持续的更新,才能更好的提高识别成功率。

文章最后发布于: 2018-10-02 15:33:17
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览