基于深度图像的无人车障碍探测与绕行算法

2019-10-22 06:03徐丙立邵小耀
兵器装备工程学报 2019年9期
关键词:障碍物灰度宽度

徐丙立,邵小耀,饶 毅

(陆军装甲兵学院 信息通信系, 北京 100072)

无人车是实施地面危险任务的重要支撑平台,近年来在消防、地震救援、无人探测、战场侦察等领域得到了不同程度的应用[1-8]。小型无人车以其轻便灵活、方便携带以及能够穿越狭缝并深入危险区域等特征,被应用到许多空间狭小的环境下工作。然而,小型无人车尺寸小,再加上周围环境的复杂遮挡作用,会使得其能观察到的区域非常有限,有时只能看到前方几米甚至更小的范围,因此研究并构建适合于小型无人车的近距离障碍探测与实时避障算法,是实现小型无人车智能化的重要基础。当前,基于超声波、激光、红外、视觉等方法,开展无人车目标探测以及路径规划研究已有很多[9-14]。这些方法在探测精度上具有明显的优势,但是其具有造价高、平台尺寸大、探测算法设计与实现难度高等缺点,因此不适用于低成本要求下的近场目标快速探测与识别。

Kinect是由微软研发的一款用于人机互动的交互感知设备,支持深度图像获取和语音探测,能够实现对视场内图像的信息提取,获取其中实体的位置信息与外观参数[15-20]。同时,Kinect价格低廉,二次开发简单明了,比较符合小型无人车对探测设备经济高效的基本需求。本研究利用Kinect作为探测设备,获取环境深度图像信息并设计障碍探测及外廓参数识别算法,以此构建障碍绕行算法,最后构建无人原型平台,并对算法进行验证与测试。

1 基于深度数据的障碍物探测方法

基于Kinect深度数据的障碍物探测主要经过深度数据的提取、目标识别、目标参数提取等3个关键步骤,具体流程如图1所示。

1.1 深度数据获取

深度数据提取是指利用Kinect的传感器,获取其视频流的每一帧(灰度图像)的过程。Kinect 利用其红外投影机发射红外激光,利用摄像头接收反射回来的红外激光,而后计算出空间三维信息,以灰度的形式表示各点距离摄像头平面的距离并形成灰度图。由于摄像头获取的是连续的动态视频流,因此需要对每一帧进行处理,也就是需要对其进行帧锁定。因数据流的动态性和帧锁定的匹配时差问题的存在,可能会导致数据帧的失效,因此锁定后的深度图像帧在处理前需要进行有效性判断。如果被锁定的帧数据无效,则需要重新选择帧并进行锁定处理,直至被有效锁定。被有效锁定的数据需要进行格式转换,转换成能够与目标识别匹配的格式。同时,对数据进行解锁并释放被锁定的当前帧,而后进入下一帧的循环。深度数据的获取具体流程见图1所示。

图1 基于Kinect深度数据的障碍物探测流程框图

1.2 障碍物目标识别

实现对障碍目标的识别主要需要两个步骤,即阈值分割和形态识别。阈值分割的目的在于突出障碍物目标像素,其主要利用目标与周围环境的灰度差别,根据图像点的灰度值分布状态,通过设置阈值将目标与环境分割开来。阈值分割的关键点在于确定阈值。在近场实时探测时,障碍物距离探测器的距离越近,其图像的深度灰度越深,而周围物体由于距离较远则图像灰度值较浅。经过测试发现,Kinect的深度图像灰度值通常有两个峰值,一个与背景相关,另外一个与目标相关。与背景相关的灰度峰值低于目标灰度峰值。因此,本研究将以两个峰值之间的最低值作为图像分割阈值T,对图像进行二值化。具体计算方法如式(1)所示。其中PixelVal(x,y)是指(x,y)点经过阈值化处理后的像素值,src(x,y)是指原始图像在(x,y)点处的原始值。式(1)中将大于阈值的像素点设置成黑色,小于阈值的点设置为白色。通过阈值分割能够把障碍物目标清晰显示出来,但是由于目标周围噪声数据的存在,使得在提取障碍物目标外形参数时存在一定误差,为此需要对目标外形进行识别,从而清晰地勾画出目标的外廓,这就是本研究中所用的形态识别。在形态识别的过程中,主要使用了膨胀和腐蚀两种方法[21]。以上处理流程及形成效果如图2所示。

(1)

图2 障碍物目标识别流程及效果

1.3 障碍物目标参数提取

对障碍物目标的外形尺寸(长、宽、高)参数进行了提取,是为后续的障碍物规避提供支撑。在提取目标参数之前,先采用像素点二值性对目标的外围轮廓线进行提取。在具体的算法上,采用轮廓近似方法,即压缩水平、垂直或斜的部分,只保留最后一个点。在完成对深度图像的轮廓提取后,利用外边矩形框选图形的轮廓。在框选的过程中,需要对矩形框进行平移、旋转、长/宽缩放等操作,使矩形框与目标轮廓重叠率(γ)最大。这里γ的值等于外廓与障碍物轮廓线重复像素点数量。当γ的值达到最大时,保存此时矩形框的长L、宽W、高H和旋转角度α,并将这些参数集合作为障碍物的目标的参数,障碍物目标选取矩形及其参数关系如图3所示。需要注意的是,由于无人车底盘具有一定高度且车轮之间具有一定距离,使得小型障碍物可以被直接跨过,因此需要设置矩形框的长、宽、高的阈值,以避免对小障碍物参数提取而导致的不必要的计算资源消耗。反之,当障碍物的下方通过高度高于无人车总高度时,障碍物目标作为可通过目标。障碍物目标参数提取所得到的效果如图4所示。

图3 障碍物目标选取矩形及其参数关系

图4 障碍物识别效果

2 基于相对位置的障碍物规避算法

2.1 算法原理与流程

本算法基于无人车和被探测到的障碍物之间的相对位置设计,其基本原理如图5所示,算法流程如图6所示。在已知目的地(P)的前提下,无人车沿着目标所在的方位直线(D,此研究将其称为引力线)前进,同时对环境进行实时探测。当探测到障碍物时,则计算能够躲避障碍物的临时目标点(P1和P2)。判断无人车分别与P1、P2之间连线R1、R2之间夹角的大小,选取夹角小的作为临时行进路线(图5中为R1)。当到达P1点之后,再次计算P1点与目标点P之间的方位关系,并作为下一步前进和实时探测的路线。如此循环,直到到达目的地P。

图5 无人车对障碍物规避原理

图6 无人车对障碍物规避算法流程框图

2.2 基于深度图像投影的障碍物选取算法

无人车在行进过程中,不断获取其前进方向上的环境信息,生存深度图像,并基于该深度图像识别其中是否存在障碍物。当发现存在障碍物时,则需要判断该障碍物是否会对其前进产生影响,本研究将其称为障碍物选取,即选取能够对其行进产生影响的障碍物进行行动解算。本算法可以用图7进行说明。AB是无人车的实际宽度,CD是被探测到障碍物在小车前进方向上的阻挡横截面,B′A′是无人车宽度投影到障碍物阻挡横界面上的宽度。将A′、B′、C、D统一到一个坐标轴上,通过有向线段关系计算,可以判断出C、D在A′、B′的同侧还是两侧。如果C、D在A′、B′的同一侧,则障碍物对无人车行进没有影响,此时无人车按远路线行进;如果C、D在A′、B′的任意一点的两侧,则障碍物对无人车行进产生影响,此时无人车需要调整方向行进。具体调整的方向计算算法在下一部分讲述。

图7 基于深度图像的障碍物选取算法示意图

本部分中,无人车宽度投影到障碍物阻挡横界面上的宽度由图8所示方法计算得到。无人车在深度图像中的投影宽度会随着其与前方障碍物距离大小而有所区别,因此当探测到多个处于不同距离的障碍物时,需要针对每一个障碍物分别计算无人车投影宽度。

图8 无人车在深度图像中的投影宽度计算方法

其中,H=f*h/D,h表示深度图像中无人车的投影宽度,f表示深度镜头焦距,H表示无人车实际宽度,D表示障碍物至深度镜头的距离。

2.3 无人车规避动作参数计算

当无人车发现前方有障碍物时,则需要及时调整运行方向,即向左或右旋转一定的角度,使障碍物对其前进不构成阻挡作用。为完成这一动作,则需要计算两个基本参数,即旋转角度和前进距离。本研究中前进距离利用速度计与运行时间直接积分得到,而无人车的旋转角度则相对复杂,下面对其详细说明。如图9所示,AB为无人车外廓宽,向正前方(OC)行进,O为AB的中点。DE为障碍物正面宽度,F为DE的中点。首先,判断O是在F的左边还是右边,确定无人车是向左旋转还是向右旋转。其中,因O在F的左边,所以无人车选择向左旋转θ角度,其计算算法如图9所示。

图9 无人车避障旋转角度计算算法

其中:

x0=CD=|CF-DE/2|

y0=OC

R=AB/2

θ=π/2-cos-1R/d-tan-1x0/y0

图9中,DE通过探测获取,CD则根据O点和F点的坐标计算得出。通过分析发现,根据CF和FD的大小,无人车旋转的角度计算算法稍有不同,但是可以用以下公式统一表达:

(2)

3 案例测试

3.1 无人车构建

研究构建了一个四轮无人车,并在室内设置了多障碍环境,用于测试无人车对障碍物探测和规避的算法可行性。

无人车有4个BTS7960电机驱动模块、一个CCF-M1单片机主控制板、4个直径180 mm的气胎、两个电源组成,能够最大承载30 kg左右的质量,如图10所示。无人车上搭载一台Kinect一代探测器以及一台笔记本电脑。无人车运行时,Kinect实时探测周围环境,并将探测的结果传递给笔记本电脑;笔记本电脑快速解算环境信息,并确定是否有障碍物存在以及障碍物的参数,然后求出无人车避障的旋转参量;无人车旋转参量通过串口输入到单片机中,以此驱动电机首先对车辆的运行控制,从而实现对障碍物的规避。

图10 四轮无人车基本组成原理及实物

3.2 算法测试

为测试障碍物探测以及规避算法的合理性,设置了如图11的障碍物环境。无人车与目的地相距12 m,之间放置7个障碍物(纸箱)。无人车先后通过T1至T8临时点,最终到达目标点。经过10次测试发现,无人车均顺利避开障碍物并到达目的地,有1次与障碍物发生轻微触碰。

图11 无人车目标探测与障碍物规避路径测试

4 结论

利用kinect感知探测设备,获取环境信息,研究基于深度数据的障碍物探测方法和基于相对位置的障碍物规避算法,构建了集成kinect的小型原型无人车,测试发现算法能够完成预期目标。这一研究成果,对室内小型无人平台环境探测、障碍判断、障碍规避等问题具有很好的借鉴意义,并能指导实际无人平台的构建。

猜你喜欢
障碍物灰度宽度
采用改进导重法的拓扑结构灰度单元过滤技术
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
高低翻越
Arduino小车巡线程序的灰度阈值优化方案
赶飞机
月亮为什么会有圆缺
孩子成长中,对宽度的追求更重要
你有“马屁股的宽度”吗?