岩淑霞
(苏州健雄职业技术学院,江苏 苏州 215400)
车牌识别在车辆定位、汽车防盗、高速公路超速自动化监管、闯红灯电子警察和公路收费站方面应用广泛,大大提高了智慧城市交通的运行和管理效率。车牌识别技术是指通过监控、拍摄、自动提取车辆牌照信息并进行图像处理的技术,可以在汽车行驶状态下由计算机自动完成车牌的识别。车牌识别以数字图像处理、模式识别、机器视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到某汽车唯一的车牌号码,从而完成识别过程。当前机器视觉应用软件主要包括OPEN CV、HALCON和Visionpro,HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。HALCON由一千多个各自独立的函数以及底层的数据管理核心构成,其中包含了各类滤波、色彩以及几何、数学转换、形态学计算分析、校正、分类辨识、形状搜寻等基本的几何以及影像计算功能。运用HALCON软件进行视觉开发,能够节约产品成本,缩短软件开发周期,本文采用HALCON作为车牌识别系统的关键处理模块,将机器视觉技术应用于车辆牌照的快速、高效识别和检测。
基于HALCON软件的车牌识别流程如图1所示。通常情况下首先使用工业相机采集车牌图像,接下来对采集的原始图像进行预处理,该过程主要是为了留下更多有用的真实信息,增强图像信息检测的准确性;之后运用软件中的算子完成预处理图像的阈值分割,并进行域连通,然后再进行数字形态学处理;最后通过特征提取完成车牌字符和数字以及汉字的识别。
在实际的车牌识别过程中,采集到的图像会受到很多因素影响,比如大气环境中的雾霾、拍摄光源的不稳定、行人的遮挡、拍摄系统机械结构的不稳定等等,这都会使得获取到的原始图像质量不佳,从而需要对获取到的图像进行预处理。预处理是指对工业相机采集到的原始图像进行提取、分割和识别之前的图像预处理操作,这些操作主要包括图形的切割、车牌的突出显示等,通过该操作可以改善车牌图像的视觉效果,并且大大提高车牌区域和背景区域的区分度。
图1 基于HALCON软件的车牌识别流程
ROI是指感兴趣区域,即将需要识别的图像聚焦在特定部分。该方法结合含有图像矩阵的区域信息,即仅仅相对于图像部分的区域保持相关,其可减少被处理像素的个数。
运用ROI的优势有很多:①提高了图像的处理速度,使得被处理的像素更少;②聚焦处理,如灰度特征的计算仅仅是针对图像部分进行;③ROI重新定义模板,如对于匹配,HALCON运行能够应用于任意形状,使得用户不会受限于标准的形状,而是可以用任何形式或最好的形式去解决给定的问题。
运行ROI分为两个部分:创建区域和结合图像。HALCON能够提供许多方法去创建区域,并将其用作ROI;结合图像是指将区域与图像相结合,区域承担一个ROI的角色,它定义图像的那个部分必须被处理,这个ROI就是对这个函数域从完整图像到相关部分的剪切,因此,结合区域和图像的算子被称为reduce-domain,这个简单的算子在几乎所有的应用中能够满足所期望的任务。
在确定了识别范围之后,如何从HALCON软件的一千多个算子中选用合适的算子是要依靠用户的经验以及对于影像分析领域的知识完成的。HALCON软件提供了一系列的方法,使得选择运算符更为正确而便利,如果知道运算符名称的部分字符串,则只要在运算符窗口中的文字输入栏输入,所有含有该字符串的名字就会列在combo box中。
一般来说,灰度值范围的上、下限值选取会直接影响识别效果,通常情况下,有两种方法可以确定灰度值的上、下限值:
(1) 将图像尽量放大,放大到灰度值显示明显时,在软件的左下角观察其灰度值,如果识别的图像是黑色,则上限值为0,下限值在灰度值附近取值;若二值化后选取的图像是白色,则下限值为255,上限值在灰度值附近取值。
(2) 通过移动软件中的特征值直方图的箭头,在所要识别的图像能够完全清晰显示时,记录该时刻的灰度值区域,然后进行适当缩放即可。
经过以上步骤对车牌图像进行处理,顺利完成了车牌字符的识别,包括汉字、数字和字母的识别。
在这里,首先选取包含简单汉字的车牌号进行识别。下面以“苏E 8889X”车牌号为例,对以上识别过程进行验证。
对原始图像进行预处理与加载及ROI确定后得到的识别区域如图2所示。
图2 预处理后得到的识别区域原图像
首先进行图像获取,然后设置图像打开的窗口尺寸,之后进行图像灰度化处理,确定图像的阈值范围后对图像进行连通。具体的实现步骤如下:
get_image_size(Image1, Width, Height)
dev_open_window(0,0,Width*2.8, 2.8*Height, 'black', WindowHandle)
dev_display(Image1)
rgb1_to_gray(Image1, GrayImage)
stop()
threshold(Image1, Region,90, 210)
connection(Region, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 50, 2000)
经过以上图像处理后,得到灰度化处理后的图像和阈值分割后的图像,分别如图3、图4所示。
选择一个运算符,如threshold(Image1,Region,90,210),其中“90”和“210”两个参数的选取是非常关键的。因为识别的图像偏白色,所以threshold(Image1,Region,90,210)第一个数值在114附近,第二个数值最大值是255,越白值越接近255。根据图中颜色判断及反复尝试,第二个参数选取210得到了较好的识别效果。参数的选取及验证过程如图5所示。
图3 灰度化处理后的图像 图4 阈值分割后的图像
图5 程序运行中参数范围的确定
在算子select_shape(ConnectedRegions,SelectedRegions,'area','and',50,2000)的参数选区中,也是先框定大致的区间,然后再通过反复实验确定面积的取值范围,最后得到满意的识别效果。连通域后的图像如图6所示。在特征提取后,得到的识别图像如图7所示。车牌识别结果如图8所示。根据识别结果可见,该识别方法对汉字的识别也取得了非常满意的效果。
图6 连通域后的图像 图7 特征提取后的图像
图8 车牌识别结果
为了进一步验证该车牌识别程序的通用性,特选择汉字较复杂的车牌样本进行识别。以“粤B 9F422”为例,运用同样的识别步骤,但对其中的部分参数进行了修改,修改后的程序参数如下:
threshold(Xt1g0kZ8vL5gv3AB, Region, 65, 230)
select_shape(ConnectedRegions,SelectedRegions,'area', 'and',50, 550)
实验结果表明:针对不同的图像种类,只需要对程序中的若干参数进行修改即可得到满意的效果。其原始图像及识别结果分别如图9和图10所示。
图9 原始图像1 图10 识别结果1
为了再进一步验证本程序对较复杂的车牌汉字的识别效果,又选取了含有更加复杂汉字的样本进行识别,通过同样的系列操作,取得了满意的识别效果,其原始图像和识别结果分别如图11和图12所示。
图11 原始图像2 图12 识别结果2
识别程序主要修改的参数如下:
read_image(Image, 'C:/Users/91290/Desktop/豫.png')
threshold(Image, Region, 130, 235)
select_shape(ConnectedRegions,SelectedRegions,'area', 'and',400, 1500)
本文基于HALCON软件设计了汽车牌照识别系统。为了验证HALCON软件的识别准确度,对含有较复杂汉字的车牌照片进行了识别实验。结果表明:该技术简单高效,识别准确度高,具有一定的推广价值。