8.3.1.1 光流
20世纪50年代,Gibson提出了光流(Optical Flow)的概念。光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,有两种最经典的计算方法——Lucas-Kanade、
Horn-Schunk。
光流法通过利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧和当前帧之间的对应关系,然后计算相邻帧之间物体的运动信息。一般情况下,光流是因场景中前景目标本身的移动、相机的运动或者两者之间的共同运动而产生的。
光流计算通常是建立在以下假设的基础上。
(1)亮度一致性假设:给定点在不同图像中具有相同的亮度。
(2)灰度梯度一致性假设:给定点在不同图像中具有相同的灰度梯度。
(3)平滑性假设:相邻点位移不会剧烈变化。
(4)小幅运动假设:图像采集具有足够的帧率,相邻帧仅存在小幅运动。
光流场可以简单地理解为物体的速度矢量场,包括分量Vx、Vy。假设平面内有一点(x,y),它代表场景中的某一点(x,y,z)在图像平面上的投影,该点在时刻t的灰度值为I(x,y,t)。假设该点在(t+Δt)时刻运动到(x+Δx,y+Δy),且在很短的时间间隔Δt内灰度值保持不变,即
假设灰度I(x,y)随着时间平滑变化,可以将式(8.1)按照泰勒展开,得到
式中,e包括Δx、Δy、Δt的二次以上的项。
式(8.2)去掉I(x,y,t),用Δt除等式两边,并取Δt→0后,可以求得
简写为
式中,Ix,Iy——图像沿着x、y方向灰度的偏导数;
It——图像对时间的偏导数;
Vx,Vy——图像沿着x、y方向的速度。
Ix、Iy、It可以直接从图像中估计。
Lucas-Kanade光流法有三个假设条件:亮度一致性假设;小幅运动假设;空间一致性假设(即前一帧中相邻的像素点在后一帧中也是相邻的,这是Lucas-Kanade光流法独有的假定)。在式(8.4)的基础上,利用空间一致性假设,设置一个m×m的邻域窗口,在该窗口内有n个像素点(n=m×m),则根据式(8.4)可知,该选定窗口中可建立n个方程。假设认定图像平面内足够小的区域中,n个像素点的速度是相同的,这n个像素点的速度都为Vx和Vy,将其代入式(8.4),可以得到n个方程组成的方程组,就可以求得两个未知数Vx和Vy,从而解得光流的速度场,即
该问题可利用最小二乘法解决,即
根据式(8.6),通过累加邻域像素点在三个维度的偏导数并做矩阵运算,就可以得出该点的光流(Vx,Vy)。该方法对图像噪声有抑制作用,没有迭代计算,效率高。在梯度变化不明显的区域,受计算原理限制而无法求解。该方法通常针对图像特征点进行计算。
Horn-Schunk法有两个假设条件:灰度梯度一致性假设;平滑性假设。在亮度一阶泰勒展开的基础上,利用式(8.7)所示误差罚函数约束,进行迭代求解,获得全局、稠密运动信息。但因为一阶泰勒展开的作用,要求图像位移小于1像素,实际应用中采用模糊化、下采样等方式应对较大位移的影响。
式中,(IxVx+IyVy+It)2——灰度变化因子;
α2——平滑因子。
光流计算可获得相对运动信息,从而实现障碍物探测、运动物体识别、运动速度估计、相对旋转判定等,可以被广泛应用于机器人、无人机导航与自动驾驶系统中。但是,光流法也存在很大的局限性。由于光流法基于亮度不变等假设,因此需要高帧频图像采集来保证相邻帧满足计算要求,在图像移动较大的情况下会失去计算合理性,不能利用不连续图像获得导航信息。此外,光照的实时变化会影响计算精度。绝大多数光流计算的速度信息具有尺度模糊性,因此光流法更多应用于速度连续测量、避障等情况,应用领域受到限制。
8.3.1.2 视觉里程计
运动重建结构(Structure From Motion,SFM)是利用二维图像序列恢复三维空间结构及相机位姿信息的方法。
视觉里程计(Visual Odometry,VO)用于对相机的运动速度、轨迹及相机位姿进行准确估计。将摄像头刚性连接到一个移动的物体上,通过摄像头采集的图像集来确定相机的6个自由度。根据摄像头的数量可以将其分为单目视觉里程计和立体视觉里程计。VO 具有完整的导航应用功能,被认为是一种特殊的运动重建结构(SFM)。
下面介绍VO的基本工作原理。
摄像机坐标系中坐标为(xc,yc,zc)的空间点,经线性相机透视后,在图像坐标系中的投影坐标为(u,v),其转换关系用齐次坐标表示如下:
式中,λ——比例因子;
αx、αy——u轴和v轴的尺度因子;
r——u轴和v轴的不垂直因子,通常为零;(www.xing528.com)
u0,v0——光学中心。
当世界坐标系与摄像机坐标系间存在旋转R3×3(以下简写为R)及平移t=[txtytz]T 关系时,世界坐标(xw,yw,zw)与摄像机坐标系的转化关系为
极限约束方程如下:
式中
pl、pr——双目情况下左右摄像机或单目摄像机不同时刻图像中匹配的点对,其齐次坐标为pl=[ulvl1]T,pr=[urvr1]T;
t×——平移向量的反对称阵。
此时,点对空间的约束关系表示为
可见,E包含了转动和平移信息,称为本质矩阵,有5个自由度,秩为2,有2个相等且不为零的奇异值。因此,仅依据2幅可以匹配的图像就可以获得摄像机之间的相对运动信息。在相机内部参数K 已知情况下,可以使用5点法得到R、t,从而获得相机的相对运动信息。
如图8.3所示,Scaramuzza等对各类VO的基本计算过程进行了总结。
图8.3 VO的处理过程
2D-2D模式就是利用2幅平面图像信息进行R、t计算。因此,式(8.10)可以转换为
针对每一匹配点对式8.13可以进行如下变形
式中,E=[e11e12e13e21e22e23e31e32e33]T。
根据Nister 5点法,选择5对匹配点,按照式(8.14)就可以构成求解关系,利用SVD 法求解得到本质矩阵,进而可以依据E分解得到R、t。
3D-3D模式是利用不同时刻特征点的三维坐标测量结果进行本质矩阵恢复,进而获得R、t。
3D-2D模式是将之前已经获得特征点的三维坐标投影到二维坐标中,然后进行求解。
对于单目VO,虽然无法获得准确的平移尺度,但是可以利用不同时刻计算得到的三维特征点,通过下式得到相对尺度
式中,Xka,Xkb——在k时刻第a、b个特征点的三维坐标。
由Nister 5点法计算得到的相对运动信息必须进行误差抑制。误差抑制的方法有很多,如Pose Graph、RANSAC以及BA,其中BA是目前使用最多的方法。BA 利用距当前时刻一段时间内的图像特征点及相对运动结果进行平差,其基本处理思想如下:
式中,i——图像编号;
j——特征点号;
——i图像对应的投影关系———特征点j的三维坐标;
——特征点j在i图像中的齐次坐标。
8.3.1.3 视觉同步定位与地图构建
视觉同步定位与地图构建(Visual Simultaneous Localization and Mapping,VSLAM),以经典SLAM 算法为基础,用视觉取代激光、雷达等方式来实现地标点的测量。
如图8.4所示,VSLAM的技术框架主要包括传感器数据预处理、前端、后端、回环检测和建立地图。
图8.4 VSLAM 技术框架
(1)在传感器数据预处理技术中,传感器主要包括摄像头、惯性测量单元等,涉及传感器选型、标定、多传感器数据同步等技术。
(2)前端是视觉里程计,主要涉及计算机视觉相关的算法。典型做法:首先,提取每帧图像特征点,对相邻帧进行特征点粗匹配;然后,利用RANSAC(随机抽样一致)算法去除不合理的匹配对,进而得到位置和姿态信息。
(3)后端主要优化前端的结果,得到最优的位姿估计,目前主要有两种方法。一种是基于滤波理论的优化,主要有扩展卡尔曼滤波器(Extended Kalman Filter,EKF)、无迹卡尔曼滤波器(Unscented Kalman Filter,UKF)以及粒子滤波器(Particle Filter,PF)等方法。其中,EKF是早期的主流方法,它的思路是将状态估计模型线性化,并用高斯分布近似其噪声,然后按照卡尔曼滤波进行预测来更新。另一种是非线性优化(图优化),它的思路是将优化的变量作为图的节点,误差项作为图的边,在给定初值后,就可以迭代优化更新。图优化逐渐成为一种主流方法。
(4)回环检测一般通过判断图像之间的相似性来完成,其主要目的是让机器人能够认识自己曾经去过的地方,从而解决位置随时间漂移的问题。
(5)建立地图:采用SLAM 算法,根据不同的传感器类型和应用需求来建立不同的地图,如二维栅格地图、二维拓扑地图、三维点云地图等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。