朱颖,吴钰鑫,梁舒杰,朱珍妮
(广东工业大学华立学院,广东广州 511325)
停车管理问题一直是城市道路交通管理中的一大难题,目前停车管理主要还停留在人工管理加车牌识别系统的半智能层面上,主要解决了自动停车收费问题,管理效率不高,且不能对停车实时有效监管,“停车乱,停车难”的现象还是屡见不鲜[1]。对此,针对停车场无人管理问题,学者做了大量研究。文献[2]提出了一种高效鲁棒的车牌识别方法,该方法利用背景发射检测车辆图像实现车辆检测,采用字符识别和模式匹配的方法对车牌进行定位,利用连通分量分析识别并提取轮廓,然后利用密度准则发出低密度区域,提取车牌,利用统计特征、滤波方法和形态学算子对车牌字符进行分割和提取,字符分割后,从每段图像中提取统计全局特征和局部模式进行分割分类,最后利用F-score 对特征进行排序,然后利用随机森林对每段图像进行37 类分类,该算法准确性和鲁棒性比较强,但其仅有车牌识别功能。文献[3]采用DSP 作为图像处理系统,数字信号处理方面性能优良,并且具有很好的图像处理功能,但是需要搭配硬件平台,兼容性较差。针对上述存在的问题,文中提出基于FPGA 的停车场巡视机器人设计,采用FPGA 芯片作为现场可编程逻辑门阵列,可重构性强,且片内有大量逻辑资源、乘法器和存储单元,适合并行处理大量数据[4],不仅能够提高车牌识别效率,同时能够搭载多传感器采集停车场环境信息,做到实时监管车辆[5]。
停车场巡视机器人通过FPGA 控制机器人行走并采集周围信息,根据环境光照强度判断是否需要打开矩阵灯板进行补光,对捕捉到的车牌图像进行预处理并对特征进行提取匹配,如果车牌信息无法与物业预留的数据库信息进行匹配,则向物业中心反馈实时GPS 定位以及车牌号,并显示在机器人搭载的LCD 显示屏上。
基于FPGA 的停车场巡视机器人系统主要包括两部分:硬件电路和软件部分。系统硬件电路主要包括AX7050 FPGA 开发平台、CMOS 摄像头、GPS 北斗模块、环境光传感器、红外接收器、超声波模块、四路循迹模块、LORA 扩频无线模块、LCD 显示屏、舵机云台以及机器人的底盘驱动电路与电机。硬件系统框图如图1 所示。
图1 硬件系统框图
停车场巡视机器人以赛灵思Spartan-7 系列的XC7S50 芯片为整个系统的处理和控制中心,以AX7050 板卡作为开发平台。硬件主要由FPGA、DDR3 和QSPI FLASH 构成,承担FPGA 高速数据处理和存储的功能,加上FPGA 和两片DDR3SDRAM之间的高速数据读写,数据位宽为32 位,整个系统的带宽高达10 Gb/s(333.3M×32 bit);另外DDR3 容量高达8 Gbit,满足车牌采集与处理过程中对高缓冲区的需求。此外硬件平台上还有一些常用的外围设备接口,如UART、HDMI、摄像头接口等。开发系统平台示意图如图2 所示。
图2 开发平台示意图
信息采集模块以OV5640 为主,AP3216C 器件及S1216F8-BD 模组为辅。OV5640 作为单芯片图像传感器,其感光阵列达到2 592×1 944(即500 W 像素),能实现最快90 fps(640×480)分辨率的图像采集。同时传感器采用OmniVision 推出的OmniBSI 技术,能提高灵敏度、降低串扰和噪声,为机器人在停车场采集图像提供硬件支持。AP3216C 作为一款整合型传感器连续采集环境光照强度和距离值。
巡视机器人采用车载机器人形态,机械结构主要包括摄像头转向舵机部件、机器人底盘麦克纳姆轮部件。麦克纳姆轮表面有轮毂,轮毂轴与转轴成45°角,其中轮毂向右倾斜为A 轮,向左为B 轮。当轮子正向旋转时,将产生一个45°方向的力,反转则形成镜像关系。四轮的机器人底盘,通过对A 轮和B轮的关系进行组合,可以获得24种安装方式,麦克纳姆轮的受力分析如图3 所示。
图3 麦克纳姆轮受力分析
巡视机器人的麦轮结构,主要以ABAB 的顺序进行安装[6]。这样安装的目的可以使得机器人在任意方向、角度上运动,并且最大程度的减少移动误差。每个麦克纳姆轮都需要一个独立的电机进行驱动,根据物理学正交分解可推出:01010101 代表车子前进;10101010 代表车子后退;01101001 代表车子左转;10010110 代表车子右转;01100110 原地向右旋转。
摄像头搭载在180°云台上,其转动主要由两个MG995 舵机进行控制,以20 ms 作为一个程序周期,该设计与结构使机器人视野更宽,更有利于后期的优化提升。
停车场巡视机器人,框架采用三层机械结构;GPS 模块、LORA 接收器、LCD 显示屏、舵机云台和摄像头固定在顶层上,方便查看识别车牌,并且利于信号接收和图像采集;AX7050 板卡、稳压器和各类传感器固定在中层;下层具有良好的空间能力放置电机驱动、锂电池和电源控制开关,可使机器人的三层空间利用率最大化[7]。并且整体机械结构为金属,结构稳定、承受力高,使得机器人可以稳定地行走。
该系统采用Verilog 语言编程,利用Robei EDA生成模块化代码,具有可视化以及可重构性强的特点。程序主要分为图像采集模块、LORA 无线通信模块、环境光探测模块、循迹与超声波模块、红外驱动模块、LCD 显示模块以及M×N维算法。
系统主要实现方式:首先对全国车牌字符进行图片采集,采集后的图片由HDIM 端口输入至FPGA内部进行特征训练,由集成逻辑分析器ILA 对特征训练信息进行抓取,生成特征库;然后摄像头采集外界信息数据,根据车牌位置信息对机器人底盘及舵机云台进行调整,当车牌信息正确进入边框后,对图像进行处理以及匹配,匹配结果通过无线扩频模块传输给物业中心,主流程如图4 所示。
图4 主流程
车牌识别流程程序设计,主要包括图像采集模块、图像预处理模块以及M×N维算法模块。
通过对I2C 进行驱动配置从而完成图像传感器的初始化,用First_In 模块将CMOS 图像传感器采集到的数据写入DDR3 中缓存,之后First_Out 模块将数据读出,数据在TTL 驱动模块的驱动下进入图像处理模块。YCbCr 转换算法将采集到的图像由RGB颜色空间转换到YCbCr 颜色空间,对Y分量进行中值滤波降噪,将降噪后图像利用Binarization 模块得到二值图像,经过图像切分后的二值化图像得到每个车牌字符的水平和垂直边界,再将边界信息送入特征识别模块(通过M×N维方式进行字符训练)进行特征匹配,最终识别到图像中的字符、车牌信息;并将识别结果通过串口通信发送给上位机,同时LCD 显示器显示白板和识别到的车牌号。算法流程如图5 所示。
图5 算法流程
由于机器人工作环境光线变化很大,为消除光照的影响,需将车牌图像由RGB颜色空间转换到YCbCr颜色空间。YCbCr 颜色空间亮度与色度分离,能有效排除光照因素的干扰,极大地降低噪声[8]。YCbCr颜色空间中包含了亮度信息Y,蓝色分量Cb,红色分量Cr,空间色彩信息Cb 和Cr[9]。RGB 与YCbCr 色彩空间转换公式如下:
车牌图像经过颜色空间转换后,采用中值滤波对图像进行增强处理,中值滤波去除噪声同时能很好地保持图像边缘锐度与图像细节[10]。
滤波后的车牌图像进行二值化处理,保留目标对象的主要轮廓,简化图像数据量[11]。经过二值化处理,车牌字符完全凸显出来,然后采用垂直和水平方向投影法将车牌上的字符分割成单个字符[12],为M×N维算法实现奠基。
字符的识别包括边界定位和特征的提取。首先对字的4 个边界进行定位如图6 所示;再将其分成一个M×N维矩阵,计算矩阵像素数除以总面积得到每一个小框黑元素的占比(大于50%记为1)来编码一个5×8 矩阵,如图7 所示;然后提取矩阵特征,最后进行特征库匹配识别字符。该算法能有效降低字符维数,为FPGA 实现字符识别提供可能。
图6 字符边界
图7 M×N维矩阵
停车场的环境错综复杂,要想获取正确的车牌信息以及精准定位,机器人需要获取停车场的光照强度系数、与车牌的距离、地上黑线走向以及GPS 定位[13]。FPGA 首先通过I2C 总线读取环境光传感器采集的环境光及距离数据,然后将读到的环境光照强度系数反馈给LED 模块,LED 模块根据光照系数对LED 灯板进行呼吸调节;车辆反射到PS 上的红外光强度越高,模数转换后得到的数据就越大,要想获得正确的车牌位置,机器人底盘的霍尔编码器通过接收到的距离值对机器人底盘进行PID 调整[14]。
PID 控制广泛应用在机械设备和电子设备控制中。PID 控制通过将实测值与给定值进行比较,从而计算出偏差量,来调节KP、KI、KD,使其误差变小,同时兼顾调节时间和超调量等系统动态参数。数字PID 包括位置PID 算法、速度PID 算法和增量式PID算法。该文采用增量型PID 算法对机器人进行控制可有效减少累计误差。增量型PID 是对位置型PID取增量,控制器输出相邻两次采样时刻所计算的位置值之差[15]。PID 控制输出是增量,控制量Δu(k)是近几次位置误差的增量,非实际位置的偏差,没有误差累加[16]。
其中KP、KI、KD分别为PID 调节器的比例、积分、微分的增益系数[17],e(k)是当前误差,e(k-1)是上次误差,e(k-2)是上上次误差。
机器人在选择自动模式工作时,需要利用循迹传感器进行路径矫正,该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,同时由信号输出接口输出数字信号。霍尔编码器模块对循迹信号以及测距值进行优先级处理,从而矫正机器人运动路径以及方向[18-19]。
将停车场等比例缩小,实验场地的环境光强度调节到29,按照全国34 种车牌汉字简称来生成34 块蓝底随机数字字母组合车牌作为识别对象。巡视机器人根据模拟停车场的路径对车牌进行定位与识别。
实验场地大小为8 m×15 m,24 个车牌模拟器均匀摆放于场地两侧,用以模拟测试合格车辆停放,8个未载入数据库的车牌模拟器错乱放在场地各个地点;机器人由场地正门出发,按照预留的路线,全自主行走于模拟场地,对车牌进行识别与反馈。采用该文自主研发的停车场巡视机器人进行车牌识别实验。
停车场环境错综复杂,环境光线强弱会影响摄像头对图像的采集与识别,在场景内进行50 次检测,发现靠近窗户的检测效果较为良好,中间以及角落都需要进行光照补偿,实验结果由表1 所示。
表1 实验数据对比
由表1 实验数据可知,停车场巡视机器人采用文中算法系统模拟停车场补光前正确识别车牌率为76.47%,其中8 次为角落光照,光线较弱,图像模块无法正确对车牌图像进行定位识别。与数据库对比成功率为100%,机器人信息91.18%上传到物业中心,其中3 次由于场景中有金属屏蔽物导致模块信号减弱无法反馈。载入补光模块后,该机器人正确识别车牌率为97.06%,与数据库对比成功率为100%,机器人信息94.11%上传到物业中心。实验结果表明,机器人通过该文改进的自动调整系统,对车牌的识别度得到了很大提高,达到了预期设计的效果,可实现移动巡视的停车场智能管理,对解决当前“停车乱,停车难”这一问题提供了切实可行的方案。
文中设计的停车场巡视机器人利用FPGA 搭载的控制处理系统,兼顾了实时性与可移动性,利用CMOS 摄像头采集图像信息,采用霍尔编码器通过接收到的距离值对机器人底盘与云台舵机进行PID调整。
巡视机器人应用多传感器融合,能够提高机器人的鲁棒性,应付各种突发环境干扰。为适应多变的环境,加入了光照补偿,提高了机器人的自适应性。
对车牌识别算法进行改进,提出了M×N维算法有效降低字符维数,提高了车牌识别精度与速度,并通过实验验证了该算法的有效性。