王东
Published on 2025-02-25 / 6 Visits

【AI100问(64)】机器如何识别车牌?

车牌识别是目前应用最广泛的AI技术之一。那么,机器是如何识别车牌的呢?我们以一个实际运行的系统为例来说明,该系统的目的是在校园主干道上监控超速车辆,目前已经在重庆科技学院稳定运行超过一年时间。

1. 入场监控

车辆进入监控视野时需要触发系统的监控行为。现有的入场监控方式主要有两种方式:第一种是地感线圈触发方式。当车进入特定位置,触发地感线圈磁场,从而激活雷达和摄像头工作,对雷达测速数据和车辆图像同时进行处理。

第二种是雷达触发方式。当车辆进入雷达覆盖范围时,触发雷达采集车辆速度并进行判断,当车速大于设定值时,触发车辆前方的摄像头拍摄超速车辆的照片。我们的系统采用这种雷达触发方式。

2. 车牌图像获取与识别

得到车辆照片后,很重要的一步是提取出车牌的图像。由于不同车辆外观不同,光照环境、入场位置、角度各有不同,要从车辆照片中获取到车牌图像并不容易。我们以下面一幅照片为例来说明这一任务的完成步骤。

第一步:灰度变换。目的是提高图像处理时灰度级的动态范围,彩色照片就变成了一张灰度照片。

第二步:开运算。能够除去孤立的小点,毛刺和小桥,而总的位置和形状不变,运算结果呈现圆润的边缘。

第三步:差分图。目标场景在连续时间点图像相减所构成的图像,将第一步和第二步的输出结果共同进行差分运算。

第四步:二值化。将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。

第五步:边缘检测。目的是标识数字图像中亮度变化明显的点。

第六步:闭运算。目的是填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。

第七步:图像再次开运算。

第八步:车牌定位。对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区(蓝色底、黄色底、绿色底、白色底等),对这些候选区域做进一步分析、评判。

第九步:分割车牌与背景。选定一个最佳的区域作为车牌区域,并将其从图像中分割出来。

3. 车牌识别

得到车牌图像后,即可识别车牌的内容,可分三步完成。

第一步:图像二值化。将前面得到车牌图像二值化生成黑白图像。

第二步:车牌字符分割。将车牌区域分割成单个字符,一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足车牌的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。

第三步:车牌字符识别。对分割出的字符进行识别。目前主要有基于模板匹配的算法和基于深度神经网络的算法。我们的系统采用的是神经网络方法,基于一种称为YOLO的网络结构,可以直接定位字符位置并识别出字符类别。

4. 小结

前面介绍的车牌识别流程是一个较为稳定、实用的解决方案。事实上,不论是车牌图像提取还是数字识别,都有很多替代方案,如基于YOLO网络的车牌提取方法,基于递归神经网络的连续数字识别方法等。实验表明,我们所采用的方法相对这些替代方案在实际运行中表现地更加稳定。

车牌识别虽然比较成熟,但在实际应用中还存在很多问题需要解决。首先是中英文字符识别问题。对于数字,可以利用Mnist等现有数据集进行训练,而汉字和英文字母的数据集相对较小,误识别率会高一些。另外,天气情况、环境光线、拍摄角度、拍摄亮度、车辆速度等因素都会不同程度上降低车牌识别的性能,需要在实际中用各种工程和技术手段加以解决。

By:重庆科技学院  利节