许卫洪
摘要:文章提出了一种基于LabVIEW和Vision Assistant的车牌识别方案。系统使用Vision Assistant的颜色阈值、高级形态学及光学字符识别等函数,实现了对车牌图像的预处理和车牌区域定位以及车牌字符分割、字符训练和识别,使用LabVIEW程序完成车牌的显示。使用数百张车牌图像对该系统进行验证,结果证实该方案是可行的,系统是可靠的,可以快速、准确定位和识别车牌。
关键词:车牌识别;视觉助手;车牌定位;字符分割与识别
中图分类号:TP391.41中图分类号文献标志码:A文献标志码0引言随着我国经济的快速发展和汽车工业水平的不断提升,汽车的生产成本也大大降低。这两方面因素都刺激着我国汽车行业的快速发展以及汽车保有量的急速增长[1]。要对如此之多的车辆进行有效的管理,必须进行车辆身份的识别。车牌是车辆最明显且唯一的身份证。因此,设计一款高效的车牌识别系统有很高的应用价值。
我国的车牌按照目的和用途分为小型汽车号牌、大型汽车号牌、新能源汽车号牌及其他类型共27类。本文针对已经采集到的蓝底小型汽车号牌图像,提出了一种基于LabVIEW和Vision Assistant的车牌识别方案。
1系统整体结构和软件选择车牌的识别过程主要包括获取车牌图像、图像预处理、车牌区域定位、车牌字符分割、车牌字符识别、车牌显示等,如图1所示[2]。
车牌识别系统常用的开发软件包括OpenCV,Matlab,VC,LabVIEW等[3],本系统选择采用LabVIEW,主要有3个原因:(1)LabVIEW编程软件可以把计算机作为处理器,因而可以应用计算机强大的处理和存储功能,使采集的车牌图像可以存储在计算机中。(2)LabVIEW属于图形化编程语言,编程效率高,内含多种函数,尤其是视觉与运动模块含有400多个可供直接调用的函数。(3)视觉助手Vision Assistant功能强大,可以实现算法合理性和可靠性的快速验证,可以实现将编写完的程序转化为LabVIEW的VI程序,方便LabVIEW调用。
2系统的设计与实现2.1获取车牌图像因蓝底小型汽车号牌图像已经完成采集并存储到电脑中,系统在获取车牌图像时只需通过程序将图像读入即可,对应的程序框如图2所示。通过使用LabVIEW中的创建图像IMAQ Creat、获取文件信息IMAQ GetFileInfo和读取文件IMAQ ReadFile这3个函数,只需输入图像保存的文件路径,系统就可以读取车牌图像。
2.2车牌预处理与车牌定位由于读入的不同车牌图像的像素和大小很可能不一致,且在车牌图像中定位车牌时不需要对整个图像进行处理,因此系统只需要在读取的车牌图像中确定一个区域去进行分析即可。这个需要确定的区域即为兴趣区域ROI(Region of Interest)。
在确定兴趣区域时,系统必须确保图像中的车牌号部位在该区域内。为实现此目的,系统需利用LabVIEW的获取图像信息IMAQ GetImageInfo函数来获得每个车牌图像信息,根据该信息确定ROI。确定ROI后,系统还需利用视觉助手Vision Assistant来完成车牌号码区域的定位,即系统通过使用Vision Assistant的阈值化函数将图像中的高亮度区域和其他区域予以区分,使高亮度区域阈值化后的像素值为1,其他区域阈值化后的像素值为0,高亮度区域即为车牌号码的位置。
为实现阈值化,本系统中采用了颜色阈值Color Threshold函数,以使彩色图像转换成二值图像。颜色阈值函数能将彩色图像在4个颜色平面(RGB、HSL、HSV和HSI)上应用阈值并且放置结果到一幅8位的图像中,实际上是1位的二值图像,图像中的值只有0和1。
为了更好地获取车牌定位,系统需利用3种不同的颜色模型进行二值化。除了最为常见的RGB(红绿蓝)颜色模型[4],HSL(色调、饱和度、亮度)颜色模型是应用比较多的另一种颜色模型,该模型色调(色相)平面抽取的是彩色图像的色调[5]。另外,HSV 颜色模型(也称HSB 颜色模型)与HSL颜色模型相近,区别在于HSV 颜色模型将HSL的亮度平面换成了Value值平面。HSI 颜色模型与HSL、HSV颜色模型类似,区别在于HSI 颜色模型是Intensity强度平面。本系统中,Vision Assistant中的Color Threshold1函数利用了HSL颜色模型,Color Threshold2函数利用了HSI颜色模型,Color Threshold3函数利用了RGB颜色模型。
二值化后,系统再使用高级形态学Adv.Morphology函数,获取车牌号码位置的图像。高级形态学函数通常是有条件的组合基本变换,如二值的腐蚀、膨胀、开闭运算、删除小目标、删除大目标、删除边界目标、填充孔洞、凸包、骨架、分割目标等。使用高级形态学操作可以填充粒子、去除接触边界的粒子、去除不必要的小的或大的粒子、分离接触的粒子、查找凸包的粒子,可以使用这些变换来准备粒子以用于定量分析、观察几何区域、提取最簡单形式的建模、识别目标等。
本系统使用颜色阈值Color Threshold函数和高级形态学Adv.Morphology函数的不同组合配合使用,对每一车牌均获取3个图像,如图3所示。Adv.Morphology1函数和Adv.Morphology2函数均采用凸包函数,可以计算每个粒子的凸出包络,可以有效地关闭粒子,以便于粒子测量,甚至当粒子轮廓不连续时也可以通过凸包后进行测量。当然,凸包函数也可以填充孔洞。
Adv.Morphology3和Adv.Morphology4函数分别为凸包函数和删除小目标函数。删除小目标Remove small objects函数,其作用就是将图像中的小的目标删除掉,使图像更简洁。小的目标的宝岛是通过腐蚀次数Iterations来定义的,定义的腐蚀次数越大,则过滤删除的小目标面积也就越大。腐蚀次数Iterations控制的是使用3×3的掩模进行腐蚀的次数。通过增加腐蚀次数,函数可以删除更大的粒子。Adv.Morphology5和Adv.Morphology6函数分别为凸包函数和删除小目标函数。
完成以上任务后,系统再运用运算函数Operators,将前面获得的3幅图像进行Add运算,以使3幅图像合并为1幅图像,确保后续能提取到完整的车牌号码部分。为了获得较好的车牌图像,系统还需要对合并后的图像进行进一步处理。该过程主要分3个步骤进行。
(1)使用2个高级形态学Adv.Morphology函数,均为Remove Small Objects删除小目标函数,把合并后的图像中的细小目标移除掉。
(2)使用基本形态学Basic Morphology函数再次二值化。基本形态学函数包括腐蚀目标Erode objects、膨胀目标Dilate objects、开目标Open objects、闭目标Close objects、Open、适当闭Proper Close、Gradient In梯度内、Gradient Out梯度外、Auto Median自动中值、Thick粗化、Thin细化等。本系统采用了其中的Auto Median自动中值函数,通过该函数联合使用开操作和闭操作。若I是原始图像,则Auto Median自动中值函数提取原始图像的适当开和适当闭的交集[6]。
Auto Median(I)=AND(OCO(I),COC(I))
或者Auto Median(I)=AND(DEEDDE(I),EDDEED(I))
其中I是原始图像,E是腐蚀,D是膨胀,O是开,C是闭。
(3)运用粒子过滤函数Particle Filter,过滤或保留图像中满足过滤条件中指定的粒子。因粒子过滤函数Particle Filter是基于粒子测量函数Particle Measurements的,因此进行粒子过滤时,系统必须先使用粒子测量函数Particle Measurements测量出所有的粒子及其相差的数据(如面积、质心坐标、质心方向等),再根据用户指定的过滤条件,将满足条件的粒子过滤掉或者保留下来。
粒子过滤函数Particle Filter运行后,可以显示原始图像和现有图像的比对,如图4(a)和(b)所示。由图可见,车牌号码部分已经从读取的图像中分离出来了,车牌号码部分的图像显示为红色,其余部分为黑色,但车牌存在倾斜的角度,会影响后续对车牌的分割和识别。
本系统使用高级直边函数Adv.Straight Edge和卡尺函数Caliper来测量该倾斜角度,并使用最大卡尺函数Max Clamp分别测量水平和垂直方向的两条边之间的最大距离。
完成以上步骤后,在LabVIEW程序中,系统利用视觉助手中测得的车牌倾斜角度及水平与垂直的方向两条边的最大距离信息,使用IMAQ Convert Rectangle to ROI,IMAQ Extract Tetragon,IMAQ Rotate函数,完成车牌的准确定位,如图4(c)所示。
2.3字符分割与识别从背景图像中分离每个字符或者说定位字符的过程通常称为字符分割。本系统利用视觉助手的光学字符识别OCR函数(Optical Character Recognition)来完成字符分割与字符的识别,最终从图像中读取字符与文本。该函数的使用需要区分训练和读取/验证字符两个阶段。
2.3.1OCR函数的训练OCR函数的训练过程如下:采集图像→指定ROI→从背景图像中分离每个字符→提取每个字符的特征信息→为每个分段的字符指定一个字符值→每个字符类分配一个参考字符(可选)→保存字符集为字符集文件。
在训练字符前,系统必须设置OCR的参数,分割想要训练的字符。阈值(Thresholding)是分割过程中最重要的概念之一。基于像素的强度值,阈值可以将图像中的像素分割为前景和背景。OCR函数包含1个手动和3个自动计算阈值范围的方法:Uniform 均衡、Linear 线性、Non Linear 非线性。本系统采用了均衡的方法,是一种通过 OCR计算单一阈值的方法,并且使用得到的该阈值以部分到整体的方式从ROI中提取像素。
分割字符的方法有两种,即自动分割和根据字符的大小进行分割。本系统选择根据字符的大小进行分割的方法。在分割的时候,需选择Size和Spacing选项,设置Bounding Rect Width邊界矩形宽度、Bounding Rect Height边界矩形高度、Character Size字符尺寸、Min Char Spacing最小字符间距、Max Element Spacing(X)最大元素间距(X 方向)、Max Element Spacing(Y)最大元素间距(Y 方向)、Min Space Distance最小字符间距等参数。
对分割出来的字符,还需进行字符集的训练。这种训练方式方便且直观。训练字符的方式有3种:(1)练所有字符(Train All Character)不管ROI中的字符是否已经被识别,全部重新训练。(2)训练错误的字符(Train Incorrect Character)只训练ROI中未识别到的字符,已经识别到的字符则不训练。(3)训练单一的字符(Train Single Character)可以有针对性地对ROI中的某一个字符进行单独训练。
系统将训练的结果以*.abc的形式保存不同字符的特征向量。
2.3.2OCR函数的读取/验证OCR函数的读取/验证过程如下:打开OCR函数→加载字符集文件→采集图像→指定ROI→从背景图像中分离每个字符→与特征集比较特征→返回识别的字符→校验识别的字符。
3结语本文提出了基于LabVIEW和Vision Assistant的车牌识别方案。使用数百张车牌图像进行验证,系统能够对车牌进行有效的识别和显示,证实该方案是可行的,系统是可靠的,可以实现快速、准确定位和识别车牌的目标。
參考文献
[1]张孟军.基于LabVIEW的车牌识别系统研究[D].南宁:广西大学,2016.
[2]朱克佳,郝庆华,李世勇,等.车牌识别综述[J].现代信息科技,2018(5):4-6.
[3]覃传妹.基于LabVIEW的车牌识别小区智能门禁系统[D].南宁:广西大学,2019.
[4]张杨梅.倒谱域彩色图像水印算法研究[D].西安:西安科技大学,2008.
[5]章星晨,孙刘杰.基于Shearlet变换的Retinex去雾算法[J].计算机技术与发展,2019(1):40-46.
[6]李德尧,李和平.基于LabVIEWVDM的锁螺丝机器人控制系统设计[J].机床与液压,2018(23):61-64.
(编辑 王永超)
Design of license plate recognition system based on LabVIEW and Vision AssistantXu Weihong
(School of Internet of Things and Artificial Intelligence, Wuxi College of Commerce and Technology,
Wuxi 214153, China)Abstract: This paper presents a license plate recognition scheme based on LabVIEW and Vision Assistant. By using the functions of Vision Assistant, such as color threshold, advanced morphology and optical character recognition, the system realizes the pre-processing of license plate image, license plate area positioning, license plate character segmentation, character training and recognition, and then uses the LabVIEW program to complete the license plate display.Hundreds of license plate images were used to verify the system. The results show that the scheme is feasible and the system is reliable, which can quickly and accurately locate and recognize license plates.
Key words: license plate recognition; Visual Assistant; license plate location; character segmentation and recognition