高速公路视觉导航AGV路径识别技术研究
2021-11-06孙欣欣李珊红
孙欣欣,李珊红
(合肥学院 人工智能与大数据学院,安徽 合肥 230601)
0 引言
AGV(Automated Guided Vehicle,自动导引车)是指安装有电磁或光学等自动导引装置,能够沿规定的导引路径行驶,具有安全保护以及各种移载功能的运输车[1]。作为现代制造业柔性物流系统中的自动化物料运输工具,AGV 是实现柔性化、自动化、智能化生产车间和现代物流系统的物料运输关键设备,具有灵活性强、自动化程度高和稳定可靠等优点。
当前AGV已经被广泛应用于自动化生产、现代物流仓储运输等各个行业,其中大部分是室内应用场景,本文则针对高速公路应急车道上自动巡警AGV 的室外复杂应用场景进行研究,该AGV 的主要功能是白天在高速公路应急车道上自动巡逻,拍摄违章车辆信息。导航方式是自动巡警AGV 技术研究的核心,目前常见的AGV导航方式包括电磁导航、磁带导航、惯性导航和视觉导航等。本研究采用视觉导航方式实现AGV自动导引,主要因为视觉导航方式与其他导航方式相比有以下优势:1.不需要预先铺设导引车运行轨道,成本较低;2.对外界环境的适应性更强,可以应用于更为复杂的室外环境。
路径识别技术是AGV视觉导航的关键技术,路径识别的准确度和实时性直接影响了AGV 自动导引的控制精度。目前很多学者对路径识别技术进行了相关研究。喻俊等设计了一种基于曲率角估计的路径模型分类算法,提高了对于复杂曲线路径的测量精度[2];彭江涛等人设计实现了一种简易边缘检测算法,一定程度上提高了路径识别的准确度[3]。但以上研究都未考虑到室外复杂环境下路径图像的预处理效果以及车道线识别的精度。
本文针对高速公路上复杂室外环境,研究并实现了一套路径识别算法,通过畸变校正、图像灰度化、基于Sobel 算子边缘检测及颜色阈值化方法相结合的图像分割算法完成室外路径图像预处理,然后利用透视变换和移动窗口算法进行车道线拟合,获得前方路径信息,为自动巡警AGV的路径跟踪提供相关参数。该算法能够满足AGV 室外视觉导航的准确度和实时性要求。
1 自动巡警AGV系统设计
自动巡警AGV 以ARM 处理器为硬件平台,运行嵌入式Linux OS。整个系统在电源模块的支持下工作,首先由单目摄像头采集高速公路路径图像,送到ARM 处理器进行处理。图像经过路径识别程序的一系列处理之后,得到包括路径距离偏移量和角度偏移量的路径参数。接下来,将路径参数传入AGV的控制模块,控制模块基于传入参数进行计算,输出控制指令,驱动AGV 小车完成路径跟踪任务。系统总体设计框架如图1所示。
图1 系统总体设计
2 图像预处理
2.1 畸变校正
本系统中,单目摄像头安装在AGV的上方中心靠前位置,视野朝向正前方。摄像头的成像过程需要经过若干个坐标系的转换,空间中的某一点由世界坐标系经过一系列转换落到图像平面的图像像素坐标系,该转换过程由于摄像头本身的误差会导致图像发生畸变。因此,为提高摄像头工作的准确性,降低路径测量的系统误差,需要首先对单目摄像头进行标定,得到该摄像头的内参数矩阵、外参数矩阵和畸变系数。每一帧拍摄的路径图像都需要基于标定得到的参数进行畸变校正,以获得该图像所有像素点在真实世界中的空间坐标信息,提高图像处理的准确度。高速公路上道路原始图像和畸变校正之后的图像如图2所示。
图2 畸变校正前和畸变校正后的图像
2.2 图像灰度化
图像灰度化是指将摄像头拍到的彩色RGB 图像转化为灰度图像[4]。单目摄像头拍摄到的是24位RGB 彩色图像,如果直接基于该彩色图像进行图像处理,会占用大量的存储空间和计算资源,无法达到AGV对于实时性的要求。因此,在不丢失图像处理所需特征的基础上,可以通过图像灰度化将图像信息进行降维操作,以提高系统的运算速度。本文采用加权平均法对图像进行灰度化处理,计算公式为:
经过图像灰度化之后,后续进行图像处理的特征并未丢失,在满足需求的基础上大大提高了系统的运算速度。
2.3 图像分割
图像分割的目的,是把图像分割成目标区域和背景区域。在路径识别中,需要识别的目标区域是道路上的车道线,而车道线区域通常与周围道路背景区域有较明显的边界,在边界周围,图像的灰度值变化非常明显,因此,首先可以基于图像灰度梯度进行边缘检测,找到车道线边界[5]。本文采用So‐bel 算子完成车道线边缘检测,该算子在3*3 邻域上计算水平梯度和垂直梯度,公式为:
在图像上每一点,结合水平梯度和垂直梯度,求出其近似梯度公式为:
在高速路上,车道线有白色和黄色两种颜色,在将车道线边界检测到之后,可以结合颜色特征进行识别,将车道线区域标记出来。通过摄像头获取的图像是RGB 彩色图像,而在图像处理中,RGB 颜色空间并不能很好地反映物体的颜色信息,因此需要将图像从RGB空间转换为HLS空间,再进行颜色阈值化处理,将白色和黄色区域标记出来[6]。经过实验测试,HLS 图像的S分量在[230,255]之间时,车道线的白色和黄色区域的识别效果较好。
将边缘检测结果与颜色阈值化结果进行组合,对图像进行二值化处理,将目标区域设置为白色(灰度值为255),背景区域标记为黑色(灰度值为0)。经过边缘检测、基于HLS 空间的颜色阈值化、图像二值化处理之后,得到图像分割结果如图3所示。
图3 图像分割结果
3 车道线识别
经过图像预处理,可以在图像上将车道线区域标记出来,人眼可以基于该图片观察并判断车道线位置,但是计算机并不清楚哪些像素是车道线,哪些像素不是,所以需要进一步通过透视变换和移动窗口算法识别车道线,并计算前方路径相关参数。
3.1 透视变换
透视变换可以更直观地被叫做“空间变换”。通过摄像头拍摄到的图像,两条车道线会在远方交汇,而在实际三维空间中,两条车道线是平行的,因此在做车道线拟合之前,需要先通过透视变换将摄像头拍到的图像转换为垂直于道路平面的鸟瞰图。透视变换是基于4 个固定顶点的变换,即确定4 个顶点在变换前后的坐标值,就可以求出变换矩阵的所有参数,进而完成图像上所有像素点的空间变换[7]。在本研究中,摄像头视野朝向正前方,拍摄图像的下半部分是包含了车道线信息的,因此只选取图像下半部分进行透视变换,将图像上无用信息直接过滤掉。4 个固定点的选择如图3 中圆点标记位置所示,这4 个固定点分别对应透视变换之后图像矩形的4 个顶点位置。透视变换之后的图像如图4所示。
图4 透视变换之后的图像
3.2 道路曲线拟合
本文采用移动窗口算法识别图像中属于车道线的像素点,之后将这些像素点进行多项式拟合,得到车道线曲线的表达式,最终计算得到车道线与AGV的偏移距离和偏移角度。
移动窗口算法的原理如下:
(1)设置一个移动窗口
该窗口的宽度要比车道线宽度值大,具体取值可以根据摄像头安装高度进行调整,一般设置为车道线宽度值的4 倍到6 倍,高度设置为整张图片像素高度的1/10。
(2)确定左右两条车道线的大致位置
将图片中所有像素值沿纵轴累加,找到两个峰值区域,即为两条车道线在横轴上的大致位置。
(3)从图片底部开始确定两条车道线准确的起始位置
取图片底部1/10 高度的区域和在上一步确定的两个峰值区域的交汇区域,再次累加纵轴的像素值,找到峰值所在位置,确定车道线在底部准确的起始位置,如果在某个峰值区域没有找到车道线像素,则将上一步该峰值区域的横轴中心点作为该车道线的起始位置。
(4)自底向上滑动移动窗口找到所有车道线像素点
将上一步找到的图片底部车道线起始位置作为移动窗口的中心点,自底向上滑动该窗口,将窗口内所有像素值不为0 的点记录为车道线像素点,并计算窗口内不为0 的像素点数量,如果超过了一定阈值,就将这些点的中心位置作为下一个移动窗口的中心点,依此类推,找到车道线的所有像素点。
图5为经过移动窗口算法处理后得到的车道线所有像素点识别结果,其中白色区域为移动窗口的滑行轨迹,白色区域中间的黑色线条部分为识别到的车道线。
图5 车道线像素点识别结果
接下来利用openCV的多项式拟合方法得到两条车道线的曲线表达式,根据图片中心点到左右两侧车道线的距离确定AGV的偏移距离,根据左侧车道线曲线的切线斜率计算AGV的偏移角度。实验中计算得到的车道线偏移前方车道中心的距离是-0.2537m(偏左行驶),前方车道线倾斜角度是87.03°。
4 结论
本文针对高速公路上的复杂室外环境,研究并实现了一套路径识别算法,通过畸变校正、图像灰度化、基于Sobel 算子边缘检测及颜色阈值化方法相结合的图像分割算法,完成室外路径图像预处理,然后利用透视变换和移动窗口算法进行车道线像素点识别,通过车道线拟合计算得到AGV偏移距离和偏移角度,为自动巡警AGV的路径跟踪提供相关参数。实验结果表明该算法能够满足AGV 室外视觉导航的准确度和实时性要求。