APP下载

一种基于无人机的违章违停自主巡检系统

2019-12-11梁定康郭宇锋

计算机技术与发展 2019年12期
关键词:字符识别车牌违章

肖 建,梁定康,徐 威,郭宇锋

(南京邮电大学 电子与光学工程学院,江苏 南京 210023)

0 引 言

随着人们生活水平的不断提高,汽车保有量的不断上升,由此产生的交通问题给城市发展与管理带来了诸多不便[1-3]。现阶段,忽略不良天气、道路设计等客观原因,车辆的违章违停是使得交通压力增大的重要原因,因此将先进技术应用于智能交通系统的违章查处就显得尤为必要[4-6]。在国内的城市主干道路已安装了大量的摄像头,部分支线道路还未完成摄像头的分布,摄像头往往存在监控盲区、监控范围小等不足,致使无法全方位监控道路上的违章违停车辆;传统的交通管理方式是派遣交警进行巡逻,发现一辆,查处一辆,这样的方式耗时耗力,且无法保证能拿到第一现场的视频图像资料,因而促进了以机动灵活、小巧轻便为特点的无人机在智能交通系统中的应用。近年来,不断有研究学者将无人机应用到智能交通系统,其中Njah等[7]提出了一种智能搜救无人机的飞行控制方法,基于能量反演镇定函数进行算法设计,并集成到Linux嵌入式平台中。陈强[8]提出了一种小型无人机摄影2D-DLT测量法,可实现对交通事故现场的勘测。侯阳阳[9]通过无人机视觉利用差分图像获取行道线的边缘信息,最终完成了对道路的检测。陶晓力等[10]针对传统公路桥梁的养护管理方式存在工作效率低等问题,提出了基于无人机视觉的桥梁裂缝检测方法,完成了桥梁裂缝的自动化智能检测。

针对目前对违章违停监管系统的监测范围小、巡检效率与实时性较低等问题,文中研究了一种基于特征提取图像处理的无人机自动巡检系统。无人机通过机载高清摄像机实时采集图像,巡检系统根据图像信息完成车辆识别、车牌定位与车牌字符识别,最终根据识别结果远程通知车主的违章行为,实现快速响应。

1 系统整体设计方案

该系统基于无人机平台,将图像传输模块、摄像机和云台安置于无人机机体上,结合计算机视觉技术,从而实现了对目标车辆的快速检测。该系统包含无人机控制子系统、车辆违章违停检测子系统以及信息传输子系统,其具备小巧轻便、机动灵活且在空中作业时无地域限制的优点。

1.1 无人机控制子系统

无人机控制子系统主要包括飞控和主控2个模块,用于控制相机云台采集图像、根据卫星定位模块信息识别禁停区域、驱动无人机沿指定路径飞行和实现数据通信等,并根据通信指令发送信息至检测子系统。

1.2 检测子系统

检测子系统对接收到的图像信息进行处理,用于实现违章违停车辆的自动识别。具体而言,它包括运动目标检测、车辆识别和车牌识别等功能,并最终输出车牌字符信息。

1.3 信息传输子系统

信息传输子系统根据检测子系统的检测结果,进行车主信息匹配并记录,同时发送短信通知车主的违章违停行为。

将三个子系统进行整合,构建了基于无人机的违章违停自主巡检系统,如图1所示。

图1 基于无人机的违章违停自主巡检系统

2 车辆违章违停检测

2.1 运动目标提取与违章检测

车辆检测属于计算机视觉中目标检测的范畴。运动目标检测指的是将待检测目标从背景图像中高效地分割出来,以便做下一步的处理。在该系统中,该功能是完成车牌定位和车牌识别的前提。常用的目标检测方法有背景补偿法、光流法、聚类法以及模式识别等。Wu等[11]针对移动相机下的动作识别,提出了运动补偿法。Cao等[12]基于STARS车辆匹配算法以及BLPS-HOG的特征提取算法,提高了对运动车辆的识别率。李广等[13]通过对相邻帧图像进行SIFT特征点检测及特征点匹配,提出了基于SIFT和K-MEANS的运动目标检测算法。上述算法主要针对的是固定摄像头的图像处理技术,在对几种常用算法进行分析之后,结合无人机所拍摄视频的实际情况,文中采用混合高斯背景建模,然后使用背景差分结合基于OTSU阈值法的最小生成树算法分割出运动目标,具体流程如下:

(1)初始化高斯模型的矩阵参数,将高斯的均值、权值、方差都设置为0。

(2)采用无人机采集视频的前T帧图像训练GMM模型。对于视频每帧中的每一个像素而言,将GMM_MAX_COMPONT设为其模型个数的最大值。当获取到第一个像素时,在程序中将均值、方差和权重初始化为1。

(3)对于视频中的非第一帧图像,当获取到后继像素时,将其与已有的高斯模型均值进行比较。若该像素点的值与其模型均值的差在3倍方差内,则认为其属于该高斯模型。随后用式1进行更新:

(1)

(4)当完成T帧的训练后,自适应地选择不同像素点的GMM数量。使用式2进行选择。

(2)

将权重除以方差对各个高斯模型进行降序排序,随后选取符合上式的前b个高斯模型,式中cf设为0.3,便于在训练过程中消除噪声点。

建立背景模型后,前景给定255,背景给定0,这样就形成了一幅前景二值化图像。由于前景二值化图像中含有很多噪声,因此需要采用开操作对噪声进行消除,随后使用闭操作重建因开操作而丢失的部分边缘信息,并形成连通区域。使用基于OTSU阈值法的最小生成树图像分割算法,自适应地选择最优分割阈值,并分割得到运动目标。当识别出目标停留在禁停区域一定时间时,自动确认其符合违章停车条件,进一步提取车牌信息。流程如图2所示。

图2 车辆违章违停检测流程

2.2 车辆识别与车牌识别

车辆识别基于Haar特征和OpenCV提供的AdaBoost分类器完成。Haar特征是Papageorgiou等[14-15]提出的一种矩形特征,它定义为相邻区域内像素灰度值总和的差值,即反映了白色区域到黑色区域的梯度变化情况。AdaBoost由Freund[16]提出,能够对同一个训练样本训练不同的弱分类器,随后进行加权整合,从而得到一个强分类器。在训练期间,先分别标注正负样本,并提取出样本的Haar特征输入到OpenCV提供的AdaBoost分类器进行训练,从而得到车辆识别模型。在测试阶段,根据2.1节分割获得的运动目标区域提取15种Haar特征,随后将特征输入到已训练好的模型之中。根据反馈的类别编号,从而判断出该目标是否为车辆。

车牌识别包括图像预处理、车牌定位以及车牌字符识别三部分。考虑到无人机采集的视频受硬件条件及外界环境的影响,可能存在颜色不均衡、光照不充足等问题,因而在进行车牌定位前需要进行预处理。首先,图像的彩色信息不影响图像的特征提取,因此将三通道RGB彩色图像转化为单通道的灰度图像(见图3(b))。转换公式为:

Gray=0.3*R+0.59*G+0.11*B

(3)

其中,Gray为灰度图像的像素值;R、G、B则分别对应彩色图像中红、绿、蓝通道的值。

通常来说,输入的图像会包含噪声,因此需要对图像进行滤波处理,此处采用高斯滤波,用于消除正态分布的噪声(见图3(c))。图像高斯滤波可以表示为:

(4)

高斯滤波之后需要边缘检测,此处采用了OpenCV提供的Sobel边缘检测算子。Sobel算子是基于边缘检测算法中常见的边缘提取算子,通过计算图像函数一阶梯度的近似值,根据设定的阈值从而得到车牌的边缘信息。在OpenCV的默认参数设置中,SOBEL_X_WEIGHT设置为1,SOBEL_Y_WEIGHT设置为0,即只在垂直方向上求梯度,而不计算水平方向的梯度,其结果是会检测出很多水平边缘。根据实际情况,车辆前端具有较多的水平边缘,如车头进气口、车标等,较多的水平边缘在后续处理中可能会使得车牌区域和上述其他区域连接在一起,因此将SOBEL_X_WEIGHT与SOBEL_Y_WEIGHT均设置为0.5,最终的边缘检测结果如图3(d)。对边缘检测后的图像进行二值化处理,由于光照强度不同,导致二值化阈值在不同场景下不尽相同, 因而采用OpenCV提供的自适应二值化方法(见图3(e))。随后采用闭操作,将车牌字母连接成封闭的连通域,以便提取轮廓。闭操作包括膨胀与腐蚀两步操作,经过膨胀处理后的图像,能将二值化图像中分开的图块进行结合,再通过腐蚀操作,使得连通域的边缘和突起变得平滑,最终获得无突起的连通域。经过闭操作,车牌字符的图块变成了一个较为规则的矩形连通区域(见图3(f))。

图3 车辆图像预处理过程

完成图像的预处理之后,需要对图像进行车牌定位。首先对连通区域取最小外接矩形轮廓,得到一个用矩形包裹的车牌区域。由于闭操作的作用,会把每帧图像中的所有轮廓计算出来,即可能会产生许多非车牌区域的矩形轮廓,因此需要进行筛选。采用基于尺寸的筛选方法,对每个矩形求取尺寸参数,淘汰不满足阈值范围的矩形;对矩形角度进行判断,将矩形倾斜角度在阈值范围之外的淘汰,余下的矩形则进行旋转,使其轮廓水平。经过筛选后仅保留少部分的车牌候选矩形区域。

采用基于OpenCV的SVM模型进行训练,以训练出车牌判断模型。SVM即支持向量机,本质属于一个二分类器,能将样本空间中的线性不可分问题,通过非线性映射至高维空间,最终转化为其特征空间中的线性可分问题,降低计算复杂性[17],适用于该系统的车牌图块判别部分。由于筛选后的矩形图块尺寸不同,为了便于进行模型训练,故训练前需要将尺寸统一。通过多次经验比较,将标准长度设置为140,像素宽度设置为40。SVM模型根据预先设置的标签属性进行训练,在训练前,手工将车牌图块标签设置为1,将非车牌图块标签设置为0,然后SVM通过不断地对图块集进行学习,从而达到具备判断新图块是否为真车牌图块的能力,将完成训练的模型生成xml文件,以供使用。基于Sobel算子的车牌定位与判断流程如图4所示。

图4 基于Sobel算子的车牌定位与判断流程

使用训练好的模型对候选图块进行判断,得到真正的车牌区域,紧接着进行车牌字符识别。字符识别作为车牌识别的关键一步,需要具有较强的鲁棒性。字符识别需要将字符一一进行分割,车牌一般由1位汉字,6位数字或者字母组成,每个字符所占据的位置是固定的,通过轮廓提取即可得到每个字符的矩形框。具体操作为将车牌图块依次进行灰度化、二值化、取轮廓、找外接矩形,随后将外接矩形一一截取,归一化尺寸。考虑到一些中文字符与其相邻的字母在二值化后会出现连接的情况,根据矩形中心在车牌图块1/7与2/7的位置判断是否为字符进行分割。随后将分割好的字符块输入到字符识别模块之中。此处采用基于OpenCV的ANN模型进行识别,它本质是一个三层神经网络,包含一个输入层、一个隐藏层和一个输出层,神经网络利用反向传播法进行训练,具有很好的容错能力和自我学习能力,适合该系统的车牌字符识别任务要求。

3 实验与结果分析

实测中,控制无人机自动沿指定路径飞行,实时传输现场视频至图像处理终端,并依次完成图像预处理、车牌定位、车牌识别,随后将违章违停的信息发送给相关车主,实现快速响应。

基于Sobel算子的车牌定位部分,选取1 500张无人机拍摄的车辆图像进行测试,测试结果见表1。

表1 基于Sobel算子车牌定位测试结果

准确率的计算公式为:

(5)

其中,Acc为准确率;Rs为正确定位的数量;Ts为测试样本的总数量。

测试结果表明,车牌定位部分的成功率较高,但仍然存在错误定位的情况。通过分析发现,大多数原因是由于图像中存在较多的水平边缘,从而导致在使用Sobel算子进行边缘检测后再进行闭操作会使得车牌区域和其他区域形成连通,从而降低了定位效果。

在SVM和ANN的训练期间,需要对样本进行训练。SVM车牌训练集包括了各1 500个车牌图块和非车牌图块,测试集为600张。ANN字符训练集包括了中国车牌所用汉字、英文字母、阿拉伯数字各500张,测试集200张。在SVM模型的批量测试中,对600张候选车牌区域进行了测试,检测结果见表2。

表2 车牌图块测试结果

通过测试结果可以看出,平均分类准确率达到95.65%。分析发现,分类错误的原因是车牌图块中存在铆钉或者是泥土等障碍物,或是因极端天气影响,如雨雪天气,导致所拍摄的车牌图块模糊不清,从而影响了分类效果。

在进行车牌字符识别过程中,对150张图片进行测试,字符识别准确率达到94.67%,表现出了良好的识别效果。图5为对单张图片进行车牌定位、车牌字符分割和识别的效果。

图5 车牌定位、字符分割与识别的结果

在完成车牌字符识别后,根据结果匹配车主信息,远程发送短信通知车主的违章违停行为。实验与实测结果表明,无人机在飞行过程中能按照指定路径自主飞行,并实时传输图像至检测子系统,最终完成了车辆识别、车牌定位与车牌字符识别的任务。自主巡检的无人机系统能够大大减轻警员的工作量,缓解交通压力。

4 结束语

针对现有违章违停车辆监管和查处方式效率较低的问题,设计并实现了一种基于无人机违章违停自主巡检系统。如在某道路两侧存在多辆违章停车,一架担负执勤任务的无人机单次飞行,即可提取两侧违章违停车辆的车牌信息,并远程通知车主违章行为。针对无人机拍摄的视频不同于固定式摄像头的特点,设计基于高斯模型的背景差分法实现了运动目标的检测;在车牌定位中,通过边缘检测及轮廓提取得到候选车牌区域,最终经过SVM模型得到真正的车牌区域;在车牌字符识别中,利用汉字与字母的位置特点实现字符的分割,采用了神经网络实现字符快速识别;根据识别结果进行违章违停信息记录,并短信通知车主。实验结果表明,该系统可以快速有效地检测出违章违停车辆,在智能交通方面具有较大的应用前景。

猜你喜欢

字符识别车牌违章
打 车
车牌颜色里的秘密
拷问 涂改号牌扣12分,重吗? 它可能是违章、违法的前提!
第一张车牌
一种侧向插装型车牌架
融合字符及字符排列特征的铭牌识别方法
一种基于OpenCV的车牌识别方法
基于MATLAB的图片中字符的分割与识别
广州交警使用无人机抓拍违章车辆
“他的车牌是……”