项目总结之车牌识别

以前也做过类似的项目,然而并没有写下总结之类的东西。今日突发奇想记录一下,以备后续查看,不对之处敬请指出。

首先需要把握的项目的总体框架,年轻的时候总是喜欢追求细节,看书是这样(仿佛记得细节的专业词语可以卖弄),做事情做项目也是这样。随着年岁渐长,发觉整体把握才是首要任务。那么对于一个曾经熟悉但是忘却或者甚至是陌生的领域怎么进入呢?实际上很简单,去google scholar点击打开链接搜寻下相应领域的review或者survey之类的paper看,看两三篇就可以把握大体框架,这样骨架就有了。实际上这也是做科研的过程中训练出来的思路,这也是为什么研究生做事情往往比大部分本科生来的快的原因。车牌识别的大体框架是:车牌定位(license  plate location)、字符分割(char segment)、车牌识别(license plate recogniton)。

接下来是填充血肉的过程。先看车牌定位,由于车牌定位是整个项目的第一部分,车牌的定位精度必然关联着整个项目识别的精度。然而由于光照,天气等因素的影响,车牌定位的精度要达到100%实际上是非常困难的。常规的方法无外乎根据边缘来定位,根据颜色信息来定位,根据其他特征来定位等。用到的算法有传统的图像预处理的方法,也有机器学习的一些方法如隐马尔可夫模型,支持向量机,adaptive boosting方法等。根据边缘信息来定位车牌是最简单也是最常用的方法之一,但是受光照等外在噪声影响也比较大。通过颜色信息来判断看似可靠,然而通用性却有待提高,比如只能识别一国车牌,另外颜色信息在不同的光照下又不一样。最后稳定的方法就剩下通过提取图像的harr-like特征或者其他特征采用机器学习的方法来定位车牌,在数据集设置合理训练合适的情况,鲁棒性非常强。

而字符分割采用投影的方法,隐马尔可夫模型等都可以去实现。相比较这些方法而言,投影的方法简单也比较鲁棒。更重要的是在字符分割之前对图像做的增强操作。同样由于光照等的影响,普通的图像增强方法在增强字符的同时也增强了背景,在减弱前景的时候也会减弱背景。文献《A New Algorithm for Character Segmentation of License Plate 》提到的方法或许可以一试:由于《A high performance license plate recognition system 》指出字符只占整个车牌图像的20%左右。将图像的灰度由0--255变换到0--100,然后将图像的灰度值按照降序排序,将前20%的灰度再变化到0--255的范围,这样就将字符增强了,而将背景模糊了(这里假设背景是黑色,字符是白色的情况)。图像增强后(准确的说应该是目标增强)进行垂直投影水平投影后即可比较准确的切分出字符。

最后车牌识别阶段采用开源框架tesseract或者其他的框架都可以去做,但是需要训练对中文字符的识别。或者采用ANN、SVM等机器学习的方法来做识别即可。

发布了61 篇原创文章 · 获赞 12 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/liqiming100/article/details/78240756