陈泽鹏,李文湧,劳子健,陈 羽,李佼洋,王嘉辉,郑 民,2
(1.中山大学 物理学院,广东 广州 510275;2.湛江幼儿师范专科学校(岭南师范学院基础教育学院),广东 湛江 524084;3.中山大学 电子与信息工程学院,广东 广州 510275)
随着人工智能的普及,各行各业开始步入智能化发展[1]。近年来电子商务的蓬勃发展带动了物流行业,人们对物流配送速度的要求越来越高。自动导引运输车(automated guided vehicle,AGV)由于较高的自动化水平和可对货物实施智能运输的优点,已逐渐进入物流仓储行业。AGV 在仓储环节中,主要是替代人工进行繁杂的分拣,实现24 小时不间断工作。正因为AGV 在室内应用越来越广泛,科研人员对室内定位表现出极大兴趣。关于室内定位,主要涉及二维码[2]、射频识别(radio frequency identification,RFID)[3]、蓝牙[4]、可见光[5]、计算机视觉技术[6-7]等。二维码定位技术相对比较成熟,但是需要定点扫描,导致其无法充分利用空间,降低了仓库空间的利用率,同时易造成标签磨损。对于蓝牙和RFID 定位,其需要持续发射电磁信号,功耗较大,存在由信号干扰引起的定位漂移的情况。而可见光定位的短板则在于无法处理光遮挡问题,难以实际应用。尽管计算机视觉应用在定位技术上结构简单、硬件成本低廉,但研究起步较晚。2013 年HAN S B 等提出的基于标志物的粒子定位算法(label particle localization algorithm,LPLA),利用单目摄像头在1.6 m×2 m 范围内实现标准差为7.1 cm 的定位[8],但与其他技术相比,定位精度仍有差距。2017 年,YANG Guojun 等利用AR(augmented reality)标记物的旋转变形等信息实现单目视觉下精度为cm 级的粗定位[9]。2018 年,曹小华等利用棋盘格在进行标定的同时,通过平面投影实现误差在3%~5%的单目视觉的距离求解,且该工作未涉及角度测量[10]。现有单目视觉技术结构简单,虽然有望成为室内导航的主流技术,但是其定位精度仍有待提高。
因此,本文结合深度学习和计算机视觉,提出一种基于嵌入式GPU(graphics processing unit)的特征畸变单目视觉定位系统。该系统使用经特殊设计的圆环编码图案作为全局特征标签,其编码映射为自身坐标。通过目标检测算法识别和分割带畸变的特征圆环标签,利用特征标签的物像形变信息,输入至XGBoost 算法训练的机器学习回归模型,预测出相机相对特征标签的坐标,结合该特征标签的绝对坐标和目前相机的朝向,解算出相机的室内绝对坐标。
对于计算机视觉定位而言,视觉标签的设计十分重要。首先视觉标签必须能够准确反映自身的绝对位置信息,并不具备二义性;其次要便于通过计算机视觉方法从背景分割、识别[11]。根据以上两点要求,本文提出用一种黑白半圆环相间的圆作为定位的特征标签,如图1 所示。该类型特征标签以一定间隔平整地铺设在地面上,并且规定小车有4 个运动方向:前、后、左、右。
图1 圆环编码图案及解码示意图(方向“1234”指相机所处位置)Fig.1 Ring encoded pattern and schematic diagram of decoding (number 1 to 4 refers to position of camera)
相机采集图像后,利用深度学习目标检测模型识别图像中的特征标签,并返回离相机最近的标志物边界框,设置图像ROI(region of interest)[12]进行下一步处理。考虑到对于运动的小车,若要实现实时的目标检测,必须使用一种高效而精简的神经网络。因此目标检测模型采用YOLO(you only look once)网络模型[13],其优点是速度快,占用内存少,准确率高,非常适合在如嵌入式GPU 等算力不强的设备中使用。
在获取标志物的图像后,按其中心纵轴坐标y0以下若干个像素(本文取2 个像素)的位置读取像素灰度值,并丢弃背景像素,最后运用Otsu 法(即最大类间方差法)进行二值化。Otsu 法可以自适应地确定最佳阈值,有效区分背景和目标。Otsu法计算阈值的公式为
式中:t为灰度分割阈值;u为图像平均灰度值;u0(t)、u1(t)分别为t分割阈值下,背景的平均灰度值和目标物的平均灰度值;w0(t)、w1(t)分别为t分割阈值下背景占比和目标物占比。
如图2 所示,通过二值化后,横向读取的灰度信息将从0~255 的分布变为0 或255 的分布。定义灰度0 的像素读出值为0,灰度为255 的像素读出值为1,再将相邻读出值相同的数据合并,此时所读取的像素灰度值即转换为一串二进制码(如图2 所示读出值为010101010,其0 对应黑色的圆环,1 对应白色圆环),通过查表得到标志物的中心绝对坐标(xm,ym)及其朝向。该映射表按照标志物在室内的摆放位置人为规定,例如可以按表1 进行规定。
表1 码型与相机朝向映射表Table 1 Code type and camera orientation mapping
YOLO 神经网络是由美国华盛顿大学和脸书(Facebook)AI 研究所于2016 年提出的基于卷积神经网络的实时目标检测方法。顾名思义,该算法只需要通过神经网络进行一次前向传播来检测物体。这意味着整个图像中的预测是在单个算法运行中完成的。第三代YOLOv3 的表现十分惊人,在与其他算法精度相当的条件下,其检测速度比其他模型快3 倍到4 倍。出于实时性考虑,本文选择YOLOv3 神经网络作为圆环编码特征物识别以及将其从背景分割的工具。
考虑到地面铺设的圆环编码图案成像到相机感光芯片后,其物像呈现为椭圆形,该映射规律涉及到复杂的光路变换,而且与环境变量紧密相关,如相机高度、俯仰角、镜头参数等。由此可见,要从中推导出标志物形变与相机之间相对坐标的关系比较困难,且鲁棒性不高,因此,本文采用机器学习的方法,通过已知数据,利用机器学习算法训练出回归模型,从模型输入标志物的关键特征,模型将预测出相机对于标志物的相对坐标(xre,yre)。
由于标志物在图像中的形态为椭圆形,因此采用最小二乘法拟合椭圆的方法[14-15]来获取标志物物像的5 个特征量:标志物中心在图像坐标系中的坐标(x0,y0)、长轴长度a(单位为像素)、短轴长度b(单位为像素)、短轴与水平线夹角θ,如下式:
回归算法采用极限梯度提升算法(XGBoost)[16],其致力于突破提升树的计算极限,实现快速运算和高效性能。对比经典的GBDT(gradient boosting decision tree)算法,XGBoost 主要进行了如下主要改进:
1)对损失函数进行二阶泰勒展开,利用了一阶和二阶导数信息,从而减少优化过程中产生的误差,而GBDT 仅用到一阶导数信息;
2)损失函数添加正则化项,控制模型复杂度,防止过拟合;
3)支持并行运算。
XGBoost 可表示为加法模型,利用模型上一次迭代(由t-1 棵树组合而成的模型)的预测产生的残差,建立下一棵树(第t棵树):
添加的规则是在现有的t-1 棵树的基础上,使得目标函数最小。目标函数为
式中:l为损失函数;Ω为正则项,用于惩罚复杂模型;c为常数项。二阶泰勒展开为
利用XGBoost 分别对相对坐标xre、yre训练回归模型:
最后结合对特征标签解码所得的标签绝对坐标(xm,ym),即可求得相机室内绝对坐标(xab,yab):
相比文献[9]和[10]的AR 标志物和棋盘格标志物,圆环编码在完成相对坐标测量的同时,也能实现求解朝向(如表1 所述)的依据。
由于面向仓储的室内AGV 有不同的尺寸,大型的尺寸如小汽车,可以搭载如工业控制计算机作为处理终端;而小型室内AGV 只有30 cm~50 cm的边长,仅能搭载便携的嵌入式设备作为处理终端。所以,小型AGV 需要在嵌入式设备上运行深度学习YOLO 网络模型,同时需要实现快速运算,显然对设备的计算力要求比较高,普通的嵌入式开发板无法满足,因此该系统选用嵌入式GPU 硬件平台NVIDIA Jetson TX2[17],如图3 所示,其内部集成了256 个NVIDIA CUDA 核心和一个6 核64 位的ARMv8 处理器集群,拥有8 GB LPDDR4 128 位内存,非常适合运行深度学习网络,且容易部署在移动设备上。
图3 NVIDIA Jetson TX2+载板Fig.3 NVIDIA Jetson TX2 and its loading board
系统在开发过程中,YOLO 网络的训练以及代码的运行都先在电脑端上进行开发和测试。当代码可以正常运行后,再将整套算法移植至嵌入式设备GPU 中测试最终效果。嵌入式设备的参数见表2。
表2 嵌入式设备参数Table 2 Embedded device parameters
实验主机的软件环境与嵌入式设备保持一致,硬件参数见表3。
表3 实验用电脑参数Table 3 Experimental host parameters
该定位系统的完整运行流程框图如图4 所示。系统先调用相机采集定位场景,利用YOLO找出标志物,给出①标志物的朝向解码和它的世界坐标、②标志物的中心在图像坐标系中的坐标(x0,y0)、长轴长度a、短轴长度b、短轴与水平线夹角θ,并将这些参数输送XGBoost 模型,得到相机和标志物相对坐标。最后,将标志物世界坐标和相机与标志物相对坐标结合,便得到相机(即AGV)的世界坐标。
图4 系统框图Fig.4 Flow chart of system
实验场景设置如图5 所示。地板上铺设2 m×2 m的KT 板,颜色为浅灰色,在CMYK(cyan-magentayellow-black)色域表示为(C:0,M:0,Y:0,K:50-60)。在与KT 板底边相距15.0 cm 处平行放置光学导轨,光学导轨滑块上架设罗技M270 摄像机。
图5 系统搭设Fig.5 System construction
首先进行图像采集工作,在KT 板中线放置5 个不同圆环数的特征标签,相机每次以1 cm 的步长水平移动,每个位置采集一张图像。相机在光学导轨上从左端到右端共99 个位置。在所有水平位置都采集到图像后,全部标签整体下移5 cm,重复上述步骤继续拍摄。拍摄的同时,记录每个特征标签相对相机的坐标,标签以相机为原点,水平导轨为x轴,过相机点垂直于水平导轨为y轴。最后采集到有效图像共1266 张。
利用采集所得的图像,在电脑端上训练出YOLO 网络。每训练1000 个循环,模型生成一个权重文件,当损失收敛时停止训练。每一张图像视野内完整的特征标签包含的圆环数有多个(2~5 个),共从1266 张图像中提取出5483 组圆环编码图案椭圆拟合信息(x0,y0,a,b,θ),用于训练XGBoost 回归模型。训练完毕后,定位系统调用权重文件,对每一帧图像实时预测出相机的室内绝对坐标。系统运行效果图如图6 所示。
图6 系统运行效果图(position/cm:相机绝对坐标)Fig.6 Effect diagram of system operation (position/cm:absolute coordinates of camera)
系统各模块在实验主机和NVIDIA Jetson TX2平均运行时间如表4 所示。
表4 各模块平均运行时间Table 4 Average running time of each module ms
测试集误差情况如表5 所示。模型的平均误差在1.00 cm 以内,其中x方向的平均误差为0.31 cm,y方向平均误差为0.52 cm,坐标平均误差近似为0.55 cm。坐标x最大误差不超过2 cm,坐标y最大误差不超3 cm。对比LPLA[8]测量距离标准差7.1 cm 有明显提升。将测试集的x坐标和y坐标的绝对误差制作成绝对误差热度图分布,如图7 所示。由热度图可见,误差最大的数据点主要在最远端,这是因为远端的标志物物像较小,清晰度不够。出于实时性考虑(因为亚像素边沿提取需要使用矩进行卷积,所以耗时较大),本文未采用亚像素处理,所以该部分区域的圆环拟合出现比其他区域略大的偏差,从而影响了相机和特征标签之间的相对坐标预测。根据分析可知,摄像机清晰度和边沿精确提取是定位精度最大的两个因素,故未来随着处理终端(如电脑、嵌入式GPU)算力的提升,可以采用更高分辨率的摄像头和引入亚像素处理,以提高定位的准确性。
表5 测量误差Table 5 Measuring errors cm
图7 绝对误差热度分布图Fig.7 Heat distribution diagram of absolute errors
为克服单目视觉定位精度低的短板,本文提出一种可在嵌入式GPU 上运行,基于特征圆环标签畸变解算的轻量化单目视觉定位系统。该系统运用多个全局特征标签—带编码的圆环图案进行定位。实际工作中,利用单个通用相机拍摄地面上铺设的特征标签,并做图像识别和分析,根据标签的畸变预测出相机与特征标签之间的相对坐标,对标签所包含圆环进行解码,得到标签的室内绝对空间位置及相机朝向,进而计算出相机的室内绝对空间位置。1266 张图片的5483 组实验数据表明,在2 m×2 m 范围内,该定位系统的平均测量误差仅为0.55 cm,对比文献报道的LPLA 有明显提升。因此,只要合理铺设特征标签,利用该系统可实现AGV 在(如仓库等)室内场景中任意位置准确地定位,有望为AGV 实施货物自动分拣等工作提供辅助。