基于改进卡尔曼滤波的增强现实跟踪注册算法 ①

2021-01-12 12:56
高技术通讯 2020年12期
关键词:实时性卡尔曼滤波像素

刘 佳 闫 冬 郭 斌

(南京信息工程大学自动化学院, CICAEET, 南京 210044)

0 引 言

增强现实(augmented reality, AR)是在用户观察到的真实环境中添加计算机生成的虚拟物体或文字等信息的技术[1]。建立虚拟环境和现实物理世界的映射关系,智能实时地将相关信息融合呈现在位于现实环境的用户前面,达到增强用户临场感知能力的目的[2]。该技术目前在手术医疗、军事训练、工业维修、教育、交通导航上有着广泛的应用。增强现实的关键技术有跟踪注册、虚实融合和人机交互,这其中的核心是跟踪注册技术。目前基于视觉增强现实跟踪注册技术大致分为三大类,一类是基于四方黑白标识的跟踪注册,一类是针对自然特征的匹配注册,还有一类是通过建立局部地图进行虚拟注册。其中第1种方法由于临场环境的局限性限制了发展空间;第2种由计算机性能和算法决定系统运行速度,不能保证系统实时处于稳定状态;而第3种方法的代表则是SLAM/PTAM(simultaneous localization and mapping/parallel tracking and mapping),通过建立虚拟地图获得实时点的位姿关系进行注册,系统本身复杂度高,并且为了保证系统的稳定性而牺牲了不小的运行速度。

传统基于自然特征点匹配的增强现实系统的实现,是借助检测算法检测预存的目标图像和相机捕获图像之间的点对应位置,计算之间的单应性关系,从而实现虚实融合注册。传统的人工特征如尺度不变特征变换(scale invariant feature transform,SIFT)、加速鲁棒特征[3](speeded-up robust features,SURF),两者在移动端都不能实时稳定运行。为了能在移动端使用此类特征,Ethan等人[4]在2011年提出快速特征点提取和描述算法(oriented fast and brief, ORB)。随着神经网络的发展,部分研究者通过训练深度卷积神经网络以估计平面单应性,这种算法在很大程度上节省了检测和匹配所耗费的时间,提高了系统的实时性。例如Nguyen等人[5]提出的无监督深度单应性估计模型。除了这种端对端的训练方式,也有很多人开始使用神经网络结合传统的人工特征的深度学习算法进行训练,如Verdie等人[6]提出的时间不变检测器(temporally invariant learned detector,TILDE)算法,该特征对变化巨大的场景具备很好的鲁棒性。尽管如此,TILDE算法却缺少了特征描述符,需要借助传统的方法进行匹配。而Yi等人[7]提出的基于学习的不变特征变换(learned invariant feature transform,LIFT)算法通过soft-argmax函数和空间变化网络实现从检测到匹配的完整步骤,因此稳定效果很好。从实时性考虑,如果上述基于深度学习的特征不借助GPU的并行运算能力,很难达到实时运行的目的。因而考虑现实条件,传统的特征匹配方法仍然具备很大的优势。

本文基于自然特征识别注册方法考虑,通过改进FAST(features from accelerated segment test)检测算法建立低维图像空间进行直方图匹配,使其能快速定位,进而利用SURF算法较好的鲁棒性结合改进后的卡尔曼滤波[8]算法进行跟踪注册,实现匹配和跟踪的结合。

1 特征提取与匹配技术

1.1 结合改进FAST算法作图像快速粗略定位

本文提出了一种通过改进FAST检测作图像粗略定位的算法。FAST算法本身不具备尺度不变性,为了能够减少尺度变化对检测效果的影响,建立图像金字塔进行降采样(见图1),使其具备尺度不变性。本文旨在提高检测效率以保证在跟踪目标丢失时能快速定位目标所在区域,在建立图像金字塔时以1.2倍缩放采样,采样4次,当检测到关键点后保存关键点所在位置的RGB像素信息,将采集的像素信息重新分配到新建的3通道一维矩阵降低图像维度。将新建的矩阵空间转换成HSV图像空间矩阵,然后建立HSV空间的颜色直方图。除检测目标图像外,还需将相机捕获的图像分割成5等份,分别建立颜色直方图,以确定最大相似度[9](如图2所示)。

图1 采样金字塔

图2 5等分切割

本文使用的定位算法主要由以下3个要素构成。

(1) 建立尺度空间

① 对第l层图像进行高斯卷积运算。

② 将偶数行和列删除:

gl-1(2i+m, 2j+n)

(1)

(2) 提取特征点

参考ORB算法的提取步骤,在粗提取时采用FAST特征检测算法提取候选特征点,以提取的候选特征点p为圆心,画一个以3像素大小为半径的圆,在圆周上的16个点内,检测1、5、9、13位置上的点的灰度值是否有3个或以上都大于或小于p点的灰度值,如果不满足则排除这个候选点,如果满足,检测是否存在连续的12个点都大于或者小于p点的灰度值,如果满足则此候选点为需要的特征点。使用非极大值抑制剔除密集点,以保证特征点的分散性。

(3) 区域相似度检测

将检测到的特征点所在位置的3通道像素信息重新写入到3通道n行1列的矩阵中,为了方便比较,将RGB空间转换成HSV空间,使用如下相关性比较的方法。

d(H1,H2)

(2)

当d越接近1,则表明图像越相似;当d<0.5时则表示图像不相关(本文将d设置为0.6)。在本文算法中,建立直方图进行查找相关图像是为了快速定位目标图像的大体区域,检索的图像尺度仅为320×240像素大小,为了提高待检测图像的准确率,使用FAST算法在多尺度空间检索特征点。将特征点的像素信息写入新的一维图像以加快检测的速度,当图像跟踪失败时,可以更加快速稳定地衔接视频的连续性。

1.2 SURF算法进行图像匹配

SURF算法是根据SIFT算法改进而来,也具备尺度不变性、旋转不变性和光照一致性,它很好地应用在增强现实和机器人建模等领域。通过构造Hessian矩阵,计算特征值。取Hessian矩阵为

(3)

当det(H)=0时,取得局部极值,则认为这个点是关键点。SURF算法使用盒式滤波器代替高斯滤波,为了削减误差,则在x、y的二阶导的方向乘上0.9得到:

det(Happrox)=LxxLyy-(0.9Lxy)2

(4)

与SIFT算法不同,在尺度空间上,SURF算法通过改变卷积核实现多尺度图像的并行处理,减少了算法时间复杂度。在选取旋转的主方向时,SURF算法通过以6s(s为兴趣的尺度大小)邻域内,统计Haar小波特征,在60 °内找到每个响应值赋以高斯权重系数,从而确定主方向(如图3所示)。

图3 特征方向选择

计算SURF特征点的描述子时,在特征点周围选取4×4的区域块,每个块对应有∑dx、∑|dx|、∑dy、∑|dy| 4个分向量,因此SURF描述子共有64维向量。采用K-means聚类算法[10]建立快速最近邻索引。

(1) 随机选取k个聚类质心点(本文选取32个)为u1,u2, …,uk∈RN。

(2) 重复以下过程直到收敛。

① 对于每个点,计算其应该属于的类:

(5)

② 对于每个类j,重新计算该类的质心:

(6)

(3) 定义畸变系数。

(7)

畸变系数表示每个点到其质心点的距离平方和,通过该算法将J约束到最小值。由于畸变系数是非凸函数,所以质心位置存在随机性会导致最优结果随机化。但在多次实验中发现,SURF特征检测算法结合K-means匹配算法依然具备很好的鲁棒性和实时性。

1.3 关于单应性矩阵的位姿矩阵计算

在位姿估计方面,对成功匹配的两幅图像(目标图像与检测到的区域图像)进行单应性矩阵[11]计算,通过随机抽样一致[12](random sample consensus,RANSAC)算法将不正常匹配的点剔除。当确定两幅图像对应点的坐标位置后,可以使用下式进行矩阵计算:

(8)

对未知数Hij(i,j∈1,2,3)至少存在3组不共线的匹配点才能计算出单应性矩阵H,所以使用尽可能多的匹配点可以保证计算结果更具备鲁棒性。与传统方法一样,通过模板图像的4个边界角找到对应当前帧的4个点,即[xiyi1]T=H[xjyj1]T。对于增强现实的位姿计算来说,通过单目相机捕获的二维像素坐标和对应确定的三维世界坐标存在如下关系:

(9)

其中等号右边的第1个矩阵表示相机的内参矩阵,f为相机的焦距,Δx和Δy表示相机捕获画面的1个像素点在真实世界中的尺寸大小,u0和v0对应相机的焦距中心点。第2个矩阵表示相机的外参矩阵,R为位姿的旋转矩阵,表示为3×3的矩阵,T表示平移向量,表示为3×1的向量。式(9)中,旋转矩阵R由世界坐标的3个角度构成,因此其构成的3组方程中有6个未知量,其中1组不存在未知量,所以构成了2组方程的6个未知量。为了求出6个未知量的解,则需要至少3组在平面坐标中不共线的点构成6组方程进行求解。对于相机内参和畸变系数求解,可以通过文献[13]的棋盘标定法获得。

2 运动目标跟踪

基于自然特征增强现实的图像识别算法,一般运用特征检测算法进行全局检测,通过匹配到相应目标图像的相关特征点,使用光流法或直接法进行持续跟踪。这样方法的优点是速度快,但也存在鲁棒性差、虚拟物体易丢失等缺点。并且由于光流法和直接法本身的局限性,不适合在户外等光照变换大的场景下使用,所以这类方法不具备普遍适用性。本文针对此类算法的局限性,提出了新的算法,可适用于移动端和户外等光线强度变换较大的场景。本文通过联合SURF和改进后的卡尔曼滤波算法,在连续跟踪过程中,始终以最小的计算代价找到最大满足SURF计算条件的区域。

2.1 改进的卡尔曼滤波算法

图4 改进观测值选取原理图

2.2 跟踪算法流程

图5 区域跟踪原理

首先根据卡尔曼滤波满足的线性条件建立一个四维的状态向量和二维的观测向量,四维的状态向量分别表示x、y的位置点和其对应的速度值。通过运动方程xk=Akxk-1+Bkμk+wk表示,由于缺少控制向量,则设Bk为0向量,满足状态转移矩阵A=[[1,0,1,0][0,1,0,1][0,0,1,0][0,0,0,1]]T,可以理解为上一个状态的位移量加上单位速度量则表现为当前状态的位移量,而考虑系统误差和观测误差,令wk~N(0,Qk),vk~N(0,Rk)。观测方程根据卡尔曼滤波表示为zk=Hkxk+vk,因为本文观测方程和状态方程的特殊关系,Hk为2×4的矩阵,其中观测方程只和当前状态向量的前二维有关,即位移点,所以取Hk=[[1,0,0,0][0,1,0,0]]T。为了满足系统对状态方程的最优估计,需要在观测阶段对状态值进行校正,此时引入协方差矩阵进行更新:

Pk|k-1=A·Pk-1|k-1·AT+Q

(10)

其中,Pk|k-1表示预测状态值的协方差矩阵。通过当前系统的预测结果和现在状态的测量得到当前状态的最优化估计:

xk|k=xk|k-1+Kk(zk-H·xk|k-1)

(11)

Kk表示当前的卡尔曼增益系数,由协方差矩阵P和测量矩阵H表示,即:

Kk=Pk|k-1·HT/(H·Pk|k-1·HT+R)

(12)

将此时的卡尔曼增益带入最优估计求解,并利用这个增益计算下一时刻所需要的协方差矩阵值:

Pk|k=(1-Kk·H)Pk|k-1

(13)

此时可以完整地通过观测值预测下一时刻的中心点位置。但是观测值的选取却影响着整个系统的稳定。如果观测值出现较大的误差,而预测值也将不准确,在这里,本文通过改进对观测值的选取来改善整个系统的性能,方法如下。

(1) 初始化阶段

建立非线性的损失函数模型,本文设置模型为

f(x)-exp(a·x2+b·x+c)

(14)

定义观测数据N组(本文N设置为20),通过观测数据建立最小二乘函数:

argmin∑x‖f(x)-exp(a·x2+b·x+c)‖2

(15)

同时对前N组的初始值进行赋值求解,如果对前N组全部赋值0,则最后求得的参数容易陷入局部最优解,其待求参数在初始化阶段被错误求解出来,因此在f(x)和x的取值为0的基础上加上高斯扰动,令其处于波动状态。

(2) 求解阶段

在相机运动或者目标物体运动过程中不完全符合本文所期待的运动方式,为了保证给定拟合的数据不随时增长导致拟合参数不准确并且计算量大幅提升,在接受新的数据同时剔除老旧的数据使其维持在N的参数范围内。利用L-M方法迭代求解,最后通过已知参数寻找下一时刻单位的解,即求解预测的“观测点”。

(3)判定阶段

此时本文得到两组观测点,一组是实际观测到的点,另一组是预测的“观测点”。希望实际观测的点是准确的,但是不论是噪声存在或者光照因素影响,观测到的数据总可能是错误的,这里本文引入第三方评测指标来判断哪个值更准确。

假设之前的观测数据都是准确的(或者观测数据被矫正过),而卡尔曼滤波的预测值和下一帧的观测之间也存在误差,误差可能很小。将这些误差的绝对值建立一组拟合数据,根据误差增长率来判断选取哪一个“观测值”更可靠,同样建立N-1组的数据来拟合线性方程,通过对第N组数据的预测来判断卡尔曼滤波预测的值和其“观测值”的相对误差更接近:

{||zk-pk-1|-gk|}‖

(16)

3 实验结果分析

本实验从实时性、稳定性两个因素进行分析,对500帧图像进行尺度变换、旋转变换、光照变换和视角变换这4种变化。使用全局SURF、ORB、FREAK[14]、ORB-LK[15]和本文提出的算法进行比对分析,观察运行帧率和正确姿态注册的图像数目,采用fps为单位进行实时性比对,稳定性的单位采用正确姿态的注册百分比。本次实验使用的测试平台是Inter(R) Core(TM)i7-2600 CPU @ 3.2 GHz、8 G的DDR3内存、罗技摄像头、OpenCV3.3.1图像视觉库、OpenGL绘图库、Ubuntu16.04 LTS操作平台。本文的总体流程图如图7所示。

图6 改进后卡尔曼预测更新流程图

图7 全局流程图

3.1 全局定位检索结果与分析

本次实验设定摄像头采集的分辨率为640×640像素、给定的模板图像分辨率为415×585像素。为了提高稳定跟踪的实时性,在初始化和目标丢失时需要重新定位目标图像的粗略位置以减少不必要的搜索空间。从实时性方向考虑,对给定的500帧图像进行采样分析,每10帧计算其平均帧率,采样50次,用本文算法和传统方法如SURF、ORB、使用SURF+FREAK的组合的方式,和深度学习方法如SuperPoint[16](self supervised interest point detection and description)分别进行比较,图中的最低值为0,最高值为60,结果如图8所示。

(a) SURF+FREAK

其中前3种算法属于直接检索全局图像进行实时匹配分析图像的位姿关系,而本文为了缩减前期的定位时间,使用FAST算法进行采集像素信息建立直方图的方法以快速确定目标图像所在位置。本文算法中为了确保定位图像的大部分区域属于目标图像,在相似度检测算法方面设置阈值为0.6。

3.2 改进后卡尔曼滤波器的跟踪精度分析

本文使用卡尔曼滤波器的预测值进行尺度定位,结合SURF算法的观测值不断修正预测值结果。与其他目标跟踪算法不同,增强现实(AR)的跟踪算法不仅需要目标的位置和尺度信息,更依赖相机的姿态信息。目前已知关于位姿跟踪的相关算法有IC(incerse compositional)[17]、ESM(improving vision-based control efficient second-order minimization techniques)[18]、Struck(structured output tracking with Kernels)[19]、Gracker(graph-based planar object tracker)[20]等。其中基于模板的IC和ESM算法对于遮挡不具备鲁棒性,Struck对于光照性比较差,而Gracker算法依赖的SIFT描述子,在实时性方面不具备优势。因此本文使用卡尔曼滤波的方法,预测目标的位置和尺度信息,通过观测位姿信息校正目标位置和尺度,跟踪效果如图9所示。

图9 预测跟踪效果

如图9所示,□位置框表示观测状态值,▼位置框表示选定的预测值,▽位置框表示预测的“观测”值,□对应点表示观测点,▼对应点表示预测点,▽对应点表示预测的“观测点”。每隔10帧进行取样,得到一组如上所示轨迹图。随机选取目标图像由于目标小,而预测的“观测点”失误,本系统很好地分析了哪组观测点为正确的观测点。对图9(b)采样500帧图像,判断预测区域和真实区域的交并比是否小于80%,如果小于此值判断为丢失状态。每50帧计算丢失次数,共计10次。

表1 采样跟踪错误率

3.3 跟踪注册结果分析

本文提出算法的实验效果为图10所示。

图10 三维注册效果

为了验证本文算法的有效性,在不同的目标上进行不同的虚拟物体注册,得到如图11所示效果。

如图9所示,本文提出的算法能实时预测下一帧目标图像大体的位置,并适时地调整检测区域大小,得到效果如图10的右侧小窗口所示。通过这样的检测方法,得到的误差点少,合适的匹配点多,因此能尽可能地减少匹配误差,也能通过检索缩减的匹配空间来增加实时性能。本次实验中,采集前500帧图像,对第50帧、100帧、200帧、350帧和500帧进行采样,通过对SURF、ORB、SURF+FREAK和ORB-LK等几种经典算法和SuperPoints基于深度学习的特征点检测和匹配方法进行实时性和稳定性比较,得到如表2和表3所示的结果。

图11 随机变换注册

表2 各算法的实时性分析(单位为fps)

表3 各算法的稳定性分析

从表中数据分析,使用ORB结合光流法代替匹配,可以大幅度提高算法的实时性,但是由于光流法对光照的敏感性,在第200帧之后稳定性大幅度下降。使用SURF算法可以提高注册结果的稳定性,但是由于算法本身的时间复杂度高,所以其损耗的时间也比其他对比的算法时间长。本文算法在实时性方面比单纯的SURF匹配提高了两倍,其次在稳定性方面和SURF全局算法相差无几,因此本文提出的算法在几种变换下都能很好地满足实时性和稳定性要求。

4 结 论

本文提出了一种基于改进卡尔曼滤波的增强现实跟踪注册算法。该算法使用FAST检测器在不同的金字塔层进行采样检测并通过使用相关性比较的方法进行快速定位目标区域,以帮助系统在丢失再恢复时提高了稳定性。采用改进后的卡尔曼滤波结合SURF对目标区域的位置和大小进行观测从而预测下一帧目标图像的区域大小和位置,以帮助提高系统的实时性。算法使用最小二乘的方法对卡尔曼滤波算法进行改进,通过收集前N帧的先验信息对下一帧进行约束矫正提高了系统的稳定性。利用图像的二维坐标信息结合三维空间的坐标信息,使用PnP算法获得相机的位姿,利用OpenGL绘制虚拟物体,加载视图矩阵以达到注册的目的。实验表明,该算法可以稳定在40帧以上的均率运行,如果在稳定性方向降低要求,使用ORB算法代替用来观测的SURF算法还可以提高10帧左右的工作效率。总体上,本文提出的算法在光照变换、旋转变换、尺度变换方面都具备鲁棒性,并且具有优越的实时性能,同样适用于相关的位姿跟踪领域。

猜你喜欢
实时性卡尔曼滤波像素
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
像素前线之“幻影”2000
“像素”仙人掌
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
ÉVOLUTIONDIGAE Style de vie tactile
基于有色噪声的改进卡尔曼滤波方法
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
高像素不是全部