光流结合特征提取的室内机器人避障技术研究*

2024-04-12 00:29:32曹梦龙石梦鸽
组合机床与自动化加工技术 2024年3期
关键词:光流角点视场

曹梦龙,石梦鸽

(青岛科技大学自动化与电子工程学院,青岛 266042)

0 引言

避障是移动机器人导航及自主作业至关重要的关键技术之一[1-2],近年来已取得突飞猛进的发展,基于视觉的光流避障[3]研究应用也逐渐增多。LK光流法[4-5]是典型的稀疏光流,通过追踪特征点,实现视场中的障碍物检测,且与稠密方法相比,该方法对图像噪声不敏感且时间成本低。针对相机运动较快,光流假设难以成立问题,余功兴等[6]基于金字塔LK光流跟踪算法建立鲁棒的关键点匹配关系,但在实验过程中,算法追踪的鲁棒性不及预期结果。基于特征点的LK光流算法,对特征点要求高,需要特征点具备较好的跟踪性能[7]。GUO等[8]结合金字塔LK光流和Shi-Tomasi特征提取设计的特征跟踪器,只计算强角点处的光流场,可有效检测出目标,权衡效率和精度的矛盾问题。在相机运动产生动态背景的情况下难以有效检测出运动目标,李成美等[9]使用金字塔LK光流法追踪Shi-Tomasi角点,采用卡尔曼滤波平滑运动矢量,加入仿射变换对当前图像进行运动补偿,有效提高了制导武器的精确性。在视场中完成障碍物检测后,需采取合适的碰撞机制才能实现障碍物规避,平衡策略[10]是利用光流场实现避障最简单直接的方式,但存在左右光流相似时避障失效问题。于乃功等[11]使用光流散度计算碰撞时间(time-to-collision,TTC),利用TTC构建障碍地图,提高算法的计算精度和鲁棒性,但构建障碍地图需耗费较多时间。CHANG等[12]利用TTC和光流平衡策略引导无人机在无碰路径上飞行,其中无人机可飞行的自由空间由TTC估计,光流平衡策略计算出转向角度。虽然结合TTC和光流平衡策略实现避障的应用逐渐成熟,但该技术目前以无人机应用作为主流。

针对上述问题,本文提出一种光流结合特征提取的室内移动机器人视觉避障方法。将LK光流与多尺度思想结合,建立图像金字塔,解决相机快速运动导致相邻图像差异明显问题。为纠正图像畸变,在图像金字塔中加入仿射变换,提高算法追踪角点的噪声鲁棒性,进而准确检测视场中的障碍物。针对光流平衡策略避障失效问题,本文将机器人视场重新划分区域,制定出TTC结合光流平衡策略的碰撞机制,使机器人准确规避正向障碍物,引导机器人在无碰路径上移动。

1 光流结合特征提取

移动机器人避障需具备实时性。由于光流追踪特征点的时间要小于特征提取中描述子的计算与匹配,因此本文使用光流法代替描述子的计算与匹配,从而提高移动机器人避障的实时性。Shi-Tomasi为不受噪声干燥的强角点,是目前常用的特征提取方法之一。LK光流作为稀疏光流,通常用于追踪特征点来计算光流,较稠密光流计算时间相对较短。本文将Shi-Tomasi与金字塔LK光流结合,并针对相机快速运动时易产生图像畸变问题,在光流法中加入仿射变换,从而提高算法的追踪成功率。

1.1 特征提取

将局部窗口ω(x,y)的图像灰度I(x,y)向各个方向移动(u,v)后,得到图像灰度I(x+u,y+v),所有灰度差异总和为:

(1)

I(x+u,y+v)进行Taylor展开:

E(u,v)=[uv]M[uv]T

(2)

(3)

式中:M对应式(10)中的G,Ix和Iy是沿x和y方向的导数,M的特征值为λ1和λ2,若矩阵M的较小特征值大于阈值,则为所要提取的角点:

R=min{λ1,λ2}

(4)

通过式(3)能够保留局部最大的像素,即图像的强角点。特征提取作为低层次的图像处理,为进一步实现运动相机下的光流追踪提供了重要信息。

1.2 金字塔LK光流法

相机快速运动会导致连续两帧图像差异较明显,打破了光流第二条假设,即连续的小运动,求解时易达到一个局部极小值。光流法与多尺度思想结合对图像进行分层处理[13],能将一个较大的像素位移分解为多个较小的残余光流位移进行计算,提高算法的准确性。根据光流假设可以得到灰度值为I(x,y,t)的像素点(x,y,t)在两个图像帧之间移动的光流基本方程。LK光流法引入空间一致假设,考虑大小为ω×ω的窗口,得到ω2个光流约束方程:

(5)

式中:Ix、Iy为空间梯度,It为时间梯度,u、v分别为待求解的光流水平和垂直矢量。

如图1所示,金字塔LK光流法能够实现精确追踪,用一个[1/16 1/4 3/8 1/4 1/16]的低通滤波器建立第L-1层图像到第L层图像的金字塔,得到的L层图像大小是L-1层图像的两倍,其中最终层为原始图像。

图1 图像金字塔和光流由粗至精的过程

光流追踪时,首先在最上层中计算出光流,上一层的结果将作为下一层光流的初始值,直至迭代到最终层作为最后结果。从最上层开始,通过最小化每个ω2窗口的匹配误差和,得到每层图像中各个点的光流值,式(6)为第L层的代价函数。

(6)

(7)

(8)

两张图像差为:

δI(x,y)≐A(x,y)-B(x,y)

(9)

综合式(7)~式(9),得到G。

(10)

(11)

迭代到一定次数或者光流误差小于一个设定阈值后,得到最终得光流d。相机快速运动会不可避免地出现图像变形问题,需加入图像纠正畸变操作,提高光流算法的追踪性能。

1.3 改进金字塔LK光流法

针对相机快速运动导致的图像畸变问题,在加入仿射变换后[14],一个矩形窗口的点从图像I变换到图像J,变成一个平行四边形,进一步提高算法精度,本文采用六参数仿射变换,一般形式为:

(12)

式中:a0、a1、a2、b0、b1、b2表示仿射变形参数。利用光流法得到至少3个特征点对即可计算出仿射变形参数,进而对整张图片做仿射变换,纠正图像畸变问题。

1.4 运动相机下的光流追踪

运动相机下,光流结合特征提取的处理流程具体表述为:

(1)对第t帧图像进行Shi-Tomasi角点检测,提取图像的强角点;

(2)利用提取出的角点做金字塔LK光流计算,预测这些角点在t+1帧的位置,得到多组相互匹配的特征点对;

(3)计算仿射变换参数纠正图像变形;

(4)计算出两帧图像间的光流场。

2 碰撞机制

视觉避障成本较低,但硬件条件过于薄弱,因此需提高检测障碍物算法的精度并制定有效的碰撞机制来规避正向障碍物[15],其中碰撞机制通过机器人与障碍物的距离来制定。光流平衡策略将机器人视场等分为左右区域,由于左右光流数目相等或相差不大而无法有效规避视场中央的障碍物,因此本文将机器人视场等分为图2a所示的左中右区域,并结合TTC来制定碰撞机制,解决光流平衡策略正向避障的缺陷。

(a) 机器人视场 (b) 扩散焦点

2.1 计算光流场信息

如图2b所示,逼近机器人的障碍物纹理会有向视野外扩张的倾向,反映到光流即是明显扩散的向量,图像运动处处都是远离平移向量对应的奇点,这个点被称为扩散焦点(focus of expansion,FOE)。

可通过FOE建立更可靠的无标度深度图,然而在计算上较为复杂,需对FOE位置进行估计,并计算每个像素点的碰撞时间(TTC)。考虑噪声影响FOE坐标(cx,cy)的准确计算,因此求取所有特征点流向量的最小二乘解,得到较为精确的FOE坐标值:

(cx,cy)T=(ATA)-1ATb=

(13)

根据每个像素点pi=(x,y)的光流矢量(u,v)得到ai0=v,ai1=u,bi=xv-yu。精确估计接近障碍物的TTC对于移动机器人避障至关重要,图3假设相机方向与机器人运动方向一致,根据几何关系和FOE坐标值计算pi的TTC值,如式(14)所示。

(14)

图3 摄像机移动过程

机器人直行检测障碍物,依据TTC和光流平衡策略选择碰撞机制来规避障碍物。

2.2 基于行为的碰撞机制

避障指机器人通过快速合理地改变前进方向,安全绕过障碍物。旋转过程中产生的流动散度会对FOE和TTC产生不利影响。本研究假设速度为零,不计算旋转过程中的光流。为保证算法的稳定性和鲁棒性,根据障碍物的分布情况,本文提出一种基于行为的碰撞机制,结合TTC和光流平衡策略引导机器人实现在无碰路径上移动,碰撞机制如图4所示,机器人的避障行为如下:

图4 改进碰撞机制流程图

(1)一般避障行为。障碍物在机器人两侧或在其面前占据较小区域时,机器人视场中间区域碰撞时间的平均值(CTTCave)高于阈值,按照光流平衡策略的航向决策算法,计算出偏航角,控制机器人旋转相应角度,从而顺利躲避障碍物。

(15)

式中:rot为机器人视场左右两侧的偏航角度,正为右偏,负为左偏;angle为最大旋转角度,LS和RS分别为左、右侧视场的光流量。

(2)紧急避障行为。当障碍物在机器人面前占据比较大的空间,可转向区域过小或机器人即将碰到障碍物时,此时CTTCave低于某一阈值,机器人停止前进,向右转动90°,重新进行采集数据,计算偏航角,选择避障行为。

本文碰撞机制直行检测视场中障碍物的风险程度,并将视场等分成左中右3部分。若CTTCave低于设定值时需要紧急避障;若CTTCave高于设定值,则视为一般避障行为。

3 仿真验证

3.1 实验条件

实现上述算法的实验所用硬件平台为Intel(R) Core(TM) i5-7200U和8 GB RAM,软件平台Ubuntu20.04,内存60 GB,CPU 2 GHz,运行环境为Opencv3.4.13。实验操作平台为Ubuntu20.04,内存50 GB,CPU 2 GHz的ROS服务机器人,其中机器人相机采集到的图像分辨率为512×424,光流追踪参数如表1所示。

表1 光流追踪参数设置

3.2 实验过程

实验对室内数据集中的图像帧进行光流追踪效果对比,验证光流追踪角点的准确性,在上述方法计算出的光流场中求得TTC,并在机器人操作平台上对本文提出的碰撞机制进行验证。

在相机快速运动的情况下,为验证算法的准确追踪优势,图5对比3种算法在两帧图像间的光流追踪,其中第6~第10帧为两帧图像差异明显的追踪,第9~第10帧为连续小运动追踪。表2记录3种算法追踪时,删除跟丢角点后的对比信息。

表2 3种算法追踪效果对比

(a) 第6帧角点 (b) 第9帧角点

对比3种光流算法追踪角点的效果及数据,加入仿射变换的金字塔LK光流追踪的成功率较高且效果明显要好,其中第9~10帧的追踪成功率较LK和金字塔LK分别提高13.02%、3.8%,第6~10帧的追踪成功率分别提高27.94%、6.21%,追踪时间与金字塔LK相近,可有效平衡效率与精度矛盾问题。

为验证本文碰撞机制规避障碍物的准确性,实验将其与光流平衡策略进行对比分析。CTTCave阈值设置为4 s,angle设置为8°,光流平衡策略左右两侧力阈值设置为0.5。图6为将两种策略应用到机器人靠近视场中央障碍物的场景,该过程共10帧,帧数与左右光流和特征点数目的关系如图7所示。

(a) 光流平衡策略第1帧 (b) 光流平衡策略第10帧

(a) 光流平衡策略左右视场 (b) 本文碰撞机制左右视场

正向障碍物位置在视场中央时,两种碰撞机制的左右光流数目相差不大。利用光流数目求得光流平衡策略左右两侧的力均低于阈值0.5,因此机器人保持直行。图8为机器人视场中央障碍物规避效果对比,表3记录本文碰撞机制中CTTCave和偏航角随帧数的变化。

表3 本文碰撞机制中CTTCave和偏航角随帧数变化

对比两种策略规避视场中央障碍物的效果,光流平衡策略因左右光流数目相近,导致避障失效,而本文碰撞机制在第10帧时视场中央的CTTCave值低于设定的阈值4 s,需要采取紧急避障行为,向右旋转90°,有效避开了视场中央的障碍物。

机器人正向避障时,视场中央的障碍物作为规避的首要对象,同时左右两侧的障碍物也不容忽视。图9为本文碰撞机制对视场左右两侧障碍物的规避情况,图10为视场光流和特征点数目与帧数的关系,表4记录视场两侧障碍物的偏航角随帧数的变化。

表4 两侧障碍物偏航角变化

(a) 左侧障碍物 (b) 行驶路线图

(a) 光流平衡策略左右视场 (b) 本文碰撞机制左右视场

从左右两侧障碍物的规避效果来看,本文提出的碰撞机制中,第1~10帧的CTTCave均高于4 s,因此可视为一般避障行为,通过平衡左右光流数目计算出偏航角,有效规避置于视场左右两侧的障碍物,验证了本文碰撞机制解决机器人正向避障问题的完整性。

3.3 结果分析

对本文改进算法及碰撞机制进行对比试验,验证了在运动相机下进行障碍物检测时,加入仿射变换的金字塔LK光流结合特征提取算法具有准确追踪的优势;得到光流场信息后,结合TTC和光流平衡策略引导机器人在无碰路径上移动,在机器人操作平台上验证了本文针对正向障碍物所提出的碰撞机制具备可行性。

4 结论

针对室内机器人正向避障问题,本文在没有先验环境信息且不建立地图的情况下,提出一种基于机器视觉的避障方法,利用运动相机提取角点,使用加入仿射变换的光流追踪图像间的角点,实现障碍物检测。利用光流场信息,提出一种结合TTC与光流平衡策略的碰撞机制,并将其与光流平衡策略的碰撞机制进行对比试验,该方法能够有效解决光流平衡策略存在的避障缺点,实现移动机器人正向准确避障。此方法还有待改善,例如光流场的计算要受到光照噪声、纹理等环境因素的影响,在光流场中计算TTC限制了机器人的运动方式,以及如何提高此算法在避障过程中的实时性和对真实环境噪声抑制的鲁棒性。

猜你喜欢
光流角点视场
利用掩膜和单应矩阵提高LK光流追踪效果
星模拟器光学系统视场拼接方法的研究
中国光学(2021年6期)2021-11-25 07:48:32
医用内窥镜矩形视场下入瞳视场角的测试方法研究
基于物理学的改善粒子图像测速稳健光流方法研究
基于FAST角点检测算法上对Y型与X型角点的检测
基于边缘的角点分类和描述算法
电子科技(2016年12期)2016-12-26 02:25:49
基于圆环模板的改进Harris角点检测算法
轻小型面阵摆扫热红外成像系统研究
融合光流速度场与背景差分的自适应背景更新方法
基于Harris角点和质量评价的图像篡改检测