CN103646391B - 一种针对动态变化场景的实时摄像机跟踪方法 - Google Patents

一种针对动态变化场景的实时摄像机跟踪方法 Download PDF

Info

Publication number
CN103646391B
CN103646391B CN201310462592.4A CN201310462592A CN103646391B CN 103646391 B CN103646391 B CN 103646391B CN 201310462592 A CN201310462592 A CN 201310462592A CN 103646391 B CN103646391 B CN 103646391B
Authority
CN
China
Prior art keywords
frame
point
key frame
scene
characteristic point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310462592.4A
Other languages
English (en)
Other versions
CN103646391A (zh
Inventor
章国锋
鲍虎军
谭伟
刘浩敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Shangtang Technology Development Co Ltd
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310462592.4A priority Critical patent/CN103646391B/zh
Publication of CN103646391A publication Critical patent/CN103646391A/zh
Application granted granted Critical
Publication of CN103646391B publication Critical patent/CN103646391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种针对动态变化场景的实时摄像机跟踪方法,该方法在不断动态变化的场景中也能进行稳定地跟踪和求解摄像机姿态;首先进行特征匹配及摄像机参数估计,然后进行场景的更新,最后,该方法在实际应用时实行前后台多线程协同运行,前台线程用于对每一帧进行特征点匹配和摄像机运动参数的估计,后台线程不断进行KD树、关键帧和三维点云的维护和更新,并联合优化关键帧的摄像机运动参数和三维点位置。在场景发生动态变化的情况下,本发明仍能实时地进行摄像机跟踪,本发明在跟踪准确性、稳定性以及运行效率等方面明显优于现有的摄像机跟踪方法。

Description

一种针对动态变化场景的实时摄像机跟踪方法
技术领域
本发明涉及一种实时摄像机跟踪方法,尤其涉及一种动态变化场景中的实时摄像机跟踪方法。
背景技术
摄像机跟踪技术是计算机视觉领域的重要技术之一,其在机器人导航和增强现实等领域中有着极其重要的应用。
摄像机跟踪技术的难点在于:1)大多数方法都是一帧一帧的对特征点进行跟踪,导致误差逐帧累积。如果某一帧的跟踪失败了,那么就将无法继续进行摄像机的跟踪,必须对相机重新定位。有一些方法提出使用随机分类器或者Harrwaveltes来解决摄像机的重定位问题,Chekhlov等人提出使用SIFT特征点来进行特征点的跟踪,但是却导致了计算复杂性增大。为了降低计算复杂性,有些方法简化了SIFT检测算法,但是随之而来的是丢失了SIFT特征点的一些不变性特征;2)目前现有的大多数摄像机跟踪算法都只能够处理静态场景,如果场景发生了动态变化,就会导致跟踪失败。但是,真实的自然场景往往不断变化,在很多的应用中需要进行处理的场景也都是动态变化的,因此现有的摄像机跟踪方法都很难对这些场景进行处理。3)在跟踪的过程中,现有的一些方法由于没有及时地对三维场景结构进行更新及优化,导致重建出的三维模型很快就无效,进而导致了摄像机跟踪的失败。
当下,有很多摄像机跟踪方法,本专利所属方法称为SLAM(SimultaneouslyLocalization and Mapping)。
SLAM是指实时地定位摄像机位置并获得摄像环境的空间地图的方法,它是实现制造自主移动机器人的关键算法之一。尽管该方法已经取得了巨大的进步,但是仍然存在着很多的挑战和困难。目前,现有算法能够处理静态、规模较小的场景,但是如何对动态的、规模较大的场景进行实时定位和地图构建仍然有待深究。
1.基于过滤器的SLAM
该方法的代表是MonoSLAM(Andrew J.Davison,Ian D.Reid,NicholasMolton,Olivier Stasse:MonoSLAM:Real-Time Single Camera SLAM.IEEE Trans.Pattern Anal.Mach.Intell.29(6):1052-1067,2007)它是实时摄像机跟踪领域的先驱。该方法首先对一个大小已知的场景中的人工标记进行检测,从而初始化场景,然后逐帧进行类KLT特征点的检测。通过扩展卡尔曼滤波,场景中所有标记的位置以及摄像机参数紧密相关,并被约束到一个线性方程组中,每次输入一个新帧时,都同步更新方程组。尽管卡尔曼滤波是非常高效的,但是该方法的计算复杂度依旧很高(O(N2),N是场景中标记的数目),从而场景中标记的数目只能是几百个,并且如果不使用巧妙的特征点选取方法(比如ZongyingShi,Zhibin Liu,Xianliang Wu,WenliXu:Feature selection for reliable dataassociation in visual SLAM.Mach.Vis.Appl.24(4):667-682,2013),就只能够处理一个很小的空间。Eade和Drummond(Ethan Eade,Tom Drummond:ScalableMonocular SLAM.CVPR(1)2006:469-476)提出的方法采用了FastSLAM-type粒子滤波(Michael Montemerlo,Sebastian Thrun,Daphne Koller,Ben Wegbreit:FastSLAM2.0:An Improved Particle Filtering Algorithm for SimultaneousLocalization and Mapping that Provably Converges.IJCAI2003:1151-1156)和自顶向下的搜索方法,从而能够实时的处理数百个标记。
2.基于运动推断结构(SfM)的SLAM
基于过滤器的SLAM方法边缘化当前帧以前帧的摄像机参数,并随时间收集概率分布信息,基于关键帧(即运动推动结构)的方法保持全局集束调整的优化方法,但是在计算时必须选择少量过去帧用来处理,通过比较(HaukeStrasdat,J.M.M.Montiel,Andrew J.Davison:Visual SLAM:Why filter?Image VisionComput.30(2):65-77(2012)),基于关键帧的方法要优于基于过滤器的实时跟踪方法,本专利所保护的方法属于基于关键帧的方法。运动推断结构(SfM)技术可同时恢复每帧对应的相机运动及场景中稀疏的三维点位置,然而其中的核心算法——集束调整(Bundle Adjustment,BA),其计算复杂度非常大,从而严重的影响了处理的效率。近些年来,大量的优化算法都致力于对集束调整过程进行加速,而Klein和Murray独辟蹊径,提出一种并行跟踪和重建模型PTAM(Georg Klein,David W.Murray:Parallel Tracking and Mapping for Small ARWorkspaces.ISMAR2007:225-234)。该方法仍使用传统的集束调整算法,但将实时跟踪及集束调整分配到两个线程同时运行。前台线程对每一帧进行特征点的匹配以及摄像机参数的求解,后台线程不断的对场景的三维结构进行优化。
3.动态场景中的SLAM
为了处理动态变化的场景,需要在静态场景中判别出动态运动的物体。Hahnel(DirkRudolph Triebel,Wolfram Burgard,Sebastian Thrun:Mapbuilding with mobile robots in dynamic environments.ICRA2003:1557-1563)和Bibby(Charles Bibby,Ian D.Reid:Simultaneous Localisation and Mapping inDynamic Environments(SLAMIDE)with Reversible Data Associa.Robotics:Science and Systems2007)提出了使用期望最大化方法来检测场景中的动态物体,但是如果场景变化比较频繁,则场景中会出现很多不必要的三维特征点,增加了内存和计算的负担,同时也无法保证鲁棒性。Blaser(Gabriele Bleser,HaraldWuest,Didier Stricker:Online camera pose estimation in partially known anddynamic scenes.ISMAR2006:56-65)提出了一个基于SLAM的CAD模型,在该方法中,对于场景中的三维点,如果在超过半数以上的输入帧中都可以跟踪到该三维点,则保留该三维点,否则删除该三维点。该方法中的三维点都是分别通过三角化求得,因此得到的场景结构较之于基于SfM的PTAM方法准确性要差。Shimamura(J.Shimamura,M.Morimoto,and H.Koike.Robust vSLAMfordynamic scenes.In MVA,pages344347,2011.)基于PTAM提出了vSLAM方法,该方法在获得摄像机参数估计之后,对所有的无效点进行光流估计,并通过GMM方法对光流进行聚类,如果同一个类中的无效点的数目超过了一个阀值,那么将这个无效点从场景中删除。Blaser和Shimamura提出的方法都可以保证场景的紧凑和准确,但是如果存在较大的遮挡,标准的RANSAC方法很快就无法准确的估计摄像机参数,此外,vSLAM没有删除无效的关键帧,因此被已经存在的无效关键帧所遮挡的新物体的三维点就无法再添加到场景中。
发明内容
本发明的目的在于针对现有技术的不足,提供一种针对动态变化场景的实时摄像机跟踪方法。
本发明的目的是通过以下技术方案来实现的:一个针对动态变化场景的实时摄像机跟踪方法,它包括以下步骤:
(1)特征点匹配及摄像机参数估计,使用基于不变量的特征点来表达场景特征,每个场景点对应一个特征描述量,使用KD树组织所有场景特征,对每帧图像提取特征点并在KD树中搜索特征匹配,随后进行摄像机参数的估计;
(2)场景更新,使用关键帧及场景特征点对应的三维点云表达场景几何信息。通过添加关键帧和三维点扩充场景,若已有关键帧的对应场景发生变化,删除变化的关键帧和变化的三维点。
(3)前后台多线程协同运行,前台线程用于对每一帧进行特征点匹配和摄像机运动参数的估计,后台线程不断进行KD树、关键帧和三维点云的维护和更新,并联合优化关键帧的摄像机运动参数和三维点位置。
本发明的有益效果是:
1、本发明能够处理多种动态变化的场景,并且对于场景中光照发生变化以及存在无纹理区域的情况,仍然能够鲁棒地获得摄像机参数的估计;
2、本发明使用不变量特征点来表达场景,使用KD树组织所有场景特征,提取特征点并进行匹配,同时对KD树进行及时的更新和维护,从而确保了跟踪的准确性;
3、本发明实时的对关键帧以及三维场景进行更新,从而确保能够准确的重建三维场景以及摄像机跟踪;
4、本发明采用了多线程协同运行的方法,前台线程并行地对输入帧进行特征点的提取、匹配以及摄像机参数估计,后台线程并行地进行关键帧和三维场景的更新以及集束调整,提高了程序运行的速度;
5、最后,本发明在针对动态变化场景的摄像机参数估计的应用中,无论时间性能还是跟踪的准确性都要优于现有的方法。
附图说明
图1是对于动态场景中鲁棒的实时三维重建和摄像机跟踪方法的流程图;
图2是实施例中应用本发明的方法处理的视频图像的前后对照图;
图3是实施例中应用本发明的方法处理的视频图像的前后对照图;
图4是实施例中应用本发明的方法处理的视频图像的前后对照图;
图5是实施例中应用本发明的方法处理的视频图像的前后对照图。
具体实施方式
本发明针对动态变化场景的实时摄像机跟踪方法较之于现有的摄像机跟踪方法进行了如下改进:1)利用GPU技术进行特征描述量提取以及匹配,并且对KD树进行及时的更新,确保跟踪的准确性;2)实时地进行关键帧以及三维场景的更新,提高三维重建的准确性,进而提高跟踪的准确性;3)前后台多线程并行,加快了运行的速度。
本发明的实施步骤如下:
1.特征点匹配及摄像机参数估计。使用基于不变量的特征点(如SIFT、SURF等)来表达场景特征,每个场景点对应一个特征描述量,使用KD树组织所有场景特征,对每帧图像利用GPU提取SIFT特征点并在KD树中搜索特征匹配,随后进行摄像机参数的估计。具体步骤包括:
1.1.使用基于不变量的特征点(如SIFT:David G.Lowe:Distinctive ImageFeatures from Scale-Invariant Keypoints.International Journal of Computer Vision60(2):91-110,2004;或SURF:Herbert Bay,Andreas Ess,TinneTuytelaars,Luc J.Van Gool:Speeded-Up Robust Features(SURF).Computer Vision and ImageUnderstanding110(3):346-359,2008)来表达场景特征,每个场景点对应一个特征描述量,使用KD树(Sunil Arya,David M.Mount:Approximate NearestNeighbor Queries in Fixed Dimensions.SODA1993:271-280)组织所有场景特征。构造两棵存储全局场景特征的KD树T1、T2,用于全局特征点描述量和图像特征点描述量间的匹配,T1用于实时匹配,T2用于动态更新。
1.2.根据方法(David Nistér:An Efficient Solution to the Five-Point RelativePose Problem.IEEE Trans.Pattern Anal.Mach.Intell.26(6):756-777,2004)选定两帧初始关键帧,对场景结构、运动以及KD树等进行初始化。
1.3.对每帧图像利用GPU抽取SIFT特征点,利用SIFT特征描述量在T1中搜索匹配。对于特征点x,假设T1中它的最相邻的两个描述量是N1(x)和N2(x),使用下面的公式作为匹配的置信度:
c = | | p ( x ) - p ( N 1 ( x ) ) | | | | p ( x ) - p ( N 2 ( x ) ) | | ;
其中,p(x)表示特征点x的描述量。如果c<0.6,将x和N1(x)作为一对匹配点,由此得到一系列场景特征点和当前帧图像特征点之间的匹配。
1.4.根据步骤1.3得到一系列场景特征点和当前帧图像特征点之间的匹配,通过最小化目标函数估计出当前帧摄像机运动参数(R表示旋转矩阵,t表示平移向量,π表示投影函数(作用是将三维空间点投影到二维空间,获得二维空间点位置,即π(X,Y,Z)=(x,y),其中x=X/Z,y=Y/Z)),xi表示特征点,K表示摄像机内置参数,Xi表示三维点),通过RANSAC算法(MartinA.Fischler,Robert C.Bolles:Random Sample Consensus:A Paradigm for ModelFitting with Applications to Image Analysis and Automated Cartography.Commun.ACM24(6):381-395,1981)剔除误匹配,将正确的匹配定义为全局匹配集合G。
2.场景更新。使用关键帧及场景特征点对应的三维点云表达场景几何信息。通过添加关键帧和三维点扩充场景,若已有关键帧的对应场景发生变化,删除变化的关键帧和变化的三维点。
2.1.对于当前输入帧,经过步骤1后,如果可以成功地估计摄像机参数,并且全局匹配集合G中至多有m1(例如m1可以取80)个匹配点,则将当前帧作为潜在关键帧;
2.2.选取同当前帧公共特征点最多的五个关键帧,并在当前帧和该5个关键帧之间进行特征点匹配(对于当前帧中已经匹配的特征点不需要再进行匹配),为了加快匹配的速度,为选取的5帧关键帧分别建立一棵KD树T,并通过极线几何约束(Zhengyou Zhang,RachidDeriche,Olivier D.Faugeras,Quang-TuanLuong:A Robust Technique for Matching two Uncalibrated Images Through theRecovery of the Unknown Epipolar Geometry.Artif.Intell.78(1-2):87-119,1995)除去无效的特征点以提高匹配的准确性。根据当前帧同5个关键帧之间的匹配点构成特征点轨迹,对于每一个特征点轨迹通过三角化(Triangulation)方法,即求解下述方程来估计该轨迹的三维点:
X i = min X i &Sigma; j &Element; &phi; ( x i ) | | x ij - &pi; ( K ( R j X i + t j ) ) | | 2 ;
其中,Xi表示三维点,φ(xi)表示xi出现的帧集合,xij表示特征点,Rj表示旋转矩阵,tj表示平移向量,π表示投影函数,K表示摄像机内置参数。如果估计得到的三维点数量超过m2(一般设置在50到100之间,例如取100),则将当前帧作为新的关键帧加入到关键帧集合中,将得到的新的三维点Xi加入到场景中,并将当前帧中的特征点选作新的参考特征点加入到后台KD树T2中,同时用T2更新T1
2.3.若当前输入帧被选作新的关键帧,接下来通过比较当前帧和关键帧的Z轴方向,选取那些方向差异小于某个阀值的关键帧,随后进一步通过比较摄像机参数(旋转矩阵和平移向量)确定5个与当前关键帧最相邻的关键帧。
2.4.对于每个选择的关键帧,首先将其同当前关键帧进行颜色直方图比较,将颜色直方图的差异定义为R、G、B三个通道直方图欧式距离之和,如果差异大于1,表明图像中的一些区域很可能发生了改变,将关键帧中的特征点x对应的三维点X投影到当前帧图像中,将投影位置记为x′。用V(X)来表示三维点X的状态,若X是无效三维点,则V(X)=0,否则,令V(X)=1。接下来对每一个选择的关键帧,通过比较特征点x和x′来判定X是否是有效的三维点。
2.5.将从X到关键帧和当前帧摄像机中心的视角方向分别记为nx和nx ',如果(τn通常设为cos(30°)),则认为特征点x在当前帧中被遮挡了或者发生了较大的透视变形,令V(X)=1,否则,进行下一步。
2.6.比较x和x′之间的颜色差异
D c ( X ) = min d &Sigma; y &Element; W ( x ) | I y - ( I y &prime; + d ) |
其中,W(x)表示以x为中心的局部窗口(例如W(x)可以取为高和宽都为11的窗口),y为W(x)中一个二维点,y'是根据X的深度以及摄像机参数估计得到的y在当前帧中的投影点,d是一个微小的平移向量,用来提高y'和y的匹配精度。通过对d进行局部搜索获得Dc(X)的最小值,此时如果Dc(X)小于某个阈值τc,继续维持V(X)的值为1,否则,表明x颜色发生了改变或者被遮挡了,进行下一步的比较。
2.7.查找在当前帧中同x′的距离不超过r1(例如r1可以取20)个像素的跟踪到的特征点,并标记为φ(x'),如果φ(x')为空,表明X被运动物体所遮挡了,保持V(X)的值不变;如果φ(x')不为空,并且对于φ(x')中任何一个特征点y,都有则将V(X)设为0(其中X是x'对应的三维点,Xy是y所对应的三维点,和ZX分别表示Xy和X的深度值),表明X一定发生了变化;如果φ(x')不为空,且存在y,使得进行下一步的比较。
2.8.对φ(x')中每一个特征点y,将X和Xy分别投影到X首次出现的关键帧上,并将投影点分别记为xp和yp,如果存在至少一个特征点y,使得|xp-yp|<r2(例如r2可以取20),则将V(X)设为0,表明X发生了变化(光照变化或者位置改变);否则,保持V(X)为1。
2.9.对于每一个关键帧,如果该帧上的无效三维点和同其它关键帧所共有的特征点的数量超过了该帧像素点总数的90%,那么将该关键帧标记为无效关键帧。
3.前后台多线程协同运行。前台线程用于对每一帧进行特征点匹配和摄像机运动参数的估计,后台线程不断进行KD树、关键帧和三维点云的维护和更新,并联合优化关键帧的摄像机运动参数和三维点位置。
3.1.前台线程以流水线的方式对每一个输入帧并行处理,流水线包含4个处理单元,第一单元由摄像头获取图像并作图像滤波和畸变校正;第二单元抽取特征点;单元3进行特征点的匹配,以及及摄像机参数的求解;单元4根据跟踪结果进行增强现实的绘制。
3.2.后台线程包含两条流水线,第一流水线包含2个处理单元,第一单元判断输入帧是否为关键帧,如果为关键帧则与已有关键帧进行局部匹配,并添加新的场景点;第二单元检测和删除变化的关键帧和三维点;第二流水线同样也包含2个处理单元,第一单元用来进行选取局部关键帧集合,局部关键帧集合包含当前关键帧和与当前关键帧存在公共匹配点的已有关键帧,联合优化局部关键帧的摄像机运动参数及局部关键帧可见的三维点位置,其他关键帧的相机运动参数和及三维点位置保持不变,即局部集束调整(Local Bundle Adjustment);第二单元用来联合优化所有关键帧的摄像机运动参数及所有三维点位置,即全局集束调整(Global Bundle Adjustment)。
实施例
针对一组连续动态变化的视频序列(如图2(a)、图2(a)、图4(a)、图5(a)),该视频序列中场景内桌面上的物体摆放方式以及位置发生了显著的变化,使用本专利所提出的方法进行摄像机参数估计。
如图1所示,实施步骤如下:
1.特征点匹配及摄像机参数估计。使用SIFT特征描述量表达场景特征,每个场景点对应一个特征描述量,使用KD树组织所有场景特征,对每帧图像利用GPU提取SIFT特征点并在KD树中搜索特征匹配,随后进行摄像机参数的估计,包括如下步骤:
1.1.使用SIFT特征描述量(David G.Lowe:Distinctive Image Features fromScale-Invariant Keypoints.International Journal of Computer Vision60(2):91-110(2004))表达场景特征,每个场景点对应一个特征描述量,使用KD树(SunilArya,David M.Mount:Approximate Nearest Neighbor Queries in Fixed Dimensions.SODA1993:271-280)组织所有场景特征。构造两棵存储全局场景特征的KD树T1、T2,用于全局特征点描述量和图像特征点描述量间的匹配,T1用于实时匹配,T2用于动态更新。
1.2.根据方法(David Nistér:An Efficient Solution to the Five-Point RelativePose Problem.IEEE Trans.Pattern Anal.Mach.Intell.26(6):756-777(2004))选定两帧初始关键帧,对场景结构、运动以及KD树等进行初始化。
1.3.对每帧图像利用GPU抽取SIFT特征点,利用SIFT特征描述量在T1中搜索匹配。对于特征点x,假设T1中它的最相邻的两个描述量是N1(x)和N2(x),使用下面的公式作为匹配的置信度
c = | | p ( x ) - p ( N 1 ( x ) ) | | | | p ( x ) - p ( N 2 ( x ) ) | |
其中,p(x)表示特征点x的描述量。如果c<0.6,将x和N1(x)作为一对匹配点,由此得到一系列场景特征点和当前帧图像特征点之间的匹配。
1.4.根据步骤1.3.得到一系列场景特征点和当前帧图像特征点之间的匹配,通过最小化目标函数估计出当前帧摄像机运动参数(R表示旋转矩阵,t表示平移向量,π表示投影函数(作用是将三维空间点投影到二维空间,获得二维空间点位置,即π(X,Y,Z)=(x,y),其中x=X/Z,y=Y/Z)),xi表示特征点,K表示摄像机内置参数,Xi表示三维点),通过RANSAC算法(Martin A.Fischler,Robert C.Bolles:Random Sample Consensus:A Paradigm forModel Fitting with Applications to Image Analysis and Automated Cartography.Commun.ACM24(6):381-395,1981)剔除误匹配,将正确的匹配定义为全局匹配集合G。
2.场景更新。使用关键帧及场景特征点对应的三维点云表达场景几何信息。通过添加关键帧和三维点扩充场景,若已有关键帧的对应场景发生变化,删除变化的关键帧和变化的三维点,包括如下步骤:
2.1.对于当前输入帧,经过步骤1后,如果可以成功地估计摄像机参数,并且全局匹配集合G中至多有80个匹配点,则将当前帧作为潜在关键帧;
2.2.选取同当前帧公共特征点最多的五个关键帧,并在当前帧和该5个关键帧之间进行特征点匹配(对于当前帧中已经匹配的特征点不需要再进行匹配),为了加快匹配的速度,为选取的5帧关键帧分别建立一棵KD树T,并通过极线几何约束(Zhengyou Zhang,RachidDeriche,Olivier D.Faugeras,Quang-TuanLuong:A Robust Technique for Matching two Uncalibrated Images Through theRecovery of the Unknown Epipolar Geometry.Artif.Intell.78(1-2):87-119,1995)除去无效的特征点以提高匹配的准确性。根据当前帧同5个关键帧之间的匹配点构成特征点轨迹,对于每一个特征点轨迹通过三角化(Triangulation)方法,即求解方程来估计该轨迹的三维点:
X i = min X i &Sigma; j &Element; &phi; ( x i ) | | x ij - &pi; ( K ( R j X i + t j ) ) | | 2 ;
其中,Xi表示三维点,φ(xi)表示xi出现的帧集合,xij表示特征点,Rj表示旋转矩阵,tj表示平移向量,π表示投影函数,K表示摄像机内置参数。如果估计得到的三维点数量超过100,则将当前帧作为新的关键帧加入到关键帧集合中,将得到的新的三维点Xi加入到场景中,并将当前帧中的特征点选作新的参考特征点加入到后台KD树T2中,同时用T2更新T1
2.3.若当前输入帧被选作新的关键帧,接下来通过比较当前帧和关键帧的Z轴方向,选取那些方向差异小于某个阀值的关键帧,随后进一步通过比较摄像机参数(旋转矩阵和平移向量)确定5个与当前关键帧最相邻的关键帧。
2.4.对于每个选择的关键帧,首先将其同当前关键帧进行颜色直方图比较,将颜色直方图的差异定义为R、G、B三个通道直方图欧式距离之和,如果差异大于1,表明图像中的一些区域很可能发生了改变,将关键帧中的特征点x对应的三维点X投影到当前帧图像中,将投影位置记为x′。用V(X)来表示三维点X的状态,若X是无效三维点,则V(X)=0,否则,令V(X)=1。接下来对每一个选择的关键帧,通过比较特征点x和x′来判定X是否是有效的三维点。
2.5.将从X到关键帧和当前帧摄像机中心的视角方向分别记为nx和nx ',如果则认为特征点x在当前帧中被遮挡了或者发生了较大的透视变形,令V(X)=1,否则,进行下一步。
2.6.比较x和x′之间的颜色差异
D c ( X ) = min d &Sigma; y &Element; W ( x ) | I y - ( I y &prime; + d ) |
其中,W(x)表示以x为中心的局部窗口(例如W(x)可以取为高和宽都为11的窗口),y为W(x)中一个二维点,y'是根据X的深度以及摄像机参数估计得到的y在当前帧中的投影点,d是一个微小的平移向量,用来提高y'和y的匹配精度。通过对d进行局部搜索获得Dc(X)的最小值,此时如果Dc(X)小于某个阈值τc,继续维持V(X)的值为1,否则,表明x颜色发生了改变或者被遮挡了,进行下一步的比较。
2.7.查找在当前帧中同x′的距离不超过20个像素的跟踪到的特征点,并标记为φ(x'),如果φ(x')为空,表明X被运动物体所遮挡了,保持V(X)的值不变;如果φ(x')不为空,并且对于φ(x')中任何一个特征点y,都有则将V(X)设为0(其中X是x'对应的三维点,Xy是y所对应的三维点,和ZX分别表示Xy和X的深度值),表明X一定发生了变化;如果φ(x')不为空,且存在y,使得进行下一步的比较。
2.8.对φ(x')中每一个特征点y,将X和Xy分别投影到X首次出现的关键帧上,并将投影点分别记为xp和yp,如果存在至少一个特征点y,使得|xp-yp|<20,则将V(X)设为0,表明X发生了变化(光照变化或者位置改变);否则,保持V(X)为1。
2.9.对于每一个关键帧,如果该帧上的无效三维点和同其它关键帧所共有的特征点的数量超过了该帧像素点总数的90%,那么将该关键帧标记为无效关键帧。
3.前后台多线程协同运行。前台线程用于对每一帧进行特征点匹配和摄像机运动参数的估计,后台线程不断进行KD树、关键帧和三维点云的维护和更新,并联合优化关键帧的摄像机运动参数和三维点位置,包括如下步骤:
3.1.前台线程以流水线的方式对每一个输入帧并行处理,流水线包含4个处理单元,第一单元由摄像头获取图像并作图像滤波和畸变校正;第二单元抽取SIFT特征点;单元3进行特征点的匹配,以及及摄像机参数的求解;单元4根据跟踪结果进行增强现实的绘制。
3.2.后台线程包含两条流水线,第一流水线包含2个处理单元,第一单元判断输入帧是否为关键帧,如果为关键帧则与已有关键帧进行局部匹配,并添加新的场景点;第二单元检测和删除变化的关键帧和三维点;第二流水线同样也包含2个处理单元,第一单元用来进行选取局部关键帧集合,局部关键帧集合包含当前关键帧和与当前关键帧存在公共匹配点的已有关键帧,联合优化局部关键帧的摄像机运动参数及局部关键帧可见的三维点位置,其他关键帧的相机运动参数和及三维点位置保持不变,即局部集束调整(Local Bundle Adjustment);第二单元用来联合优化所有关键帧的摄像机运动参数及所有三维点位置,即全局集束调整(Global Bundle Adjustment)。
对于该实施例,场景中人将桌子上的物体的摆放位置进行了更改,本专利方法获得的跟踪结果如图2(b)、图3(b)、图4(b)、图5(b)所示,其中每一幅跟踪结果图像都对应于该图中(a)相应的输入帧,图中的圆点表示跟踪到的特征点,图中插入的卡通小人物、小狗以及鱼,这些都是用来表明跟踪结果的准确性的,可以发现它们在跟踪结果图中的位置在跟踪过程中能够做到保持不变,这表示跟踪的结果非常准确。对于实时的单目摄像机跟踪来说,这是一个非常具有挑战的例子,通过实验,比较发现:PTAM方法在初始时可以做到正确地进行摄像机跟踪,但是随着跟踪的进行和场景的不断变化,很快后续帧就无法做到准确跟踪;相比之下,本专利的方法却可以非常鲁棒地估计出摄像机参数,获得准确的跟踪结果,并对三维场景进行正确的绘制。

Claims (1)

1.一种针对动态变化场景的实时摄像机跟踪方法,其特征在于,它包括以下步骤:
(1)特征点匹配及摄像机参数估计:使用基于不变量的特征点来表达场景特征,每个场景点对应一个特征描述量,使用KD树组织所有场景特征,对每帧图像提取特征点并在KD树中搜索特征匹配,随后进行摄像机参数的估计;
(2)场景更新:使用关键帧,以及场景特征点对应的三维点云表达场景几何信息;通过添加关键帧和三维点扩充场景,若已有关键帧的对应场景发生变化,删除变化的关键帧和变化的三维点;
(3)前后台多线程协同运行:前台线程用于对每一帧进行特征点匹配和摄像机运动参数的估计,后台线程不断进行KD树、关键帧和三维点云的维护和更新,并联合优化关键帧的摄像机运动参数和三维点位置;
所述步骤(1)通过以下子步骤来实现:
(1.1)使用基于不变量的特征点来表达场景特征,每个场景点对应一个特征描述量,使用KD树组织所有场景特征;构造两棵存储全局场景特征的KD树T1、T2,用于全局特征点描述量和图像特征点描述量间的匹配,T1用于实时匹配,T2用于动态更新;
(1.2)选定两帧初始关键帧,对场景结构、运动以及KD树进行初始化;
(1.3)对每帧图像抽取特征点,利用其特征描述量在T1中搜索匹配;对于特征点x,假设T1中它的描述量最接近的两个特征点是N1(x)和N2(x),使用下面的公式作为匹配的置信度:
c = | | p ( x ) - p ( N 1 ( x ) ) | | | | p ( x ) - p ( N 2 ( x ) ) | |
其中,p(x)表示特征点x的描述量,p(N1(x))表示特征点N1(x)的描述量,p(N2(x))表示特征点N2(x)的描述量;如果c<0.6,将x和N1(x)作为一对匹配点,由此得到一系列场景特征点和当前帧图像特征点之间的匹配;
(1.4)根据步骤(1.3)得到一系列场景特征点和当前帧图像特征点之间的匹配,通过最小化目标函数估计出当前帧摄像机运动参数;其中,R表示旋转矩阵,t表示平移向量,π表示投影函数,其作用是将三维空间点投影到二维空间,获得二维空间点位置,即π(X,Y,Z)=(x,y),其中x=X/Z,y=Y/Z,xi表示特征点,K表示摄像机内置参数,Xi表示三维点,通过RANSAC算法剔除误匹配,将正确的匹配定义为全局匹配集合G;
所述步骤(2)通过以下子步骤来实现:
(2.1)对于当前输入帧,经过步骤(1)后,如果成功地估计摄像机参数,并且全局匹配集合G中至多有m1个匹配点,则将当前帧作为潜在关键帧,m1为自然数;
(2.2)选取同当前帧公共特征点最多的5个关键帧,并在当前帧和该5个关键帧之间进行特征点匹配,对于当前帧中已经匹配的特征点不需要再进行匹配,为了加快匹配的速度,为选取的5个关键帧分别建立一棵KD树T,并通过极线几何约束除去无效的特征点以提高匹配的准确性;根据当前帧同5个关键帧之间的匹配点构成特征点轨迹,对于每一个特征点轨迹xi,通过三角化方法,即求解下述方程来估计该轨迹的三维点:
X i = m i n X i &Sigma; j &Element; &phi; ( x i ) | | x i j - &pi; ( K ( R j X i + t j ) ) | | 2 ;
其中,Xi表示三维点,φ(xi)表示xi出现的帧集合,xij表示特征点,Rj表示旋转矩阵,tj表示平移向量,π表示投影函数,K表示摄像机内置参数;如果估计得到的三维点数量超过m2,50≤m2≤100,则将当前帧作为新的关键帧加入到关键帧集合中,将得到的新的三维点Xi加入到场景中,并将当前帧中的特征点选作新的参考特征点加入到后台KD树T2中,同时用T2更新T1
(2.3)若当前输入帧被选作新的关键帧,接下来通过比较当前帧和关键帧的Z轴方向,选取那些方向差异小于某个阈值的关键帧,随后进一步通过比较摄像机参数确定5个与当前关键帧最相邻的关键帧,所述摄像机参数为旋转矩阵和平移向量;
(2.4)对于每个选择的关键帧,首先将其同当前关键帧进行颜色直方图比较,将颜色直方图的差异定义为R、G、B三个通道直方图欧式距离之和,如果差异大于1,表明图像中的一些区域很可能发生了改变,将关键帧中的特征点x对应的三维点X投影到当前帧图像中,将投影位置记为x′;用V(X)来表示三维点X的状态,若X是无效三维点,则V(X)=0,否则,令V(X)=1;接下来对每一个选择的关键帧,通过比较特征点x和x′来判定X是否是有效的三维点;
(2.5)将从X到关键帧和当前帧摄像机中心的视角方向分别记为nx和nx',如果τn设为cos(30°),则认为特征点x在当前帧中被遮挡了或者发生了较大的透视变形,令V(X)=1,跳到步骤(2.9),否则,进行下一步;
(2.6)比较x和x′之间的颜色差异:
D c ( X ) = m i n d &Sigma; y &Element; W ( x ) | I y - ( I y &prime; + d &prime; ) |
其中,W(x)表示以x为中心的局部窗口,y为W(x)中一个二维点,y'是根据X的深度以及摄像机参数估计得到的y在当前帧中的投影点,Iy为关键帧在y处的像素颜色,I'y'+d为当前帧在y′+d处的像素颜色,d是一个微小的平移向量,用来提高y'和y的匹配精度;通过对d进行局部搜索获得Dc(X)的最小值,此时如果Dc(X)小于某个阈值τc,令V(X)=1,跳到步骤(2.9),否则,表明x颜色发生了改变或者被遮挡了,进行下一步的比较;
(2.7)查找在当前帧中同x′的距离不超过r1个像素的跟踪到的特征点,并标记为φ(x'),r1取20;如果φ(x')为空,表明X被运动物体所遮挡了,令V(X)=1;如果φ(x')不为空,并且对于φ(x')中任何一个特征点y,都有则将V(X)设为0;其中,X是x'对应的三维点,Xy是y所对应的三维点,和ZX分别表示Xy和X的深度值,表明X一定发生了变化;跳到步骤(2.9);如果φ(x')不为空,且存在y,使得进行下一步的比较;
(2.8)对φ(x')中每一个特征点y,将X和Xy分别投影到X首次出现的关键帧上,并将投影点分别记为xp和yp,如果存在至少一个特征点y,使得|xp-yp|<r2,r2取20,则将V(X)设为0,表明X发生了变化,所述变化为光照变化或者位置改变;否则,令V(X)=1;
(2.9)对于每一个关键帧,如果该帧上的无效三维点和该帧同其它关键帧所共有的特征点的数量超过了该帧像素点总数的90%,那么将该关键帧标记为无效关键帧;
所述步骤(3)通过以下子步骤来实现:
(3.1)前台线程以流水线的方式对每一个输入帧并行处理,流水线包含4个处理单元,第一单元由摄像头获取图像并作图像滤波和畸变校正;第二单元抽取特征点;第三单元进行特征点的匹配,以及摄像机参数的求解;第四单元根据跟踪结果进行增强现实的绘制;
(3.2)后台线程包含两条流水线,第一流水线包含2个处理单元,第一单元判断输入帧是否为关键帧,如果为关键帧则与已有关键帧进行局部匹配,并添加新的场景点;第二单元检测和删除变化的关键帧和三维点;第二流水线同样也包含2个处理单元,第一单元用来进行选取局部关键帧集合,局部关键帧集合包含当前关键帧和与当前关键帧存在公共匹配点的已有关键帧,联合优化局部关键帧的摄像机运动参数及局部关键帧可见的三维点位置,其他关键帧的相机运动参数及三维点位置保持不变,即局部集束调整;第二单元用来联合优化所有关键帧的摄像机运动参数及所有三维点位置,即全局集束调整。
CN201310462592.4A 2013-09-30 2013-09-30 一种针对动态变化场景的实时摄像机跟踪方法 Active CN103646391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310462592.4A CN103646391B (zh) 2013-09-30 2013-09-30 一种针对动态变化场景的实时摄像机跟踪方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310462592.4A CN103646391B (zh) 2013-09-30 2013-09-30 一种针对动态变化场景的实时摄像机跟踪方法

Publications (2)

Publication Number Publication Date
CN103646391A CN103646391A (zh) 2014-03-19
CN103646391B true CN103646391B (zh) 2016-09-28

Family

ID=50251601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310462592.4A Active CN103646391B (zh) 2013-09-30 2013-09-30 一种针对动态变化场景的实时摄像机跟踪方法

Country Status (1)

Country Link
CN (1) CN103646391B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205853A (zh) * 2014-06-20 2015-12-30 西安英诺视通信息技术有限公司 一种用于全景视图管理的3d图像拼接合成方法
US10335677B2 (en) * 2014-12-23 2019-07-02 Matthew Daniel Fuchs Augmented reality system with agent device for viewing persistent content and method of operation thereof
CN105094335B (zh) * 2015-08-04 2019-05-10 天津锋时互动科技有限公司 场景提取方法、物体定位方法及其系统
CN105678748B (zh) * 2015-12-30 2019-01-15 清华大学 三维监控系统中基于三维重构的交互式标定方法和装置
CN107403440B (zh) * 2016-05-18 2020-09-08 株式会社理光 用于确定对象的姿态的方法和装置
TWI586936B (zh) * 2016-05-20 2017-06-11 國立交通大學 實體影像與虛擬影像之間轉換的方法及其系統
CN105953796A (zh) * 2016-05-23 2016-09-21 北京暴风魔镜科技有限公司 智能手机单目和imu融合的稳定运动跟踪方法和装置
CN106296686A (zh) * 2016-08-10 2017-01-04 深圳市望尘科技有限公司 一种用静态和动态摄像机相结合对运动物体逐帧三维重构方法
JP6514156B2 (ja) 2016-08-17 2019-05-15 ファナック株式会社 ロボット制御装置
CN109791696B (zh) * 2016-08-24 2024-04-30 苏黎世大学 用于场景的3d重建的方法、设备和定位事件摄像机的方法
JP6603439B2 (ja) * 2016-08-25 2019-11-06 シグニファイ ホールディング ビー ヴィ 照明制御
CN106446815B (zh) * 2016-09-14 2019-08-09 浙江大学 一种同时定位与地图构建方法
CN106485744B (zh) * 2016-10-10 2019-08-20 成都弥知科技有限公司 一种同步定位与地图构建方法
CN106548486B (zh) * 2016-11-01 2024-02-27 浙江大学 一种基于稀疏视觉特征地图的无人车位置跟踪方法
CN107063131B (zh) * 2017-06-02 2019-09-03 四川大学 一种时间序列相关无效测量点去除方法及系统
US10636198B2 (en) * 2017-12-28 2020-04-28 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for monocular simultaneous localization and mapping
CN110119649B (zh) * 2018-02-05 2021-03-26 浙江商汤科技开发有限公司 电子设备状态跟踪方法、装置、电子设备及控制系统
CN108398139B (zh) * 2018-03-01 2021-07-16 北京航空航天大学 一种融合鱼眼图像与深度图像的动态环境视觉里程计方法
CN108592919B (zh) * 2018-04-27 2019-09-17 百度在线网络技术(北京)有限公司 制图与定位方法、装置、存储介质和终端设备
CN110148178B (zh) * 2018-06-19 2022-02-22 腾讯科技(深圳)有限公司 相机定位方法、装置、终端及存储介质
CN109102472A (zh) * 2018-07-23 2018-12-28 上海滚滚文化传播有限公司 一种三维仿二维建模渲染后制作漫画特效的方法
CN111091136B (zh) * 2018-10-23 2023-05-23 广州弘度信息科技有限公司 一种视频场景变换检测方法和系统
CN109767455A (zh) * 2018-12-21 2019-05-17 杰创智能科技股份有限公司 一种基于sift特征点的无人机检测方法及系统
CN110021065A (zh) * 2019-03-07 2019-07-16 杨晓春 一种基于单目相机的室内环境重建方法
CN112087593B (zh) * 2019-06-14 2022-10-14 富士通株式会社 视频配置的更新装置、方法以及电子设备
CN110703963B (zh) * 2019-09-09 2021-07-06 稿定(厦门)科技有限公司 3d文字展示方法、介质、设备及装置
CN111780764B (zh) * 2020-06-30 2022-09-02 杭州海康机器人技术有限公司 一种基于视觉地图的视觉定位方法、装置
CN112712044B (zh) * 2021-01-05 2023-08-08 百果园技术(新加坡)有限公司 人脸追踪方法、装置、电子设备和存储介质
CN116363218B (zh) * 2023-06-02 2023-09-01 浙江工业大学 一种适用于动态环境的轻量化视觉slam方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763647A (zh) * 2010-02-02 2010-06-30 浙江大学 一种基于关键帧的实时摄像机跟踪方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187809B2 (en) * 2004-06-10 2007-03-06 Sarnoff Corporation Method and apparatus for aligning video to three-dimensional point clouds

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763647A (zh) * 2010-02-02 2010-06-30 浙江大学 一种基于关键帧的实时摄像机跟踪方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Keyframe-Based Real-Time Camera Tracking;Zilong Dong et al.;《IEEE 12th International Conference on Computer Vision》;20090929;第1538-1545页 *
Parallel Tracking and Mapping for Small AR Workspaces;Georg Klein et al.;《6th IEEE and ACM International Symposium on Mixed and Augmented Reality》;20071113;第225-234页 *
Robust vSLAM for dynamic scenes;Jun Shimamura et al.;《IAPR Conference on Machine Vision Applications》;20110613;第344-347页 *
面向增强现实的实时三维跟踪;董子龙;《中国博士学位论文全文数据库(信息科技辑)》;20110815(第8期);第I138-74页 *

Also Published As

Publication number Publication date
CN103646391A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
CN103646391B (zh) 一种针对动态变化场景的实时摄像机跟踪方法
CN111815757B (zh) 基于图像序列的大型构件三维重建方法
CN109166149B (zh) 一种融合双目相机与imu的定位与三维线框结构重建方法与系统
Lim et al. Real-time image-based 6-dof localization in large-scale environments
Younes et al. Keyframe-based monocular SLAM: design, survey, and future directions
Bazin et al. 3-line RANSAC for orthogonal vanishing point detection
Maire et al. Affinity cnn: Learning pixel-centric pairwise relations for figure/ground embedding
Meng et al. Backtracking regression forests for accurate camera relocalization
Civera et al. Towards semantic SLAM using a monocular camera
Gao et al. Robust RGB-D simultaneous localization and mapping using planar point features
Tang et al. ESTHER: Joint camera self-calibration and automatic radial distortion correction from tracking of walking humans
Zhou et al. Robust plane-based structure from motion
Košecka Detecting changes in images of street scenes
CN110070578B (zh) 一种回环检测方法
Weerasekera et al. Dense monocular reconstruction using surface normals
Zhao et al. RTSfM: Real-time structure from motion for mosaicing and DSM mapping of sequential aerial images with low overlap
Zhu et al. A review of 6d object pose estimation
Lu et al. Large-scale tracking for images with few textures
Wang et al. Tt-slam: Dense monocular slam for planar environments
Maffra et al. Loop-closure detection in urban scenes for autonomous robot navigation
Dai et al. A Review of Common Techniques for Visual Simultaneous Localization and Mapping
Shao A Monocular SLAM System Based on the ORB Features
Aladem Robust real-time visual odometry for autonomous ground vehicles
Chen et al. An Oblique-Robust Absolute Visual Localization Method for GPS-Denied UAV with Satellite Imagery
Duong et al. Efficient multi-output scene coordinate prediction for fast and accurate camera relocalization from a single RGB image

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zhang Guofeng

Inventor after: Bao Hujun

Inventor after: Tan Wei

Inventor after: Liu Haomin

Inventor before: Zhang Guofeng

Inventor before: Bao Hujun

Inventor before: Tan Wei

Inventor before: Liu Haomin

SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210707

Address after: Room 288-8, 857 Shixin North Road, ningwei street, Xiaoshan District, Hangzhou City, Zhejiang Province

Patentee after: ZHEJIANG SHANGTANG TECHNOLOGY DEVELOPMENT Co.,Ltd.

Address before: 310058 Yuhang Tang Road, Xihu District, Hangzhou, Zhejiang 866

Patentee before: ZHEJIANG University

TR01 Transfer of patent right