一種針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法
【專利摘要】本發(fā)明公開了一種針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,該方法在不斷動態(tài)變化的場景中也能進(jìn)行穩(wěn)定地跟蹤和求解攝像機(jī)姿態(tài);首先進(jìn)行特征匹配及攝像機(jī)參數(shù)估計(jì),然后進(jìn)行場景的更新,最后,該方法在實(shí)際應(yīng)用時(shí)實(shí)行前后臺多線程協(xié)同運(yùn)行,前臺線程用于對每一幀進(jìn)行特征點(diǎn)匹配和攝像機(jī)運(yùn)動參數(shù)的估計(jì),后臺線程不斷進(jìn)行KD樹、關(guān)鍵幀和三維點(diǎn)云的維護(hù)和更新,并聯(lián)合優(yōu)化關(guān)鍵幀的攝像機(jī)運(yùn)動參數(shù)和三維點(diǎn)位置。在場景發(fā)生動態(tài)變化的情況下,本發(fā)明仍能實(shí)時(shí)地進(jìn)行攝像機(jī)跟蹤,本發(fā)明在跟蹤準(zhǔn)確性、穩(wěn)定性以及運(yùn)行效率等方面明顯優(yōu)于現(xiàn)有的攝像機(jī)跟蹤方法。
【專利說明】一種針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種實(shí)時(shí)攝像機(jī)跟蹤方法,尤其涉及一種動態(tài)變化場景中的實(shí)時(shí)攝像機(jī)跟蹤方法。
【背景技術(shù)】
[0002]攝像機(jī)跟蹤技術(shù)是計(jì)算機(jī)視覺領(lǐng)域的重要技術(shù)之一,其在機(jī)器人導(dǎo)航和增強(qiáng)現(xiàn)實(shí)等領(lǐng)域中有著極其重要的應(yīng)用。
[0003]攝像機(jī)跟蹤技術(shù)的難點(diǎn)在于:1)大多數(shù)方法都是一幀一幀的對特征點(diǎn)進(jìn)行跟蹤,導(dǎo)致誤差逐幀累積。如果某一幀的跟蹤失敗了,那么就將無法繼續(xù)進(jìn)行攝像機(jī)的跟蹤,必須對相機(jī)重新定位。有一些方法提出使用隨機(jī)分類器或者Harrwaveltes來解決攝像機(jī)的重定位問題,Chekhlov等人提出使用SIFT特征點(diǎn)來進(jìn)行特征點(diǎn)的跟蹤,但是卻導(dǎo)致了計(jì)算復(fù)雜性增大。為了降低計(jì)算復(fù)雜性,有些方法簡化了 SIFT檢測算法,但是隨之而來的是丟失了 SIFT特征點(diǎn)的一些不變性特征;2)目前現(xiàn)有的大多數(shù)攝像機(jī)跟蹤算法都只能夠處理靜態(tài)場景,如果場景發(fā)生了動態(tài)變化,就會導(dǎo)致跟蹤失敗。但是,真實(shí)的自然場景往往不斷變化,在很多的應(yīng)用中需要進(jìn)行處理的場景也都是動態(tài)變化的,因此現(xiàn)有的攝像機(jī)跟蹤方法都很難對這些場景進(jìn)行處理。3)在跟蹤的過程中,現(xiàn)有的一些方法由于沒有及時(shí)地對三維場景結(jié)構(gòu)進(jìn)行更新及優(yōu)化,導(dǎo)致重建出的三維模型很快就無效,進(jìn)而導(dǎo)致了攝像機(jī)跟蹤的失敗。
[0004]當(dāng)下,有很多攝像機(jī)跟蹤方法,本專利所屬方法稱為SLAM (SimultaneouslyLocalization and Mapping)。
[0005]SLAM是指實(shí)時(shí)地定位攝像機(jī)位置并獲得攝像環(huán)境的空間地圖的方法,它是實(shí)現(xiàn)制造自主移動機(jī)器人的關(guān)鍵算法之一。盡管該方法已經(jīng)取得了巨大的進(jìn)步,但是仍然存在著很多的挑戰(zhàn)和困難。目前,現(xiàn)有算法能夠處理靜態(tài)、規(guī)模較小的場景,但是如何對動態(tài)的、規(guī)模較大的場景進(jìn)行實(shí)時(shí)定位和地圖構(gòu)建仍然有待深究。
[0006]1.基于過濾器的SLAM
[0007]該方法的代表是MonoSLAM (Andrew J.Davison, Ian D.Reid, NicholasMolton, Olivier Stasse:MonoSLAM:Real-Time Single Camera SLAM.1EEE Trans.PatternAnal.Mach.1ntell.29 (6): 1052-1067,2007)它是實(shí)時(shí)攝像機(jī)跟蹤領(lǐng)域的先驅(qū)。該方法首先對一個(gè)大小已知的場景中的人工標(biāo)記進(jìn)行檢測,從而初始化場景,然后逐幀進(jìn)行類KLT特征點(diǎn)的檢測。通過擴(kuò)展卡爾曼濾波,場景中所有標(biāo)記的位置以及攝像機(jī)參數(shù)緊密相關(guān),并被約束到一個(gè)線性方程組中,每次輸入一個(gè)新幀時(shí),都同步更新方程組。盡管卡爾曼濾波是非常高效的,但是該方法的計(jì)算復(fù)雜度依舊很高(0 (N2),N是場景中標(biāo)記的數(shù)目),從而場景中標(biāo)記的數(shù)目只能是幾百個(gè),并且如果不使用巧妙的特征點(diǎn)選取方法(比如Zongying Shi, Zhibin Liu, Xianliang Wu, WenliXu:Feature selection for reliabledataassociation in visual SLAM.Mach.Vis.App1.24 (4): 667-682,2013),就只能夠處理一個(gè)很小的空間。Eade 和 Drummond (Ethan Eade, Tom Drummond:Scalable MonocularSLAM.CVPR (I) 2006:469-476)提出的方法采用了 FastSLAM-type 粒子濾波(MichaelMontemerlo, Sebastian Thrun,Daphne Roller, Ben Wegbreit:FastSLAM2.0:An ImprovedParticle Filtering Algorithm for SimultaneousLocalization and Mapping thatProvably Converges.1JCAI2003:1151-1156)和自頂向下的搜索方法,從而能夠?qū)崟r(shí)的處
理數(shù)百個(gè)標(biāo)記。
[0008]2.基于運(yùn)動推斷結(jié)構(gòu)(SfM)的SLAM
[0009]基于過濾器的SLAM方法邊緣化當(dāng)前幀以前幀的攝像機(jī)參數(shù),并隨時(shí)間收集概率分布信息,基于關(guān)鍵幀(即運(yùn)動推動結(jié)構(gòu))的方法保持全局集束調(diào)整的優(yōu)化方法,但是在計(jì)算時(shí)必須選擇少量過去幀用來處理,通過比較(HaukeStrasdat, J.M.M.Montiel, AndrewJ.Davison:Visual SLAM:Why filter?Image Vision Comput.30 (2):65-77 (2012)),基于關(guān)鍵幀的方法要優(yōu)于基于過濾器的實(shí)時(shí)跟蹤方法,本專利所保護(hù)的方法屬于基于關(guān)鍵幀的方法。運(yùn)動推斷結(jié)構(gòu)(SfM)技術(shù)可同時(shí)恢復(fù)每幀對應(yīng)的相機(jī)運(yùn)動及場景中稀疏的三
維點(diǎn)位置,然而其中的核心算法-集束調(diào)整(Bundle Adjustment, BA),其計(jì)算復(fù)雜度非
常大,從而嚴(yán)重的影響了處理的效率。近些年來,大量的優(yōu)化算法都致力于對集束調(diào)整過程進(jìn)行加速,而Klein和Murray獨(dú)辟蹊徑,提出一種并行跟蹤和重建模型PTAM (GeorgKlein,David W.Murray!Parallel Tracking and Mapping for Small AR Workspaces.1SMAR2007:225-234)。該方法仍使用傳統(tǒng)的集束調(diào)整算法,但將實(shí)時(shí)跟蹤及集束調(diào)整分配到兩個(gè)線程同時(shí)運(yùn)行。前臺線程對每一幀進(jìn)行特征點(diǎn)的匹配以及攝像機(jī)參數(shù)的求解,后臺線程不斷的對場景的三維結(jié)構(gòu)進(jìn)行優(yōu)化。`
[0010]3.動態(tài)場景中的SLAM
[0011]為了處理動態(tài)變化的場景,需要在靜態(tài)場景中判別出動態(tài)運(yùn)動的物體。
[0012]Hahnel (Dirk Hahnel, Rudolph Triebel, Wolfram Burgard, SebastianThrun: Map building with mobile robots in dynamic environments.1CRA2003:1557-1563)和 Bibby(Charles Bibby, Ian D.Reid:Simultaneous Localisationand Mapping in Dynamic Environments (SLAMIDE) with Reversible Data Associa.Robotics: Science and Systems2007)提出了使用期望最大化方法來檢測場景中的動態(tài)物體,但是如果場景變化比較頻繁,則場景中會出現(xiàn)很多不必要的三維特征點(diǎn),增加了內(nèi)存和計(jì)算的負(fù)擔(dān),同時(shí)也無法保證魯棒性。Blaser (Gabriele Bleser, Haraldffuest, DidierStrieker:Online camera pose estimation in partially known and dynamic scenes.1SMAR2006:56-65)提出了一個(gè)基于SLAM的CAD模型,在該方法中,對于場景中的三維點(diǎn),如果在超過半數(shù)以上的輸入幀中都可以跟蹤到該三維點(diǎn),則保留該三維點(diǎn),否則刪除該三維點(diǎn)。該方法中的三維點(diǎn)都是分別通過三角化求得,因此得到的場景結(jié)構(gòu)較之于基于SfM的 PTAM 方法準(zhǔn)確性要差。Shimamura (J.Shimamura, M.Morimoto, and H.Koike.RobustvSLAMfor dynamic scenes.1n MVA, pages344347, 2011.)基于PTAM提出了 vSLAM方法,該方法在獲得攝像機(jī)參數(shù)估計(jì)之后,對所有的無效點(diǎn)進(jìn)行光流估計(jì),并通過GMM方法對光流進(jìn)行聚類,如果同一個(gè)類中的無效點(diǎn)的數(shù)目超過了一個(gè)閥值,那么將這個(gè)無效點(diǎn)從場景中刪除。Blaser和Shimamura提出的方法都可以保證場景的緊湊和準(zhǔn)確,但是如果存在較大的遮擋,標(biāo)準(zhǔn)的RANSAC方法很快就無法準(zhǔn)確的估計(jì)攝像機(jī)參數(shù),此外,vSLAM沒有刪除無效的關(guān)鍵幀,因此被已經(jīng)存在的無效關(guān)鍵幀所遮擋的新物體的三維點(diǎn)就無法再添加到場景中。
【發(fā)明內(nèi)容】
[0013]本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法。
[0014]本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:一個(gè)針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,它包括以下步驟:
[0015]( I)特征點(diǎn)匹配及攝像機(jī)參數(shù)估計(jì),使用基于不變量的特征點(diǎn)來表達(dá)場景特征,每個(gè)場景點(diǎn)對應(yīng)一個(gè)特征描述量,使用KD樹組織所有場景特征,對每幀圖像提取特征點(diǎn)并在KD樹中搜索特征匹配,隨后進(jìn)行攝像機(jī)參數(shù)的估計(jì);
[0016](2)場景更新,使用關(guān)鍵幀及場景特征點(diǎn)對應(yīng)的三維點(diǎn)云表達(dá)場景幾何信息。通過添加關(guān)鍵幀和三維點(diǎn)擴(kuò)充場景,若已有關(guān)鍵幀的對應(yīng)場景發(fā)生變化,刪除變化的關(guān)鍵幀和變化的三維點(diǎn)。
[0017](3)前后臺多線程協(xié)同運(yùn)行,前臺線程用于對每一幀進(jìn)行特征點(diǎn)匹配和攝像機(jī)運(yùn)動參數(shù)的估計(jì),后臺線程不斷進(jìn)行KD樹、關(guān)鍵幀和三維點(diǎn)云的維護(hù)和更新,并聯(lián)合優(yōu)化關(guān)鍵幀的攝像機(jī)運(yùn)動參數(shù)和三維點(diǎn)位置。
[0018]本發(fā)明的有益效果是:
[0019]1、本發(fā)明能夠處理多種動態(tài)變化的場景,并且對于場景中光照發(fā)生變化以及存在無紋理區(qū)域的情況,仍然能夠魯棒地獲得攝像機(jī)參數(shù)的估計(jì);
[0020]2、本發(fā)明使用不變量特征點(diǎn)來表達(dá)場景,使用KD樹組織所有場景特征,提取特征點(diǎn)并進(jìn)行匹配,同時(shí)對KD樹進(jìn)行及時(shí)的更新和維護(hù),從而確保了跟蹤的準(zhǔn)確性;
[0021]3、本發(fā)明實(shí)時(shí)的對關(guān)鍵幀以及三維場景進(jìn)行更新,從而確保能夠準(zhǔn)確的重建三維場景以及攝像機(jī)跟蹤;
[0022]4、本發(fā)明采用了多線程協(xié)同運(yùn)行的方法,前臺線程并行地對輸入幀進(jìn)行特征點(diǎn)的提取、匹配以及攝像機(jī)參數(shù)估計(jì),后臺線程并行地進(jìn)行關(guān)鍵幀和三維場景的更新以及集束調(diào)整,提高了程序運(yùn)行的速度;
[0023]5、最后,本發(fā)明在針對動態(tài)變化場景的攝像機(jī)參數(shù)估計(jì)的應(yīng)用中,無論時(shí)間性能還是跟蹤的準(zhǔn)確性都要優(yōu)于現(xiàn)有的方法。
【專利附圖】
【附圖說明】
[0024]圖1是對于動態(tài)場景中魯棒的實(shí)時(shí)三維重建和攝像機(jī)跟蹤方法的流程圖;
[0025]圖2是實(shí)施例中應(yīng)用本發(fā)明的方法處理的視頻圖像的前后對照圖;
[0026]圖3是實(shí)施例中應(yīng)用本發(fā)明的方法處理的視頻圖像的前后對照圖;
[0027]圖4是實(shí)施例中應(yīng)用本發(fā)明的方法處理的視頻圖像的前后對照圖;
[0028]圖5是實(shí)施例中應(yīng)用本發(fā)明的方法處理的視頻圖像的前后對照圖。
【具體實(shí)施方式】
[0029]本發(fā)明針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法較之于現(xiàn)有的攝像機(jī)跟蹤方法進(jìn)行了如下改進(jìn):1)利用GPU技術(shù)進(jìn)行特征描述量提取以及匹配,并且對KD樹進(jìn)行及時(shí)的更新,確保跟蹤的準(zhǔn)確性;2)實(shí)時(shí)地進(jìn)行關(guān)鍵幀以及三維場景的更新,提高三維重建的準(zhǔn)確性,進(jìn)而提高跟蹤的準(zhǔn)確性;3)前后臺多線程并行,加快了運(yùn)行的速度。[0030]本發(fā)明的實(shí)施步驟如下:
[0031]1.特征點(diǎn)匹配及攝像機(jī)參數(shù)估計(jì)。使用基于不變量的特征點(diǎn)(如SIFT、SURF等)來表達(dá)場景特征,每個(gè)場景點(diǎn)對應(yīng)一個(gè)特征描述量,使用KD樹組織所有場景特征,對每幀圖像利用GPU提取SIFT特征點(diǎn)并在KD樹中搜索特征匹配,隨后進(jìn)行攝像機(jī)參數(shù)的估計(jì)。具體步驟包括:
[0032]1.1.使用基于不變量的特征點(diǎn)(如 SIFT:David G.Lowe:Distinctive ImageFeatures from Scale-1nvariant Keypoints.1nternational Journal of ComputerVision 60 (2):91_110,2004 ;或 SURF:Herbert Bay, Andreas Ess, TinneTuytelaarsj LucJ.Van Gool: Speeded-Up Robust Features (SURF).Computer Vision and ImageUnderstandingllO (3):346-359,2008)來表達(dá)場景特征,每個(gè)場景點(diǎn)對應(yīng)一個(gè)特征描述量,使用 KD 樹(Sunil Aryaj David M.Mount:Approximate Nearest Neighbor Queries inFixed Dimensions.S0DA1993:271-280)組織所有場景特征。構(gòu)造兩棵存儲全局場景特征的KD樹T2,用于全局特征點(diǎn)描述量和圖像特征點(diǎn)描述量間的匹配,T1用于實(shí)時(shí)匹配,T2用于動態(tài)更新。
[0033]1.2.根據(jù)方法(David Nister:An Efficient Solution to the Five-PointRelative Pose Problem.1EEE Trans.Pattern Anal.Mach.1ntell.26 (6):756-777,2004)選定兩幀初始關(guān)鍵幀,對場景結(jié)構(gòu)、運(yùn)動以及I?樹等進(jìn)行初始化。
[0034]1.3.對每幀圖像利用GPU抽取SIFT特征點(diǎn),利用SIFT特征描述量在T1中搜索匹配。對于特征點(diǎn)X,假設(shè)T1中它的最相鄰的兩個(gè)描述量是N1(X)和N2(x),使用下面的公式作為匹配的置信度:
【權(quán)利要求】
1.一種針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,其特征在于,它包括以下步驟: (1)特征點(diǎn)匹配及攝像機(jī)參數(shù)估計(jì),使用基于不變量的特征點(diǎn)來表達(dá)場景特征,每個(gè)場景點(diǎn)對應(yīng)一個(gè)特征描述量,使用KD樹組織所有場景特征,對每幀圖像提取特征點(diǎn)并在KD樹中搜索特征匹配,隨后進(jìn)行攝像機(jī)參數(shù)的估計(jì); (2)場景更新,使用關(guān)鍵幀及場景特征點(diǎn)對應(yīng)的三維點(diǎn)云表達(dá)場景幾何信息。通過添加關(guān)鍵幀和三維點(diǎn)擴(kuò)充場景,若已有關(guān)鍵幀的對應(yīng)場景發(fā)生變化,刪除變化的關(guān)鍵幀和變化的三維點(diǎn)。 (3)前后臺多線程協(xié)同運(yùn)行,前臺線程用于對每一幀進(jìn)行特征點(diǎn)匹配和攝像機(jī)運(yùn)動參數(shù)的估計(jì),后臺線程不斷進(jìn)行KD樹、關(guān)鍵幀和三維點(diǎn)云的維護(hù)和更新,并聯(lián)合優(yōu)化關(guān)鍵幀的攝像機(jī)運(yùn)動參數(shù)和三維點(diǎn)位置。
2.根據(jù)權(quán)利要求1所述的針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,其特征在于,所述步驟I通過以下子步驟來實(shí)現(xiàn): (1.1)使用基于不變量的特征點(diǎn)來表達(dá)場景特征,每個(gè)場景點(diǎn)對應(yīng)一個(gè)特征描述量,使用KD樹組織所有場景特征。構(gòu)造兩棵存儲全局場景特征的KD樹I\、T2,用于全局特征點(diǎn)描述量和圖像特征點(diǎn)描述量間的匹配,T1用于實(shí)時(shí)匹配,T2用于動態(tài)更新。 (1.2)選定兩幀初始關(guān)鍵幀,對場景結(jié)構(gòu)、運(yùn)動以及KD樹等進(jìn)行初始化。 (1.3)對每幀圖像抽取特征點(diǎn),利用其特征描述量在T1中搜索匹配。對于特征點(diǎn)X,假設(shè)1\中它的最相鄰的兩個(gè)描述量是N1(X)和N2(X),使用下面的公式作為匹配的置信度:c_ |/>(x)-p(A^,(x))[
C ||/Kx)-P(A(X))I 其中,P(X)表示特征點(diǎn)X的描述量。如果c〈0.6,將X和N1(X)作為一對匹配點(diǎn),由此得到一系列場景特征點(diǎn)和當(dāng)前幀圖像特征點(diǎn)之間的匹配。 (1.4)根據(jù)步驟(1.3)得到一系列場景特征點(diǎn)和當(dāng)前幀圖像特征點(diǎn)之間的匹配,通過最小化目標(biāo)函數(shù)+ 估計(jì)出當(dāng)前幀攝像機(jī)運(yùn)動參數(shù);其中,R表示旋
' i轉(zhuǎn)矩陣,t表示平移向量,表示投影函數(shù),其作用是將三維空間點(diǎn)投影到二維空間,獲得二維空間點(diǎn)位置,即n (X, Y, Z) = (X,y),其中x=X/Z, y=Y/Z)), Xi表示特征點(diǎn),K表示攝像機(jī)內(nèi)置參數(shù),Xi表示三維點(diǎn),通過RANSAC算法剔除誤匹配,將正確的匹配定義為全局匹配集合G。
3.根據(jù)權(quán)利要求1所述的針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,其特征在于,所述步驟2通過以下子步驟來實(shí)現(xiàn): (2.1)對于當(dāng)前輸入幀,經(jīng)過步驟I后,如果可以成功地估計(jì)攝像機(jī)參數(shù),并且全局匹配集合G中至多有ml個(gè)匹配點(diǎn), 則將當(dāng)前幀作為潛在關(guān)鍵幀,ml為自然數(shù); (2.2)選取同當(dāng)前幀公共特征點(diǎn)最多的五個(gè)關(guān)鍵幀,并在當(dāng)前幀和該5個(gè)關(guān)鍵幀之間進(jìn)行特征點(diǎn)匹配(對于當(dāng)前幀中已經(jīng)匹配的特征點(diǎn)不需要再進(jìn)行匹配),為了加快匹配的速度,為選取的5幀關(guān)鍵幀分別建立一棵KD樹T,并通過極線幾何約束除去無效的特征點(diǎn)以提高匹配的準(zhǔn)確性。根據(jù)當(dāng)前幀同5個(gè)關(guān)鍵幀之間的匹配點(diǎn)構(gòu)成特征點(diǎn)軌跡,對于每一個(gè)特征點(diǎn)軌跡獨(dú).,通過三角化方法,即求解下述方程來估計(jì)該軌跡的三維點(diǎn):Xi ^min [ Il Xij -7r(K(RjXI + tj)) ||2;
j^(xi ) 其中,Xi表示三維點(diǎn),4) (Xi)表示Xi出現(xiàn)的幀集合,Xij表示特征點(diǎn),Rj表示旋轉(zhuǎn)矩陣,tj表示平移向量,表示投影函數(shù),K表示攝像機(jī)內(nèi)置參數(shù)。如果估計(jì)得到的三維點(diǎn)數(shù)量超過m2,50 < m2 < 100,則將當(dāng)前幀作為新的關(guān)鍵幀加入到關(guān)鍵幀集合中,將得到的新的三維點(diǎn)Xi加入到場景中,并將當(dāng)前幀中的特征點(diǎn)選作新的參考特征點(diǎn)加入到后臺KD樹T2中,同時(shí)用T2更新1\。 (2.3)若當(dāng)前輸入幀被選作新的關(guān)鍵幀,接下來通過比較當(dāng)前幀和關(guān)鍵幀的Z軸方向,選取那些方向差異小于某個(gè)閥值的關(guān)鍵幀,隨后進(jìn)一步通過比較攝像機(jī)參數(shù)(旋轉(zhuǎn)矩陣和平移向量)確定5個(gè)與當(dāng)前關(guān)鍵幀最相鄰的關(guān)鍵幀。 (2.4)對于每個(gè)選擇的關(guān)鍵幀,首先將其同當(dāng)前關(guān)鍵幀進(jìn)行顏色直方圖比較,將顏色直方圖的差異定義為R、G、B三個(gè)通道直方圖歐式距離之和,如果差異大于1,表明圖像中的一些區(qū)域很可能發(fā)生了改變,將關(guān)鍵幀中的特征點(diǎn)X對應(yīng)的三維點(diǎn)X投影到當(dāng)前幀圖像中,將投影位置記為X'。用V (X)來表示三維點(diǎn)X的狀態(tài),若X是無效三維點(diǎn),則V (X)=0,否貝U,令V (X)=l。接下來對每一個(gè)選擇的關(guān)鍵幀,通過比較特征點(diǎn)X和X'來判定X是否是有效的三維點(diǎn)。 (2.5)將從X到關(guān)鍵幀和當(dāng)前幀攝像機(jī)中心的視角方向分別記為nx和' ,如果<nx<xn (、通常設(shè)為cos (30° )),則認(rèn)為特征點(diǎn)x在當(dāng)前幀中被遮擋了或者發(fā)生了較大的透視變形,令V (X) =1,否則,進(jìn)行下一步。 (2.6)比較X和X'之間的顏色差異: A(X) = min Z |/v-(Iy+d)
L y<=W(x) 其中,W(x)表示以x為中心的局部窗口,y為W(x)中一個(gè)二維點(diǎn),y’是根據(jù)X的深度以及攝像機(jī)參數(shù)估計(jì)得到的y在當(dāng)前幀中的投影點(diǎn),d是一個(gè)微小的平移向量,用來提高y’和y的匹配精度。通過對d進(jìn)行局部搜索獲得DJX)的最小值,此時(shí)如果D。⑴小于某個(gè)閾值t。,繼續(xù)維持V (X)的值為1,否則,表明X顏色發(fā)生了改變或者被遮擋了,進(jìn)行下一步的比較。(2.7)查找在當(dāng)前幀中同X的距離不超過T1個(gè)像素的跟蹤到的特征點(diǎn),并標(biāo)記為ct(X’),如果$(x’)為空,表明X被運(yùn)動物體所遮擋了,保持V (X)的值不變;如果ct(X’)不為空,并且對于$(x’)中任何一個(gè)特征點(diǎn)y,都有zZy - Zx,則將V (X)設(shè)為0(其中,X是X’對應(yīng)的三維點(diǎn),Xy是y所對應(yīng)的三維點(diǎn)Z Y和Zx分別表示Xy和X的深度值),表明X—定發(fā)生了變化;如果0 (x’)不為空,且存在y,使得zA, < Zz,進(jìn)行下一步的比較。 (2.8)對$(x’)中每一個(gè)特征點(diǎn)y,將X和Xy分別投影到X首次出現(xiàn)的關(guān)鍵幀上,并將投影點(diǎn)分別記為Xp和yp,如果存在至少一個(gè)特征點(diǎn)y,使得I xp-yp I <r2,則將V (X)設(shè)為0,表明X發(fā)生了變化(光照變化或者位置改變);否則,保持V (X)為I。 (2.9)對于每一個(gè)關(guān)鍵幀,如果該幀上的無效三維點(diǎn)和同其它關(guān)鍵幀所共有的特征點(diǎn)的數(shù)量超過了該幀像素點(diǎn)總數(shù)的90%,那么將該關(guān)鍵幀標(biāo)記為無效關(guān)鍵幀。
4.根據(jù)權(quán)利要求1所述的針對動態(tài)變化場景的實(shí)時(shí)攝像機(jī)跟蹤方法,其特征在于,所述步驟3通過以下子步驟來實(shí)現(xiàn): (3.1)前臺線程以流水線的方式對每一個(gè)輸入幀并行處理,流水線包含4個(gè)處理單元,第一單元由攝像頭獲取圖像并作圖像濾波和畸變校正;第二單元抽取特征點(diǎn);單元3進(jìn)行特征點(diǎn)的匹配,以及及攝像機(jī)參數(shù)的求解;單元4根據(jù)跟蹤結(jié)果進(jìn)行增強(qiáng)現(xiàn)實(shí)的繪制。 (3.2)后臺線程包含兩條流水線,第一流水線包含2個(gè)處理單元,第一單元判斷輸入幀是否為關(guān)鍵幀,如果為關(guān)鍵幀則與已有關(guān)鍵幀進(jìn)行局部匹配,并添加新的場景點(diǎn);第二單元檢測和刪除變化的關(guān)鍵幀和三維點(diǎn);第二流水線同樣也包含2個(gè)處理單元,第一單元用來進(jìn)行選取局部關(guān)鍵幀集合,局部關(guān)鍵幀集合包含當(dāng)前關(guān)鍵幀和與當(dāng)前關(guān)鍵幀存在公共匹配點(diǎn)的已有關(guān)鍵幀,聯(lián)合優(yōu)化局部關(guān)鍵幀的攝像機(jī)運(yùn)動參數(shù)及局部關(guān)鍵幀可見的三維點(diǎn)位置,其他關(guān)鍵幀的相機(jī)運(yùn)動參數(shù)和及三維點(diǎn)位置保持不變,即局部集束調(diào)整;第二單元用來聯(lián)合優(yōu)化所有關(guān)鍵幀的攝像機(jī)運(yùn)動參數(shù)及所有三維點(diǎn)位置,即全局集束調(diào)整。
【文檔編號】G06T7/00GK103646391SQ201310462592
【公開日】2014年3月19日 申請日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】章國峰, 鮑虎軍, 譚偉, 劉浩敏 申請人:浙江大學(xué)