基于描述符辅助光流跟踪匹配的数据关联方法*

2022-01-08 04:58夏华佳章红平陈德忠
交通信息与安全 2021年6期
关键词:光流描述符灰度

夏华佳 章红平 陈德忠 李 团

(武汉大学卫星导航定位技术研究中心 武汉 430079)

0 引 言

近年来,全场景环境下的高可用、高可靠、高精度的完备导航参数定位需求日益增长,传统GNSS/INS组合导航在GNSS信号遮挡区域,INS的导航误差迅速累积,定位结果精度快速下降[1]。视觉惯性里程计(VIO)是利用图像和惯导信息,融合计算获取定位导航信息的热点技术,能有效解决GNSS失效情况下导航系统误差快速发散的问题,因此被广泛研究与应用。根据其融合框架,可以分为基于滤波器的VIO和基于优化的VIO[2]。前者核心思想为惯导测量载体的运动数据用于状态传播,相机测量的信息数据用于状态更新估计。而后者需要处理在轨迹上所有的测量,估计和平滑载体状态,由于这类方法拥有迭代的运算机制,能够修正历史的状态估计,因此可达到较高的运动估计精度。但基于优化的方法计算量较大,算法设计更复杂,无法在一些算力有限的平台上运行。而基于滤波器的VIO算法可同时兼顾计算效率和精度,且大多数平台上均能获取准确一致的定位结果[3]。

基于滤波的VIO又分为松耦合[4]、紧耦合[5]这2种模式。松耦合模式是将视觉运动估计的位置、速度、姿态变化的结果作为观测量构建观测方程,与惯性导航系统方程进行融合解算;紧耦合模式则是直接将相机观测到的图像特征信息作为观测量,构建观测方程对惯导误差进行修正。紧耦合算法中具有代表性的是MSCKF算法,采用了1个滑动窗口维护多个时刻的相机位姿,以多帧图像共视到同1个特征点为出发点,特征点与图像之间的约束关系构建观测方程,估计并输出最新时刻的位姿[6]。该方法直接使用了图像特征点原始观测值,因此视觉粗差对VIO解算精度影响极大。为了减少视觉粗差,需要提高VIO数据关联的准确性,即特征点跟踪匹配的准确度。

目前,特征点跟踪匹配算法大多采用基于描述符特征点匹配,或光流法匹配[7]。描述符的特征点匹配方法,描述了特征点与周围像素分布特征,可将其作为目标匹配的依据;光流法则是依据同一特征点灰度不变原理,寻找该点在下一帧图像中可能出现的位置,从而实现匹配。在Liu等[8]的研究中改善了特征点的局部描述符,采用融合全局环境描述符,使得特征信息具备一定的空间描述能力;在成怡等[9]的成果中提出了基于Hamming距离和余弦相似度结合的描述符匹配方法,降低了多相似区域图像特征点的误匹配率;而邹斌等[10]的研究中则采用区域分块对图像进行预处理,挑选最佳匹配子块预期得到最佳匹配。以上3种方法均属于对描述符表达能力及匹配策略进行改进,能够获取较为准确数据关联,但匹配过程计算复杂,实时性较差。基于光流的方法中,王亭亭等[11]采用前后双向光流方法提高了特征点的跟踪精度,该方法不需要计算特征点描述符,节约了描述符暴力匹配时间,但在实际环境中由于光照、载体动态等因素引入大量错误匹配点,导致特征点跟踪匹配的准确度改善有限。

针对滤波框架下的视觉惯性里程计定位精度易受特征点异常匹配值影响的问题,光流法具备较高的计算速度,但假设条件过于严苛导致跟踪匹配不准确;基于描述符的特征点匹配在准确性上存在一定的优势,但描述符计算和匹配过程复杂。因此,本文结合了快速角点检测(FAST)、旋转二值描述符(rotated BRIEF)和Lucas-Kanade(LK)光流算法,提出了rBRIEF描述符辅助光流跟踪匹配的特征点数据关联方法,在保留计算效率的同时,可有效剔除光流异常匹配点对,提高特征点跟踪匹配的准确度,进一步提升MSCKF算法的定位性能。

1 特征点数据关联方法

基于特征点的数据关联主要是完成序列图像中相邻2帧图像之间特征点的匹配,本文的视觉数据处理方法见图1,主要包括FAST特征点提取、LK光流跟踪匹配以及基于rBRIEF描述符的特征匹配点对优选。

图1 基于特征点的数据关联方案Fig.1 Data association scheme based on feature points

1.1 FAST角点检测

FAST角点检测算法检测图像中较为特别的点,基本思想是1个像素的灰度大小与其邻域内足够多像素点灰度差异达到某种标准时,则认为该像素为角点。

以图像内任意1个像素作为候选特征点,建立以该像素点为中心,半径为3、周长为16像素的圆形检测模板。如图2所示,顺时针方向对圆上的像素点进行编号,若圆上有连续N(一般取值为9)个像素点灰度值都比圆心灰度加上设立的阈值大,或者都比圆心灰度减去设立的阈值小,则将该点视为目标点。

图2 FAST角点检测模板Fig.2 FAST corner detection template

为了避免检测到的角点过于集中在1个区域,导致角点的分布性不好,一般做法是对图像进行网格化,在网格化后的所有小图像块内进行非极大值抑制操作,只保留Shi-Tomas响应值最大的角点作为该图像提取到的特征点。

1.2 LK光流跟踪匹配

光流是像素在2幅序列图像中运动的表现方式,通过估计像素的位移完成特征点的匹配,一般分为稠密光流和稀疏光流。前者指的是计算图像中所有像素的运动,后者则计算部分像素运动。稀疏光流以LK光流法为代表。

LK光流基于以下3个假设:像素由1幅图像流向另外1幅图像,像素的灰度保持不变;相邻2帧图像之间运动变化不大;像素及其邻域像素具有相似的运动[12]。假设图像I中1个包含纹理信息的特征窗口W=(-wx,wx)×(-wy,wy),中心点坐标u=(ux,uy),当图像发生变化时,LK光流跟踪的目的是在图像J中找到另1个点v=(ux+dx,uy+dy),使得2处窗口内像素点的灰度值近似相等,定义像素窗口的灰度误差函数。

此时,LK光流跟踪的任务求解合适的d,使得误差函数ε(d)达到最小。其中,I(x,y)与J(x,y)分别代表对应图像坐标(x,y)处的灰度值。运动量d=(dx,dy)为计算光流,也称为像素点u的偏移量。式(1)描述的灰度误差函数,关于变量dx,dy求解雅可比矩阵。

在2帧图像之间为小运动的前提下,式(2)中,在d=0处对J(x+dx,y+dy)进行泰勒展开,再令灰度函数关于偏移量的雅可比矩阵为0求解光流,进而得到匹配关系。

LK光流法假设2帧图像之间运动不大,但当这个假设不成立时,跟踪匹配会出现较大的误差。为了解决这个问题,通常使用基于金字塔分层的LK光流[13]。对原尺寸图像进行若干层级的缩放,即可将处于金字塔底端像素的大运动在金字塔顶端被视为小运动,满足了LK光流的计算条件。

将金字塔最顶层Lm光流初始值传递值记为,通过最小化灰度误差函数,计算的得到Lm层的残余光流,则最终计算光流为,假设金字塔图像缩放因子为0.5,利用和可以估计次1层光流的初始传递值为

依次递推,即可计算原始尺寸大小的图像光流位移d。

1.3 rBRIEF描述符精确匹配

FAST特征点经过金字塔分层的LK光流跟踪后,得到相邻2帧图像特征点匹配结果。在实际情况中,图像不可避免地受到光照、噪声以及运动状态等因素的影响,光流计算假设并不成立,导致跟踪匹配结果不准确,即使是基于金字塔分层的光流法改善也很有限。特征点描述符在一定程度上可以反应特征点以及特征点周围像素的分布特征,以此作为约束条件进一步滤除部分匹配点,可提高光流跟踪匹配的准确性。

特征描述符可分为2种形式,梯度直方图描述符和二进制描述符。本文选择二进制rBRIEF描述符[14]作为异常匹配判断依据的原因为:①相对梯度直方图描述符,例如SIFT,SURF特征,在计算和对比匹配时均需要进行多种复杂且耗时的操作,而rBRIEF描述符作为1种二进制字符向量,其描述向量以及相似度判断均可以较高效地计算;②常规车载运动连续图像之间的旋转非常轻微,而rBRIEF描述符具备一定的旋转不变性,足够满足该场景下的应用需求。

rBRIEF描述符主要步骤包括FAST特征点方向计算以及进行描述的二进制编码。对FAST特征点采用灰度质心法计算方向:以特征点为中心,半径为r的小图像块为例,定义图像块的矩为

式中:(x,y)为定义圆域内的像素坐标;I(x,y)为像素点(x,y)处的灰度值。则该圆域图像的质心有

特征点的方向可表示为

为了使得描述子具备一定的旋转不变性,rBRIEF描述符根据上一步计算得到的FAST特征点方向,以该特征点为原点,x轴正半轴方向为特征方向,y轴垂直x轴建立坐标系,见图3,在该坐标系下以特定模式选取n对点对,按照一定的准则对比这n对点对的灰度大小,定义比较准则τ见式(7)。

图3 rBRIEF描述符旋转不变性Fig.3 Rotation invariance of rBRIEF descriptor

式中:I(a)为点a处的灰度值。将这n对点对的灰度大小比较结果按位编码即可得到该特征点的rBRIEF描述符。

对光流跟踪后所有特征点匹配对,重复以上操作计算rBRIEF描述符,通过Hamming距离对每一对匹配点对的描述符进行相似度比较,对没有通过的特征点匹配对进行滤除,最终再利用RANSAC算法[15]进行几何校验,选取算法结果内点作为最终的匹配结果。

2 MSCKF视觉惯性里程计算法

采用本文提出的rBRIEF描述符辅助光流跟踪匹配的数据关联方法进行图像特征点跟踪匹配,进一步基于MSCKF滤波器对视觉、惯导数据进行融合解算,获取运动载体的位姿信息。设计视觉惯性里程计定位算法见图4。

图4 MSCKF视觉惯性里程计算法框图Fig.4 MSCKF-based visual-inertial odometer algorithm

利用GNSS/INS松耦合提供位置、速度、姿态信息,完成VIO的初始化。在融合解算过程中,INS作为主要的传感器进行航位推算,视觉作为辅助手段对导航误差进行修正。MSCKF算法维护了1个包含时间序列上连续的位姿信息窗口,因此,待估计参数包括当前时刻惯性测量单元(inertial measurement unit,IMU)状态误差以及滑动窗口内相机状态误差,定义单个相机状态误差为

当处理下1帧图像时,MSCKF完成现有误差参数的状态传播。

式中:Φk,k-1为k-1时刻到k时刻的系统转移矩阵,其值由状态参数的动力学模型来决定;和Pk-1分别为k时刻状态参数预测方差阵和k-1时刻状态参数方差阵;Qk-1为系统噪声方差阵,由状态参数的动力学模型精度确定。

同时对该时刻IMU位置、旋转误差项进行增广,以及增广后误差参数的方差协方差阵的更新。

滤波观测更新是建立在多帧图像共视到同1个特征点基础之上。当连续被跟踪到的特征点从当前相机视野中消失,或窗口内包含历史IMU位姿个数达最大需要移除部分状态时,不再被跟踪到的特征点以及被移除状态时刻相机视野中所有的特征点均被用于构建观测方程。此时,滑动窗口内多个与相机固连的IMU位姿受特征点fi(i=1,2,…,m)约束。假设特征点fj被连续的n帧图像观测到,这n帧图像对应的相机位姿可记为,采用逆深度参数化的估计方法恢复该特征点的地固系e坐标,重投影至第i帧图像对应的相机坐标系Ci,投影后的坐标可表示为

根据相机模型,式表示的特征点在相机坐标系下坐标,经过归一化投影,在Ci对应的像素平面坐标表示为

式中:fx和fy分别为像素平面x轴、y轴上的归一化焦距(标定已知);为图像噪声向量。为了方便描述,在第i帧图像中,特征点fj像素观测值记为,根据式(15)和式(16)计算得到fj像素估计值记为,像素观测值与估计值做差即构成了测量残差。

为了建立测量残差与待估计量关系,将上式线性化可得

将式(15)扩展至滑动窗口内所有观测到该特征点的状态,得到该特征点构建的观测方程。

视觉辅助INS解算需要对δx进行估计,然而由于观测方程中特征点坐标误差项的存在,需要对观测方程进行解耦操作,目的是消除待估计状态量与特征点3D位置坐标误差之间的相关性,使得解耦后的观测方程满足卡尔曼滤波更新的要求。式投影至的左零空间。

一般而言,在MSCKF某更新时刻,存在多个满足条件的特征点用于构建观测方程,每个特征点对窗口内多个状态形成约束,构建式(20)类型的观测方程,堆叠所有点构建的观测方程完成导航状态误差量的参数估计。

3 实验与分析

本节实验分别从特征匹配效果和定位精度2个方面,对本文方案进行评价。数据采集设备中,视觉/惯性数据采集硬件包括Basler acA1600-20gm型工业相机、普通MEMS级别惯导M40(内置惯导型号为ADIS16460)。此外,POS320作为1款高精度导航级光纤惯导,与GNSS载波相位差分后处理(PPK)进行组合滤波和反向平滑处理,可为车载定位提供参考真值。2款惯导及Basler acA1600-20gm相机的主要性能参数见表1~2。

表1 惯导设备参数Tab.1 Equipment parameters of inertial-navigation

表2 Basler acA1600-20gm相机参数Tab.2 Parameters of Basler acA1600-20gm camera

3.1 特征点匹配效果分析

分别采用原始金字塔分层的LK光流跟踪匹配方法和本文提出的加rBRIEF描述符优化光流跟踪匹配方法,对实测车载视觉图像提取到的FAST特征点进行了跟踪匹配。图5描述了上述2类方法处理后特征点匹配点对数量情况。

图5中,蓝色曲线表示每帧图像均可提取到足够多的FAST特征点,其个数均在150个以上;光流跟踪后,绝大多数特征点均被视为跟踪匹配成功,绿色曲线则对应着匹配点对的数量情况;而结合rBRIEF描述符对光流跟踪匹配结果作滤除后,留存的匹配点对数量进一步减少,如红色曲线所示。这是因为图像灰度本质上是由光照强度、图像拍摄角度等因素综合决定,而光流法在求解特征点运动偏移量时,采用运动参数拟合灰度误差函数,这使得只有在小运动、光照不变等假设前提下,求解过程中拟合才不会引入较大的模型误差。图6给出了本次测试中载体行驶的速度以及姿态信息。

图5 特征点跟踪匹配点对数量图Fig.5 Quantity of feature points tracking matching-point pairs

图6 载体导航状态Fig.6 Navigation status of the carrier

当载体处于平稳行驶状态时,rBRIEF描述符剔除部分特征不稳定的匹配点对,特征数据优化后留存的特征匹配点对在100以上;而当载体出现较大机动时,例如转弯时刻,图5中红色曲线总会伴随1个尖峰跳跃,特征匹配点对数量锐减至100以下,这与上述光流跟踪适用情况原理分析一致。

抽取其中具有代表性图像进行视觉效果分析,图7中给出转向场景下基于rBRIEF描述符滤除异常匹配点对前后的特征匹配图。如载体表面轮廓、标识牌、建筑表面以及路面等处,利用rBRIEF描述符对像素及其邻域像素分布特征进行描述、比对,有效地对这些错误匹配点对进行滤除。

图7 rBRIEF描述符滤除异常匹配前后对比Fig.7 Comparison before and after rBRIEF descriptor filtering exception matching

3.2 定位算法性能分析

从VIO定位精度方面对本文提出的视觉特征点匹配优化方案进行检验评估。对比算法采用基于原始金字塔LK光流跟踪匹配的MSCKF,简记为VIO1.0,基于本文提出的rBRIEF描述符优化特征点跟踪匹配方案的MSCKF在本实验中简记为VIO2.0。2种方法的解算轨迹以及典型定位误差曲线见图8~9,表3~4给出了相关定位误差的统计结果。

图8为视觉惯性组合导航解算轨迹与真值轨迹对比,由于视觉辅助定位缺乏绝对外部观测,导致VIO解算存在累计误差,总体呈现发散趋势。VIO2.0采用rBRIEF描述符对光流跟踪匹配结果进行精化,视觉数据关联准确度更高,定位累计误差较小。因此,相较于VIO1.0,VIO2.0轨迹跟真值轨迹更加贴合。

图8 真值与不同算法解算轨迹图Fig.8 Solving trajectory of the true value and different algorithms

图9描述了2种算法解算定位结果与参考真值对比后的位置、姿态误差曲线。由图9可知:基于本文视觉特征匹配优化方案的MSCKF算法,定位误差更贴近0误差标准线,这与图8分析结果一致。结合图6所示的载体行驶姿态变化曲线,每当载体在转弯时,北向、东向位置误差改善的尤为明显,航向误差发散速度也更缓慢。

图9 2种算法解算定位结果误差曲线图Fig.9 Two algorithms solving the error curves of positioning results

表3与表4分别统计了2种算法解算位姿的最大误差值(MAX)和均方根误差(RMS)。376 s内,VIO1.0定位结果北-东-高3个方向最大发散误差为7.74 m,16.80 m,2.63 m,3D位置最大发散误差为16.90 m,考虑到载体在该段时间内行驶距离超过2 km,定位误差漂移约为0.84%;而VIO2.0定位结果在这3个方向最大发散误差5.51 m,7.17 m,2.43 m,3D位置最大发散误差为7.47 m,定位误差漂移优于0.38%。2种方案的RMS值在垂向方向相当,而在平面方向本文方法具有明显的改善,尤其是东方向改善达到56.5%。姿态结果与位置结果类似,VIO2.0方案的3个方向最大误差值均优于VIO1.0,YAW方向的改善达到45.2%,进一步说明本文方法的有效性。

表3 VIO1.0解算误差统计表Tab.3 Statistics of VIO1.0 solution errors

表4 VIO2.0解算误差统计表Tab.4 Statistics of VIO2.0 solution errors

本实验共采集7 191张序列影像,对图像处理运算时间进行分析。使用基于rBRIEF描述符辅助光流跟踪匹配的数据关联方法在计算机上进行处理,各步骤处理时间如下:FAST特征点提取时间花费195.82 s,3层金字塔光流跟踪时间花费22.00 s,描述符滤除异常匹配点时间花费64.90 s,平均处理单帧图像时间约为39 ms。传统金字塔光流跟踪平均处理单帧图像时间约为30ms,使用ORBSLAM2中基于描述符匹配方法处理单帧图像时间约为68 ms。本文提出的算法相较于传统金字塔光流跟踪,单帧图像处理时间增加9 ms,但能够改善54.7%的位置漂移;而相较于ORBSLAM 2中基于描述符特征点匹配方法,本文提出的方法处理时间缩短了42%。

4 结束语

基于MSCKF的视觉惯性里程计定位方法,具有计算效率高、可移植性强等特点,但其定位精度严重依赖于视觉特征点跟踪匹配的准确性。本文提出了1种rBRIEF描述符辅助光流跟踪匹配的数据关联方法,该方法利用描述符具备描述特征点及其周围像素分布信息的能力,计算每对匹配点的描述符,根据对描述符的相似度判断是否滤除该对点,从而提升特征点匹配的准确度。实验表明:当载体存在较大的机动时,该方法能有效地剔除异常匹配点;在实测载体行驶距离超过2 km的大尺度场景下,基于描述符辅助光流跟踪匹配的MSCKF算法整体位姿均要优于原始光流跟踪的MSCKF,尤其是位置漂移率优于0.38%,改善约为54.7%。同时,该算法具有图像处理速度快的优点,与ORBSLAM2[17]图像特征匹配算法相比,单帧图像处理时间缩减42%。

猜你喜欢
光流描述符灰度
利用掩膜和单应矩阵提高LK光流追踪效果
采用改进导重法的拓扑结构灰度单元过滤技术
基于结构信息的异源遥感图像局部特征描述符研究
基于AKAZE的BOLD掩码描述符的匹配算法的研究
Linux单线程并发服务器探索
基于最大加权投影求解的彩色图像灰度化对比度保留算法
利用CNN的无人机遥感影像特征描述符学习
基于灰度线性建模的亚像素图像抖动量计算
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法