基于关键点及光流的平面物体跟踪算法
2021-04-29季皓宣烨梁鹏鹏柴玉梅王黎明
季皓宣烨,梁鹏鹏,柴玉梅,王黎明
(郑州大学信息工程学院,郑州 450001)
0 概述
平面物体跟踪算法在增强现实、监控、基于视觉的控制和重建等计算机视觉邻域有着广泛的应用。近年来,研究人员对平面物体跟踪算法的研究取得了较大进展,但现实中的遮挡、模糊、尺度变换等各类复杂场景,会影响跟踪器的跟踪性能[1]。因此,需要设计一个鲁棒的平面物体跟踪算法以适应现实中的复杂场景。
平面物体跟踪算法分为基于关键点[2-4]的平面物体跟踪算法和基于区域[5-7]的平面物体跟踪方法。基于区域的方法直接使用图像中像素点的外观,并通过优化目标物体与输入图像之间的相似度度量确定目标物体的位置,这类方法容易受到尺度变换、部分遮挡以及快速移动等扰动因子的干扰[8]。而基于关键点的方法可以视作图像之间检测到的关键点的匹配问题,通过将目标物体描述为一组关键点以及带有关键点标识的描述符集合,使得这类方法能够捕捉到关键点及其局部区域外观的变化,从而能够充分探索目标物体本身的结构信息,使基于关键点的方法能够使图像在受到旋转、光照以及视角变换等扰动因子下具备不变性[9]。此外,由于这类方法在跟踪过程中仅利用部分关键点匹配就能得到良好的跟踪结果,因此基于关键点的平面物体跟踪算法适合目标物体被部分遮挡的情况。相较于基于区域的方法,基于关键点的方法更能够适应复杂场景下的平面物体跟踪。
为进一步提高在各类复杂场景下基于关键点的平面物体跟踪算法的鲁棒性,本文提出一种基于关键点并融合光流的平面物体跟踪算法。对目标物体与输入图像分别检测关键点以及带有关键点标识的描述符,通过最近邻匹配方法建立目标物体与输入图像之间的关键点匹配集合,利用光流法计算图像序列中目标物体关键点的光流,计算出目标物体的关键点在当前图像中的位置,得到图像之间关键点的对应关系。通过相应的惩罚系数,由加权平均的策略将已得到的两组关键点对应关系进行融合,得出修正后目标物体与输入图像之间的关键点匹配集合,通过鲁棒的几何验证方法估计目标物体相对于输入图像的单应性变换,从而得出当前图像中目标物体的位置,并在POT[10]数据集上进行实验证明。
1 相关工作
1.1 基于关键点的平面物体跟踪算法
通过局部描述符寻找图像间的关键点对应关系,是基于关键点的平面物体跟踪算法的核心。该方法的目的是设计更健壮的局部描述符,并探寻利用距离度量改善描述符匹配。文献[4]将关键点匹配问题转换为分类问题,在进行分类器的训练时,将一个关键点的外观集合当作一个类用以训练分类器,因此,计算的开销转移到训练阶段的方法能够快速地执行关键点的分类。文献[11]使用朴素贝叶斯分类框架来表达关键点识别问题,通过数百个简单的二进制特征描述关键点邻域图像斑块,并使用分类器计算每个关键点类别的后验概率。为了在跟踪过程中利用空间和时间的一致性,文献[12]通过一个度量学习驱动方法学习了一个鲁棒的基于关键点外观的模型。文献[13]对SIFT[2]和FERNS[11]进行改进,使它们能够在移动设备上进行实时跟踪。为充分探索对象的结构信息,减少各种扰动因素的干扰,文献[8]提出了基于图的跟踪器Gacker,文献[14]将关键点匹配和变换估计结合到一个统一的框架中,并且采用线性结构化支持向量机(SVM)使对象模型快速适应给定的环境。
1.2 光流法
光流法是一种利用光流方程求解目标在图像平面上运动参数的方法。基于光流的跟踪方法[15]由于高效的特性而受到广泛的关注。按照理论基础与数学方法的区别,文献[16]将光流计算技术分为基于梯度的方法、基于区域匹配的方法、基于能量的方法和基于相位的方法4 种。基于梯度的方法称为微分法,利用时变图像灰度的时空微分计算像素点的速度矢量,具体代表为Horn-Schunck 光流计算方法[17],该方法通过在光流基本约束方程的基础上附加全局平滑假设,从而计算出光流场。文献[18]采用有条件的平滑约束,通过加权矩阵的控制对梯度进行不同的平滑处理。针对多运动的估计问题,文献[19]提出了分段平滑的方法。基于区域匹配的方法[20-21]通过定位相似区域,由相似区域的位移计算光流,通过对图像序列进行时空滤波处理,使基于能量的方法[15,22]适于均匀的流场。文献[23]提出了基于相位的方法,根据与带通速度调谐滤波器输出中的等相位轮廓相垂直的瞬时速度来定义分速度,使带通滤波器按照尺度、速度和定向来分离输入信号。针对大位移在弱纹理情况下的光流信息计算误差较大的问题,文献[24]提出一种基于改进V1-MT 前馈模型的光流计算方法,能在大位移、弱纹理情况下更为准确地计算光流信息。近年来,利用神经网络建立的光流计算技术[25-26]取得了广泛的关注与研究。
2 基于关键点并融合光流的跟踪过程
在实现本文算法的过程中,对于基于关键点的平面物体跟踪算法的选取,由于基于SIFT[2]的平面物体跟踪算法是这类方法中的一个经典的方法,并且在平面物体跟踪任务中具有良好的表现[10],因此本文将目标物体的SIFT[2]关键点处的光流引入基于SIFT[2]的平面物体跟踪算法中。
基于关键点并融合光流的平面物体跟踪算法的主要思想是根据相应的惩罚系数,对由SIFT[2]和光流法建立的图像间的两组对应关系,通过加权平均的方式进行融合,生成最终的对应关系。这两个惩罚系数会根据不同算法在同一个有序图像序列下的表现,增强或削弱其对修正后匹配点位置的贡献。
2.1 基于SIFT 的关键点匹配集合
对输入的带有目标物体M的图像序列I,需要使用SIFT[2]构建I中的图像与M之间的关键点匹配集合。对目标物体M,由高斯差分函数来识别潜在的对于尺度以及旋转不变的关键点。首先通过图像的尺度变换以及高斯差分生成高斯差分金字塔,寻找极值点确定候选关键点。然后通过泰勒展开去除低对比度的特征点,并由海森(Hessian)矩阵消除边缘的响应点。由上述方法对M构建关键点集合K0,以K0中每个关键点为中心采样周围16×16 作为特征区域,计算区域内每个像素点的梯度幅值与方向,统计个数最多的方向为该关键点的主方向,将坐标轴旋转至主方向,随后将每个特征区域分为4×4 的子域,每个子域计算8 个方向(45°,90°,…,360°)的梯度方向直方图,通过绘制每个梯度方向的累加值,形成一个种子点,这样对16 个子域生成16 个包含8 个方向向量的种子点,这样就生成了128 维的SIFT 特征向量,经过归一化后生成关键点的描述符集合D0,构建元组(K0,D0)。
为便于说明基于SIFT 的匹配点集合的构建过程,以图像序列I中的第i张图像Ii为例。用SIFT 算法提取Ii的关键点集合KIi及存储关键点标识的描述符集合DIi,构建元组(KIi,DIi)。对D0中的第m个描述符D0,m以欧式距离作为相似度度量,采用暴力匹配的方式,找出DIi中与D0,m最相似的描述符DIi,n,由关键点的标识(m,n)得到匹配的关键点对(K0,m,KIi,n),可以表示M与Ii之间一对匹配的关键点。随后将元素(K0,m,KIi,n)送入关键点匹配集合中。重复上述过程直至遍历K0中所有的元素。至此,对图像Ii构建出基于SIFT 的关键点匹配集合。
2.2 融合光流的关键点匹配集合修正
本文使用Lucas-Kanade[27]算法计算目标物体的关键点集合K0中每一个关键点的光流,该算法基于亮度不变假设和邻域光流相似假设两个不变性假设。基于上述两个假设,对时刻t时的图像函数Img(x,y,t)建立光流方程,由最小二乘法可得近似解:
其中,Img 表示整幅图像,Imgx、Imgy、Imgt分别表示Img 对x、y、t的偏导数,由式(1)得出(Δx,Δy),表示在时刻t时x、y方向的速度。
对有序图像序列I,有第一张图像I0以及预先指定的目标物体的关键点集合K0,对光流法F,有LI1=F(K0),LI2=F(LI1),…,LIn=F(LIn-1),其中,LIn为In中与K0对应的点的集合,与K0中的坐标是一一对应的。同理,对图像Ii,由上述过程得出的点的集合LIi,由LIi与K0构建对应关系:
其中,Ind(x)为指示函数,当x成立时,Ind(x)=1,否则Ind(x)=0,Δ(a,b)表示a、b之间的欧氏距离。
为计算λ1、λ2的值,本文基于以下的观察:在SIFT进行平面物体跟踪的过程中,图像序列中的前N(N较小)张图像所预测的跟踪框通常是可靠的。基于该观察对图像序列中的前N张图像,计算这些图像中目标物体的单应性变换矩阵。由K0中元素的位置,通过透视变换得到变换后的点TruthIi。此时,记CL为仅使用Lucas-Kanade 进行关键点对应时发生错误(Δ(LIi,m,TruthIi,m)>μ1r)的次数,CS为仅使用SIFT 进行关键点匹配时发生错误(Δ(KIi,n,TruthIi,m)>μ1r)的次数。对(λ1,λ2)的值,由式(4)计算:
通过式(3)、式(4)可以得出修正后的匹配点集合ςIi。由鲁棒的矩阵估计方法,对ςIi计算单应性矩阵HIi,由HIi与序列I中第1 张图像中目标物体M的标注点,通过透视变换得出图像Ii中目标物体的位置预测值RIi,即为Ii中目标的跟踪结果。算法1 描述了基于关键点并融合光流的平面物体跟踪算法对输入图像序列中目标物体M的跟踪过程。
算法1基于关键点并融合光流的平面物体跟踪算法
3 实验
通过实验在公开数据集上评测了本文提出的算法(SIFT+OF),并与SIFT[2]、FERNS[11]、SURF[3]、SOL[14]、GPF[28]、SCV[6]、ESM[7]、GO-ESM[20]、IC[5]、L1APG[29]和IVT[30]11 个经典算法进行了比较。
3.1 数据集
实验所用数据集为POT 数据集[10],该数据集对30 个物体的7 种运动状态进行采集,这7 种运动状态分别是尺度变换、旋转、透视失真、运动状态的模糊、遮挡、出视野和无限制移动。POT 数据集中每张图像的像素为1 280×720,有52 500 张图像标注了目标物体4 个角点的坐标,由于数据集中的图像序列均为野外场景拍摄,因此可以很好地模拟实际应用中复杂多变的环境。
3.2 评价指标
按照文献[10]中的评测办法,以校正误差作为评价指标,该指标基于物体的4 个角点,计算跟踪器预测的跟踪结果与真实值之间的欧氏距离的平均值,如式(5)所示:
其中,xi是跟踪器预测的目标物体的4 个角点坐标,为真实标注的目标物体4 个角点的坐标。
通过精度图反映跟踪器的质量[31],它表示校正误差eAL小于阈值tp的帧所占的百分比。
3.3 实验结果与分析
本次实验环境为Ubuntu16.04 系统,使用OpenCV3.2.0 设计实现,实验设备为CPU:Intel Core i7-7700HQ CPU,内存16 GB。实验参数设置为阈值μ1=1,μ2=3,半径r=3,N=10。为验证SIFT 与光流融合的平面物体跟踪算法(SIFT+OF)的有效性,本文实验评测了SIFT+OF 在平面物体跟踪任务[10]中的跟踪精度以及跟踪速度。
3.3.1 平面物体跟踪任务
本节评估了SIFT+OF 在POT 数据集[10]上的跟踪精度,并与11个经典的平面物体跟踪算法[2-3,5-7,11,14,20,28-30]的跟踪精度进行了比较。其中,除SIFT+OF 外,其余算法的结果均引用文献[10]中的评测结果。图1 为12 种算法在7 种运动状态下的跟踪精度图以及所有状态下的平均结果,其中tp为校正误差阈值。表1 为校正误差阈值tp=5 时的跟踪精度,其中最优值加粗表示。
图1 不同算法在POT 数据集中的跟踪精度Fig.1 Tracking accuracy of different algorithms in the POT dataset
表1 校正误差阈值为5 时不同算法在POT 数据集中的跟踪精度Table 1 Tracking accuracy of different algorithms in the POT dataset when the correction error threshold is 5
实验结果表明,将SIFT 与光流融合的平面物体跟踪算法(SIFT+OF)优于基于SIFT[2]的平面物体跟踪算法。特别地,在尺度变换(图1(a)、表1)、透视失真(图1(c)、表1)状态下取得最好的效果,运动模糊(图1(d)、表1)优于基于SIFT 的平面物体跟踪算法。从整体表现来看,在校正误差阈值为5 时,SIFT+OF 在POT 数据集[14]中的跟踪精度与基于SIFT[2]的平面物体跟踪算法相比,提高了4.4%。
3.3.2 跟踪速度对比
由于SIFT+OF 与基于SIFT[2]的平面物体跟踪算法相比增加了额外计算,为探究SIFT+OF 的运行速度,本文对SIFT+OF 与11 种经典的跟踪算法的运行速度进行测评。表2 统计了各个算法的跟踪速度。
表2 不同算法在POT 数据集中的跟踪速度Table 2 Tracking speed of different algorithms on the POT dataset(frames·s-1)
从表2 可以看出,对FERNS[11]而言,由于计算的开销转移至训练阶段,因此具有更高的运行速度,而SIFT+OF 与SIFT[2]具有相似的运行速度,更具体地,SIFT[2]的跟踪速度为1.859 frames/s,略快于SIFT+OF 的1.845 frames/s。因此,可得出SIFT+OF 的运行速度稍慢于SIFT[2]算法。综合上述的实验结果及分析可以得出,本文提出的算法(SIFT+OF)能够在平面物体跟踪的评测任务中取得良好的表现,且具有较高的运行速度。
4 结束语
本文提出一种基于关键点并融入光流的平面物体跟踪算法。将Lucas-Kanade 算法计算的目标物体关键点的运动信息融入SIFT 算法特征匹配的过程中,根据加权平均策略对目标物体与输入图像关键点的对应关系进行调整,从而得出目标与输入图像关键点之间的对应关系。利用鲁棒的几何验证方法计算目标物体在当前图像中的单应性变换,基于该变换矩阵,通过目标物体关键点的角点坐标由透视变换得出跟踪结果。基于POT 数据集52 500 张带标注图像的实验结果表明,该算法相比经典的跟踪算法能够取得更高的跟踪精度。下一步研究是将基于深度学习的方法与本文提出的方法相结合,在保证跟踪速度的同时,提高对图像序列中目标物体的跟踪精度。