鄭 磊,王占剛
(北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101)
隨著智能移動(dòng)設(shè)備相關(guān)技術(shù)和人機(jī)交互技術(shù)的不斷成熟,移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)漸漸引起人們的關(guān)注。增強(qiáng)現(xiàn)實(shí)擁有虛實(shí)融合、實(shí)時(shí)交互和三維注冊(cè)三個(gè)特性,其中三維注冊(cè)技術(shù)是移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的核心技術(shù),是虛擬場(chǎng)景和現(xiàn)實(shí)場(chǎng)景之間的配準(zhǔn),需要通過(guò)相應(yīng)坐標(biāo)公式計(jì)算出位移變化時(shí)的攝像機(jī)位姿,將虛擬信息實(shí)時(shí)顯示在屏幕正確位置,完成三維注冊(cè)。
三維注冊(cè)技術(shù)分為基于硬件傳感器的三維注冊(cè)、基于計(jì)算機(jī)視覺(jué)的三維注冊(cè)和混合注冊(cè)。其中,基于計(jì)算機(jī)視覺(jué)的三維注冊(cè)技術(shù)由于不再受場(chǎng)景和設(shè)備的限制,是當(dāng)前應(yīng)用較多的注冊(cè)技術(shù),一般分為基于人工標(biāo)識(shí)的三維注冊(cè)和基于無(wú)標(biāo)識(shí)的三維注冊(cè)?;谌斯?biāo)識(shí)的三維注冊(cè)技術(shù)需要提前在真實(shí)場(chǎng)景中放置某些定義的標(biāo)志來(lái)進(jìn)行跟蹤注冊(cè),雖然簡(jiǎn)化了識(shí)別和跟蹤的難度,但存在應(yīng)用場(chǎng)景的局限性;而無(wú)標(biāo)識(shí)的跟蹤注冊(cè)技術(shù)是通過(guò)識(shí)別場(chǎng)景圖像的自然特征,比如輪廓、角點(diǎn)或者邊緣等進(jìn)行跟蹤,因此無(wú)標(biāo)識(shí)跟蹤注冊(cè)技術(shù)應(yīng)用更廣泛。但實(shí)際測(cè)試中,無(wú)標(biāo)識(shí)的跟蹤注冊(cè)存在匹配準(zhǔn)確率低、跟蹤不穩(wěn)定等缺點(diǎn),導(dǎo)致三維注冊(cè)效果差,因此需要運(yùn)用高效的特征檢測(cè)和跟蹤算法來(lái)實(shí)現(xiàn)實(shí)時(shí)、穩(wěn)定、精準(zhǔn)的三維注冊(cè)。
現(xiàn)階段常用的特征檢測(cè)和匹配算法有SIFT、SURF、ORB等,雖然各類(lèi)算法匹配效果好,但需要考慮到移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的實(shí)時(shí)性,要求實(shí)時(shí)精準(zhǔn)地檢測(cè)用戶(hù)攝像頭相對(duì)于真實(shí)世界的位置和姿態(tài)信息,并且需要通過(guò)穩(wěn)定的算法跟蹤特征點(diǎn),當(dāng)攝像機(jī)與真實(shí)世界場(chǎng)景發(fā)生位移變化時(shí)能持續(xù)跟蹤目標(biāo)區(qū)域。本文提出一種AKAZE與金字塔光流法相結(jié)合的算法,采用AKAZE算法進(jìn)行特征點(diǎn)的檢測(cè),再用光流法進(jìn)行目標(biāo)區(qū)域的跟蹤,引入跟蹤失敗自動(dòng)檢測(cè)機(jī)制確保跟蹤的持續(xù)性,利用持續(xù)跟蹤的特征點(diǎn)進(jìn)行特征匹配并計(jì)算攝像機(jī)內(nèi)外參數(shù)實(shí)現(xiàn)注冊(cè)。
AKAZE算法采用非線性擴(kuò)散濾波構(gòu)建非線性尺度空間的形式來(lái)避免線性空間帶來(lái)的圖像細(xì)節(jié)丟失。擴(kuò)散濾波描述圖像亮度的演化是通過(guò)提升尺度參數(shù)作為熱擴(kuò)散函數(shù)的散度因子來(lái)控制擴(kuò)散過(guò)程的,采用非線性偏微分方程來(lái)求解,方程如下:
為了優(yōu)先保留寬度較大的區(qū)域,做到對(duì)區(qū)域擴(kuò)散平滑的最優(yōu)化,選擇式(2)作為核函數(shù):
其中參數(shù)表示擴(kuò)散的程度,用于控制邊緣信息保留量。
AKAZE算法利用FED的框架來(lái)快速求解式(1)。FED的理論思想與box濾波器的顯式理論分解思想相似,在執(zhí)行個(gè)循環(huán)的次顯示步驟過(guò)程中,用變化的步長(zhǎng)解決大量線性方程的計(jì)算問(wèn)題,結(jié)合顯式方案和半隱式的優(yōu)點(diǎn),保證穩(wěn)定性的同時(shí)減少計(jì)算量。
首先將經(jīng)典的非線性偏微分公式進(jìn)行矢量化,得到以下公式:
其中是對(duì)圖像編碼的傳導(dǎo)矩陣。然后,假設(shè)初始狀態(tài)L=L,用變化的步長(zhǎng)τ取代,則FED的周期變?yōu)椋?/p>
其中:為最大步長(zhǎng)值,保證顯式求解穩(wěn)定;為循環(huán)長(zhǎng)度,表示整個(gè)FED算法循環(huán)的次數(shù)。
AKAZE算法建立尺度空間需要分組octaves,每個(gè)階層有個(gè)sub-level,分別用和去標(biāo)記octave和sub-level。設(shè)定一個(gè)尺度參數(shù),由此構(gòu)建的非線性尺度空間公式如下:
其中:σ是初始值;=,是所有圖像的數(shù)量。
通過(guò)卷積公式將尺度空間里得到的σ進(jìn)行時(shí)間單位的轉(zhuǎn)換,使其單位與非線性擴(kuò)散濾波保持一致,映射公式如下:
其中t是進(jìn)化時(shí)間。通過(guò)式(7)能夠?qū)⒊叨瓤臻g中得到的σ轉(zhuǎn)換成時(shí)間參數(shù)t。
AKAZE算法的特征點(diǎn)檢測(cè)是通過(guò)尋找不同尺度歸一化后的Hessian局部極大值點(diǎn)來(lái)實(shí)現(xiàn)的。比較空間定義為3×3×3的立方體,如圖1所示。
圖1 尺度空間示意圖
將中心位置的檢測(cè)點(diǎn)與圖1所示空間的其余26個(gè)點(diǎn)進(jìn)行比較,Hessian矩陣公式為:
在空間位置里找到極大值點(diǎn)后,采用Hessian矩陣做行列式的擬合并進(jìn)行準(zhǔn)確定位。根據(jù)Taylor展開(kāi)式,則有:
求得特征點(diǎn)亞像素解為:
光流法實(shí)質(zhì)是一種兩幀差分光流估計(jì)算法,把視頻流捕捉到某一幀的特征點(diǎn)作為持續(xù)跟蹤的對(duì)象,找出點(diǎn)在下一幀的位置來(lái)做相機(jī)對(duì)場(chǎng)景的自運(yùn)動(dòng)估計(jì)。假設(shè)場(chǎng)景中亮度恒定、物體小幅度運(yùn)動(dòng)的條件下,在相同空間中的特征點(diǎn)運(yùn)動(dòng)一致,則兩個(gè)相同特征點(diǎn)之間的灰度值一致,視頻流兩幀之間特征點(diǎn)相對(duì)圖片中物體移動(dòng)的距離與特征點(diǎn)灰度值之間存在聯(lián)系,求解特征點(diǎn)相對(duì)物體移動(dòng)的距離即可跟蹤特征點(diǎn)。
光流法金字塔算法分為三個(gè)步驟:金字塔的建立、金字塔跟蹤以及算法的迭代過(guò)程。建立金字塔時(shí)將原始圖像放在底層,將最低分辨率的圖像放在頂層。每一層均是上一層的下采樣。從頂層開(kāi)始,通過(guò)匹配每個(gè)點(diǎn)最小化鄰域內(nèi)誤差和來(lái)計(jì)算光流。假設(shè)每次圖像的尺寸都縮小為上一層的一半,原圖為第0層,共縮放層,假設(shè)原圖運(yùn)動(dòng)物體的位移距離為,那么每層圖像的位移為:
先在最后一層即層求解位移進(jìn)行光流計(jì)算,將結(jié)果反饋到上一層-1,作為該層的初始光流估計(jì)值,計(jì)算公式為:
以此類(lèi)推,將-1層結(jié)果向-2層反饋,并作為該層的初始光流值,直到第0層圖像,得到原始圖像的光流大小。
其中:是要求的光流準(zhǔn)確值;是估算值;是殘值。由于每一層點(diǎn)的光流計(jì)算都是該點(diǎn)最小化鄰域內(nèi)所有匹配點(diǎn)誤差的累計(jì)和,這樣的匹配搜索能解決圖像內(nèi)事物位移變化較大的跟蹤問(wèn)題,也可以在同樣大小的窗口內(nèi)盡量多地跟蹤特征點(diǎn),以此解決孔徑問(wèn)題。最小化匹配累計(jì)和的優(yōu)化公式為:
室外用移動(dòng)設(shè)備捕獲目標(biāo)場(chǎng)景來(lái)檢測(cè)特征點(diǎn)時(shí),一般處于大幅度運(yùn)動(dòng)情況,特征點(diǎn)檢測(cè)窗口的選擇需要權(quán)衡準(zhǔn)確性和魯棒性。金字塔光流法的迭代過(guò)程能有效地弱化窗口的局限性,是對(duì)光流法的小幅度運(yùn)動(dòng)假設(shè)條件的改善,適合應(yīng)用于室外場(chǎng)景。
光流法跟蹤計(jì)算攝像機(jī)的位姿信息,是基于相鄰幀之間的特征點(diǎn)關(guān)系來(lái)估算的。跟蹤識(shí)別的時(shí)間越長(zhǎng),匹配點(diǎn)的光流累計(jì)誤差和越大,估算的相機(jī)位姿信息會(huì)有誤差。因此需要引進(jìn)特征點(diǎn)跟蹤失敗機(jī)制,將跟蹤失敗的特征點(diǎn)進(jìn)行刪除,減小相鄰幀間點(diǎn)的累計(jì)誤差,提高計(jì)算姿態(tài)信息的準(zhǔn)確性。
采用前向后向誤差法實(shí)現(xiàn)跟蹤失效的自動(dòng)檢測(cè),如圖2所示。該方法基于前后一致性假設(shè),將一串視頻序列里某一點(diǎn)的位置定義為一個(gè)軌跡。跟蹤過(guò)程中,在時(shí)間序列上向前向后生成的兩條軌跡是重疊的,則保證該點(diǎn)一直處于正確跟蹤的狀態(tài)。
圖2 前后誤差檢測(cè)假設(shè)圖
對(duì)于某一特征點(diǎn)的軌跡進(jìn)行前后誤差計(jì)算,假設(shè)存在視頻序列=(I,I, ...,I)。某一特征點(diǎn)在時(shí)刻的位置為X,向前檢測(cè)時(shí)刻得到的軌跡為:
其中f代表向前。將點(diǎn)X向后跟蹤到第一幀形成另一條軌跡,則有:
如果距離值過(guò)大表示軌跡相差過(guò)大,跟蹤失效;當(dāng)差距小于一定的閾值,則表示跟蹤正確。
區(qū)別于AKAZE算法的BF暴力匹配,本文采用高維最近鄰FLANN算法來(lái)提升匹配效率。FLANN算法是在已知數(shù)據(jù)集內(nèi),根據(jù)分布特點(diǎn)和所要求的空間資源消耗有效快速地得到搜索類(lèi)型。根據(jù)計(jì)算歐式距離尋找特征點(diǎn)鄰域的最近距離點(diǎn),歐氏距離的公式如下:
值越低表示特征點(diǎn)對(duì)之間的距離越近,即圖像中特征點(diǎn)對(duì)匹配程度越高。為了能直接表述匹配效果,設(shè)一個(gè)閾值與(特征點(diǎn)的最近點(diǎn)與次近點(diǎn)比值)進(jìn)行比較來(lái)判斷是否成功匹配。將最近鄰與次近鄰的特征點(diǎn)的歐式距離分別用D和D表示,則最近點(diǎn)與次近點(diǎn)比值為:
如果<,則表示匹配成功。
三維跟蹤注冊(cè)技術(shù)是指在移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,智能移動(dòng)設(shè)備的攝像頭拍攝真實(shí)世界場(chǎng)景時(shí),通過(guò)計(jì)算確定攝像機(jī)內(nèi)部參數(shù)和外部參數(shù),將世界坐標(biāo)系、攝像機(jī)坐標(biāo)系和圖像平面坐標(biāo)系三個(gè)重要的坐標(biāo)系聯(lián)系起來(lái),從而將三維模型、文字信息等虛擬信息顯示在根據(jù)攝像機(jī)坐標(biāo)系計(jì)算出的現(xiàn)實(shí)世界屏幕上的位置,最終達(dá)到虛實(shí)融合。
世界坐標(biāo)系(-)、圖像坐標(biāo)系(-)和相機(jī)坐標(biāo)系(-)存在如圖3所示的映射關(guān)系。如果要將一個(gè)圖像上的像素點(diǎn)(,)與真實(shí)世界的點(diǎn)(,,)之間建立關(guān)系,則映射公式為:
圖3 坐標(biāo)系關(guān)系示意圖
其中:為攝像機(jī)內(nèi)部參數(shù);=[]為攝像機(jī)外部參數(shù),包含著旋轉(zhuǎn)分量和平移變化矩陣,決定了攝像機(jī)的位置和姿態(tài)信息。根據(jù)張式標(biāo)定法,圖像平面坐標(biāo)系位于世界坐標(biāo)系中時(shí),=0,式(20)變?yōu)椋?/p>
式中為圖像坐標(biāo)系和世界坐標(biāo)系之間的單應(yīng)性矩陣。假設(shè)矩陣的列向量分別為、、,由于旋轉(zhuǎn)矩陣的正交性,求得、、的值簡(jiǎn)寫(xiě)為:
通過(guò)式(22)求解出攝像機(jī)的外部參數(shù)。
為了驗(yàn)證本文算法的實(shí)時(shí)性、跟蹤的準(zhǔn)確性和三維注冊(cè)系統(tǒng)的穩(wěn)定性,本文先進(jìn)行特征檢測(cè)算法的實(shí)驗(yàn)對(duì)比,驗(yàn)證AKAZE算法的特征提取速率更快;再通過(guò)一段視頻流的目標(biāo)跟蹤測(cè)試驗(yàn)證算法的跟蹤穩(wěn)定性和三維注冊(cè)效果的精準(zhǔn)度。視頻流時(shí)長(zhǎng)為15 s,選擇的圖像集為真實(shí)場(chǎng)景的室外建筑物圖像,并分別進(jìn)行亮度變化、視角變化的特征點(diǎn)檢測(cè)實(shí)驗(yàn)。
為了進(jìn)行不同視角的SIFT、SURF、KAZE、AKAZE算法特征點(diǎn)檢測(cè)速率比較,分別選用了同一建筑物的左、中、右三種視角的圖片,如圖4所示。將圖4中三張圖片分別進(jìn)行特征檢測(cè),比較四種算法的檢測(cè)速率。實(shí)驗(yàn)結(jié)果見(jiàn)表1所列。
圖4 不同視角下的圖像
表1 不同視角下的特征點(diǎn)檢測(cè)時(shí)間
對(duì)不同光照變化下的圖像進(jìn)行特征檢測(cè)實(shí)驗(yàn),該組包含如圖5所示的5張圖像,檢測(cè)結(jié)果見(jiàn)表2所列。
圖5 不同光照下的圖像
表2 不同光照條件下的特征點(diǎn)檢測(cè)時(shí)間
表1和表2的結(jié)果表明,視角和光照變化的情況下,本文所使用的AKAZE算法比其他算法的特征檢測(cè)時(shí)間更短,并且速率變化幅度小,較穩(wěn)定。
本文的目標(biāo)跟蹤結(jié)果和三維注冊(cè)效果是依次截取的視頻流中的圖像幀,其中包含對(duì)物體的角度變化的跟蹤和注冊(cè)實(shí)驗(yàn)、局部目標(biāo)跟蹤和被遮擋時(shí)的三維注冊(cè)實(shí)驗(yàn)。跟蹤效果如圖6所示。
圖6 跟蹤效果
實(shí)驗(yàn)結(jié)果表明,在視頻中隨著時(shí)間的增加,當(dāng)物體存在角度變化和部分區(qū)域丟失的情況時(shí),黑色方框變化幅度小,驗(yàn)證了在長(zhǎng)時(shí)間跟蹤的情況下采用本文的跟蹤方法時(shí),相鄰幀之間的特征點(diǎn)運(yùn)動(dòng)導(dǎo)致的光流累計(jì)誤差和小,能穩(wěn)定持續(xù)地進(jìn)行目標(biāo)跟蹤。同時(shí),在三維注冊(cè)實(shí)驗(yàn)中,當(dāng)存在視角變化、旋轉(zhuǎn)變化和遮擋情況時(shí),虛擬的三維動(dòng)物模型依然可以準(zhǔn)確地疊加在目標(biāo)的相同位置上,能達(dá)到準(zhǔn)確的三維注冊(cè)和虛實(shí)融合效果,如圖7所示。
圖7 三維注冊(cè)效果
本文采用AKAZE算法進(jìn)行目標(biāo)跟蹤區(qū)域的特征點(diǎn)檢測(cè),利用光流法進(jìn)行特征點(diǎn)的跟蹤,同時(shí)引入跟蹤失效自動(dòng)檢測(cè)機(jī)制,保證特征點(diǎn)數(shù)量充足,確保持續(xù)穩(wěn)定的跟蹤效果;最終通過(guò)FLANN匹配相鄰幀的特征點(diǎn)并計(jì)算攝像機(jī)位姿信息實(shí)現(xiàn)移動(dòng)增強(qiáng)現(xiàn)實(shí)的三維注冊(cè)。實(shí)驗(yàn)結(jié)果表明,光照變化和視角變化時(shí)與其他方法相比,本文的方法檢測(cè)速率較高,能夠保證實(shí)時(shí)性;且在物體運(yùn)動(dòng)變化、部分區(qū)域丟失和受到遮擋時(shí)能保持穩(wěn)定地跟蹤和精準(zhǔn)地注冊(cè),滿(mǎn)足移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的性能需求。