AGV“图像定位”自动导向的研究与探索
2019-05-14苏军伟
文/苏军伟
关键字:AGV、图像定位、自动导向、二维码
近年来,磁条卡导航技术、射频(RF)技术、光学识别、声音识别、视觉识别,以及条码识别技术等自导航识别及定位导向技术的成熟,提供了准确、高效的传感器数据输入手段,促进了无人驾驶、自导航AGV移动设备、无人化码头、工业自动化无人值守的快速发展。
在目前的导航技术中,磁条技术成本相对较高、灵活性差,光学识别数据格式有限,只能应用在特定行业;射频(RF)技术标签成本高且不能随意丢掉,声音和视觉识别成本高、技术不如二维码图像技术成熟,导致大规模应用构成瓶颈。相比之下,二维码图像定位导向具有成本低、易制作、构造简单、使用灵活、条码识别速度快、效率高(低于万分之一的出错率)、信息容量大、保密防伪性强等优点,在物流自动化输送AGV移动设备图像定位及方向导向中成为首选。
总体来看,当前国内主要AGV移动设备厂家导航识别采用外购二维码摄像头集成技术,或OEM欧美国外识别技术,对二维码图像定位自动导向技术研究较少,经常因为无法识别二维码,对导航中出现的错误无能为力,导致无法识别二维码,进而引起AGV系统崩溃。如何快速定位与纠错、自动调整方向,是整个AGV移动设备导航定位系统的核心。而如何对所采集图像进行预处理,恢复二维码图像信息、定位坐标、方向校准,成为AGV移动设备图像定位导向成功与否的关键。
一、本文图像定位自动导向特点
本文主要研究基于QR Code码的图像定位方法,该方法与其它图像定位自动导向相比有如下特点:
1.实时性强:传统AGV移动设备大多采用Data Matrix和PDF417编码的方式,识别速度低,识别角度小,导致时间延迟、实时性差,本文采用的QR二维码编码图像定位速度更快,具有明显优势。
2.定位精确度高:一般所采用的Data Matrix和PDF417编码,其定位探测图形码不如QR Code码明显,因此一旦出现破损和损坏,将不易识别,导致定位不准确。
3.双内存高速DMA数据传输:由于高速CCD采集图像数据信息量较大,采用双内存DMA方式传输,一个内存读取,一个内存存储,轮流交替,快速瞬间完成,大幅减少图像采集时间。相比之下,单内存方式的数据采完后,则存储时间长,并会出现溢出问题。
4.嵌入式ARM+高速CCD多任务处理:采用多任务处理方式,不仅节约时间,图像采集、识别与MCU双轮驱动、信号传输与控制等并行运行;提高整个系统效率。
5.图像预处理技术:运用图像校正、二值化、去噪、边缘检测、Hough变换、图像旋转等多种图像处理方法,可实现条码图像的处理。
6.快速定位、自动导向:在瞬间处理完一帧图像后与标准图像进行对比,迅速计算出误差角度,驱动电机纠正偏差,快速定位及方向导向。
二、图像定位自动导向常用二维码比较
QR Code、Data Matrix和PDF417 是目前图像定位自动导向应用比较广的三种条码,将其识别效率进行比较,如表1。
从表1中可以看出,根据各种二维码标准的编码技术,译码后的QR码具有更广的应用价值与空间,其优点包括:
1.采用CCD摄像机二维码识别设备,QR码每秒识别30个含有100个字符的符号信息,具有超高速识别特性,是工业自动化及图像导航定位优先考虑的选项。
2.通过特征符号对其3个角上的位置探测图形进行360度识别,可避免背景干扰和负面影响。
3.能够有效表示汉字及图形,信息容量大,比其它二维码效率提高20%。
关于QR码识别技术研究,对于图像定位及自动方向导向的探索具有重要意义。面对图像采集中的定位误差、条码受损,以及复杂背景等情况,QR码能够准确、高速地识别条码信息、条码定位、条码分割、数据提取和方向纠错等,并且对于延长条码使用寿命、减少移动设备维护、提高系统的稳定性,显得尤为重要。
三、QR码的编码数据结构
QR码的编码数据图形格式符号(主要包括功能图形和编码区格式),如图1。
1.位置探测图形、位置探测图形分隔符:对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;这些黑白间隔的矩形块很容易进行图像处理地检测,用于对二维码的定位。
2.校正图形:根据尺寸不同,矫正图形的个数也不同。矫正图形主要用于QR码形状的矫正,尤其是当QR码印刷在不平坦的面上,或者拍照时发生畸变等情况。
3.定位图形:主要定义了网格,这些黑白相间的小格子就如同坐标轴。
4.格式信息:表示该二维码的纠错级别,分为Q、H 、L、M。
5.数据区域:使用黑白的二进制网格编码内容;8 个格子可以编码一个字节。
6.版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21x21(版本1),到177x177(版本40),每一版本符号相较前一版本,每边增加4个模块。
图1:QR码的编码数据图形格式符号
图2:
图3:
7.纠错码字:用于修正二维码损坏带来的错误。
四、图像定位自动导向的图像预处理及定位导向
1.硬件组成
图像定位自动导向的图像采集设备MCU,采用ARM Cortex™-M4内核为核心处理器, 具有图形专用Chrom-ARTAccelerator™:图形加速器(像素格式的矩形填充,矩形复制的变换和混合)和SDRAM存储器接口,摄像头接口,主频高达180MHz,高速CCD摄像头采用一款1/4英寸500万像素的高性能图像传感器,支持DVP和MIPI接口,以及5寸TFT带触摸液晶屏。
2.高速CCD摄像机图像采集及MCU处理过程
首先将轨迹和位置坐标信息存储在二维码中,然后图像定位自动导向系统通过对视觉QR码的图像获取、摄像机位置标定、特征提取和深度恢复等图像预处理过程,提取存储该二维码正对地面的坐标信息,以及对方向导向纠偏等,实现辅助定位和轨迹跟踪。
图4:
图5:
表1:三种条码的识别效率比较
图像定位自动导向在通过自身高分辨率、长焦摄像头对二维码进行读取和识别时,也在同步处理二维码图像在坐标中的位置,与陀螺仪电子罗盘数据进行融合,确定AGV移动设备的精确朝向。综合二维码编码的信息和其在图像中的位置信息,可以对AGV移动设备进行完整的定位自动导向。
摄像头CCD图像采集及处理:主要完成对图像预处理、导向纠错及定位,提取出正确的完整坐标信息,为整个导航定位、调度系统提供重要数据支持;其处理过程包括:图像采集、图像识预处理及识别、图像是否旋转等,如图2所示。
⑴ 图像采集:首先是初始化系统时钟、外围设备硬件等,然后初始化DCMI,配置DMA双缓冲模、DCMI采集的图像数据。我们配置为自动连续对焦模式,并根据LCD分辨率设置输出图像尺寸为240×240或480×480(根据需要进行自动设置)。因为DMA双缓冲模式需要两个buf(缓冲区)轮流接收数据,申请dcmi_buf[0]、[1]内存来接收图像的行数据。
另外,我们还申请了data_buf内存,用于存放一帧RGB565图像数据,DMA传输完成一行图像数据则中断,先判断当前DMA传输使用的是buf0,还是buf1。如果是buf0,说明buf1已满,则读取buf1的数据,并复制给ata_buf。当DMA传输完成一帧图像数据,则通知MCU进行图像预处理。
图像采集后,得到几幅图像,如图3。
⑵图像预处理及识别:采集到的图像,由于条形码存在畸变、污染、光亮不均、对焦模糊、有一定的旋转角度等(如图3),在定位条码前,需要对图像进行预处理。通过减少或消除光学或电子缺陷,如固定图案噪声、拖尾、浮散等,来提高图像质量,得到清晰稳定的白底黑色图像。具体实现如下:
首先,图像二值化。由于采集到的图形有深色模块和浅色模块,深色模块代表数字“1”,浅色模块代表数字“0”,需要将采集到的24位BMP位图转化为8位位图,采用全局阈值和局部阈值选取相结合,逐步选取合适的阈值,把条码图像二值化,根据AGV移动设备应用场景二值化为白底黑色条码。使用二维多项式将一幅图像或部分拟合成一个二维表面,基本过程分为三步: 拟合亮度函数最小均方误差、形成背景拟合曲面、图像的二值化处理。
①拟合亮度函数最小均方误差
假设 I是某幅待处理的图像, 我们用(xi,yi)表示图像 I的坐标,zi为相应坐标点的亮度值, 则均方误差 MSE为:
②形成背景拟合曲面
从而,每一个数据点的误差的列向量可以表示为:
将方程(3)代入方程(4),并对A中的元素进行微分,令导数为零:
方程(5)即为使均方差极小的系数向量;代入方程(2),得到背景拟合曲面。
③图像二值化处理
取背景拟合曲面与原始图像的差值与一个浮动量相比,将图像转化为二值化图像。
二值化后的图像,如图4。
可以看出,图4(a)图像处理后,模块被细化,数据有可能丢失;图4(b)因为下方图像存在大的黑斑,效果差;图4(b-1)采用多项式曲面拟合技术实现效果比较好,但出现了条码内部误码;图4(c)和图4(d )二值化图像处理比较合适。
其次,噪声去除。利用Hough变换检测条码边界,可以有效去除面积较小的点噪声和细长的线形噪声。分两步实施,如下:
A.边界点扫描:为了提高效率,采取先定位位置探测条码符号大致位置,再扫描条码边界,通过水平向左、水平向右、垂直向上、垂直向下四个方向的图像扫描,当遇到深色模块时记录“1”,浅色模块时记录“0”,深色像素点不完全在最外边界上,但最外边界像素占多数,这样仍可以通过Hough变换得到需要的边缘直线。
B.求解边界直线:利用坐标变换来检测平面内的直线或规律曲线,在上一步中得到四个边界的边缘点,通过Hough变换将离散点组装成边缘直线,然后再通过四条直线的方程求出条码符号的四个边界点。
采用Hough变换时, 考虑一个点( xi,yi)和所有通过该点的线。通过点(xi,yi)的直线有无数条,对于某些a值和b值来说,这些直接满足直线方程:
进行Hough变换时, 使用直接的极坐标方程:
图6:
图7:
图8:
图9:
图5(a )说明了参数ρ和θ的关系,对于水平线来说θ=0°,ρ 等于正的x截距;同理,对于垂直线,θ=90°,ρ等于正的y截距,或θ=-90°,ρ等于负的y截距;图5 (b)的每一条正弦曲线表示通过特定点( xi,yi)的一族直线,交点(ρ,θ)对应于通过( xi,yi)和( xj,yj)的直线。
Hough变换把ρθ参数空间细分为累加器单元,如图5(c)示 。其中(ρmin,ρmax)和(θmin,θmax)是参数值的期望范围,值的最大范围是(-90°≤θ≤90°)和(-D≤ρ≤D ),其中D是图像对角线的距离,坐标 (i,j )处的单元累加器的值为A(i,j)对应于与参数空间坐标(ρ,θ)相关的的方形,初始状态其值为零,然后对于图像平面上的每一个非背景点( xk,yk),令θ等于θ轴上允许的细分值,并通过公式ρ=xk*cosθ+yk*sinθ求出相应的ρ值,将得到的ρ值,并四舍五入为最接近的ρ轴上的允许单元值。相应的累加器单元然后增加,A (i,j )意味着xy平面上Q个点位于线ρi= x*cosθj+ y*sinθj上 ,在这个过程的最后,ρθ平面上的细分数决定了这些点共线的精度。
Hough变换第一步是峰值检测,其峰值位于Hough变换单元,找到最大阈值的变换单元,并记下其位置。
第二步是将识别出来的一组峰值,确定是否存在相关的线段以及起始和结束位置,最后连成一条直线。
第三步,重复以上两步,对四个方向的扫描到的边缘点进行变换,连接成条码符号的四条边缘直线。
⑶图像角度导向方向纠正:由于摄像头受多种因素影响,采集到的图形都会倾斜,首先要将二维码摆放成标准位置,利用QR码图像在左上角、左下角和右上角各有一个位置探测图形,每个位置探测图形可以看作是由3个重叠且同心的正方形组成,它们分别为7×7个深色模块、5×5个浅色模块和3×3个深色模块。寻像图形如图6所示,其图形特征是黑白条比例为:黑∶白∶黑∶白∶黑=1∶1∶3∶1∶1。
由于QR二维码图像有特殊的比例,同时在掩膜作用下,其它图形不可能出现这样比例的图形,所以可通过寻找三个图形定位码的图形中心坐标,来确定条码是否需要旋转以及旋转角度。将不标准的图形,旋转至标准位置,来纠正AGV移动设备的运行导向方向。图像旋转算法与实现算法,如图7。采用CORDIC算法,执行一个平面整体旋转,就是从一个向量转换到另一个向量,实现二维码图像的旋转。
向量(Xi,Yi)的平面旋转用矩阵表示为:
旋转角度可以通过迭代运算分为多步执行,每一步完成旋转的一部分,单步表述为:
式(2)提取COS后变成:
式(3)相比于式(2)的4次相乘只需要3次,另外乘法可以通过选择如TANGEN表示为2的次方的角度来消除乘法运算。2的次方的乘法或者除法运算,可以用简单的移位来实现。
每一步的角度表示为
采用CORDIC算法旋转公式可以看出,应用CORDIC算法是由一系列加法操作和简单的移位组成的。每次旋转都使累加的旋转角度之和与目标旋转角更接近,这实际上是一种逐次逼近的坐标旋转方法,迭代次数n越大,旋转的角度就与真实的角度越接近。在实际应用中,不可能迭代很多次,由于受硬件资源限制。实际上,对于n次迭代,CORDIC算法的旋转精度为arctan2-(n-1)。当n=8时,旋转精度可达0.4476°,满足实际应用的需要。示意图,如图8。
3.图像定位自动导向信息输出
QR码解码识别通过快速定位于符号三个角上的位置探测图形,确定符号单元模块数及旋转角度,通过检测定位图形及校正图形位置,确定数据采样网络及偏置角度;AGV移动设备得到旋转角度信息,换算成对应的XY轴坐标,不断根据得到的图像信息,MCU驱动左右轮电机,调整位置,直至达到AGV移动设备控制方向的误差方位内,达到图像定位自动导向的目的。控制系统间隔扫描5ms,周期性采集一次AGV的绝对坐标,即可获得AGV在轨道上任何时刻的绝对位置。位置测量的精度大约在1mm,对相邻两次采集的绝对位置进行差分计算该时间段的AGV的差分速度,速度的测量精度跟采样频率有关,调整采样周期,速度测量误差可控制在30mm/s以内;其操作过程示意图,如图9。
五、结束语
本图像定位自动导向方法已在电商自动仓库中获得验证,具有良好的实用价值和应用前景,可推广到堆垛机器人等的货物定位、餐厅送餐机器人的快速定位导向、自动化商店内商品的定位存取等领域,从而将货物商品快速地摆放到指定位置;与传统的图像定位自动导向方法相比,具有反应速度快、定位精确等优点。
图像定位自动导向确定设备在导航地图的坐标信息,是设备定点输送的关键环节,由于通过高速摄像机CCD采集二维码图像信息,所获得的关键数据有限,需要结合陀螺仪、避障传感器及导航调度软件等确定设备与其它设备的相对位置,及时控制设备移动车速、方向等避免相撞与干扰,需要根据系统综合考虑。