王佳順,管有慶
(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
增強(qiáng)現(xiàn)實(shí)(augmented reality,AR)是目前計(jì)算機(jī)應(yīng)用領(lǐng)域的一大研究熱點(diǎn),其本質(zhì)是在現(xiàn)實(shí)場景中添加虛擬的影像,使得現(xiàn)實(shí)場景與虛擬物體相結(jié)合,以此來增強(qiáng)人們對(duì)現(xiàn)實(shí)世界的體驗(yàn)[1]。增強(qiáng)現(xiàn)實(shí)技術(shù)融合了數(shù)字圖像處理[2]、計(jì)算機(jī)視覺[3]、智能模式[4]識(shí)別等多種技術(shù),其中圖像識(shí)別與追蹤技術(shù)是比較重要的技術(shù)。
近年來在室外增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,通常采用GPS獲取相機(jī)的位置并通過手持設(shè)備的內(nèi)置傳感器來獲取設(shè)備的方向,以此實(shí)現(xiàn)追蹤定位,但是該方法有它的局限性[5]。首先,GPS的數(shù)據(jù)更新頻率以及準(zhǔn)確度并不能滿足實(shí)時(shí)追蹤定位的需求,其次傳感器取得的方向、旋轉(zhuǎn)角度等數(shù)據(jù)總是存在一定的誤差,且這種誤差會(huì)隨著時(shí)間而不斷累積,對(duì)追蹤定位的精度產(chǎn)生一定的影響[6-7]。另外傳感器會(huì)受環(huán)境中可能存在的電磁場的影響,使得檢測到的數(shù)據(jù)出現(xiàn)誤差。
當(dāng)前手機(jī)已成為移動(dòng)AR系統(tǒng)的主流運(yùn)行平臺(tái)。手機(jī)由于內(nèi)置有傳感器、照相機(jī)、GPS等系統(tǒng)組成的微機(jī)電系統(tǒng),使得手機(jī)成為室外AR系統(tǒng)的理想平臺(tái)。但是移動(dòng)設(shè)備的計(jì)算能力和速度都比不上傳統(tǒng)的電腦,使得傳統(tǒng)的復(fù)雜追蹤算法不能很好地適用于移動(dòng)設(shè)備,所以對(duì)適用于移動(dòng)設(shè)備的追蹤算法的研究一直是學(xué)者關(guān)注的重點(diǎn)。
目前,AR系統(tǒng)中的識(shí)別追蹤算法已經(jīng)取得了許多成果。Bleser和Stricker[8]研究了多種基于視覺慣性的融合模型并提出了基于多種傳感器結(jié)合的3D追蹤模型。但是該模型的生成和維持需要耗費(fèi)大量的時(shí)間,而且該模型是基于靜態(tài)環(huán)境,但是實(shí)際上環(huán)境可能不斷發(fā)生變化。Hwangbo等將慣性傳感器與Kanade-Lucas-Tomasi (KLT)特征追蹤算法相結(jié)合[9]。但是基于KLT的追蹤算法覆蓋范圍比較小,當(dāng)相機(jī)移動(dòng)范圍太大時(shí),追蹤算法容易失效。Calonder[10]等提出了一個(gè)魯棒獨(dú)立的基本二進(jìn)制特征描述子(binary robust independent elementary features,BRIEF),該描述子可以在設(shè)備上實(shí)時(shí)計(jì)算,但是BRIEF沒有旋轉(zhuǎn)不變性。
文中在BRIEF二進(jìn)制描述子的基礎(chǔ)上,引入了慣性傳感器的旋轉(zhuǎn)參數(shù),使BRIEF具有旋轉(zhuǎn)不變性,當(dāng)追蹤目標(biāo)旋轉(zhuǎn)時(shí)能更好地進(jìn)行識(shí)別匹配。系統(tǒng)在識(shí)別目標(biāo)物體后,采用改進(jìn)的ESM算法(efficient second-order minimization-small grid-motion blur,ESM-SG-MB)對(duì)運(yùn)動(dòng)物體進(jìn)行追蹤。該算法將模板圖像劃分成若干子網(wǎng)格,剔除了低梯度的子網(wǎng)格,增加了追蹤效率,并且在ESM算法的基礎(chǔ)上引入了攝像頭快門時(shí)間,以適應(yīng)運(yùn)動(dòng)模糊的情況。
在基于視覺的追蹤系統(tǒng)中,局部特征的檢測和匹配是不可缺少的一步。BRIEF是利用局部圖像領(lǐng)域內(nèi)隨機(jī)點(diǎn)對(duì)的灰度大小關(guān)系來建立局部圖像特征描述子,得到的二值特征描述子不僅匹配速度快,而且對(duì)存儲(chǔ)要求低,所以在手機(jī)應(yīng)用中具有良好的發(fā)展前景。隨機(jī)點(diǎn)對(duì)的分布可以是任意的也可以是按照一定分布排列的。在Calonder等的實(shí)驗(yàn)中表明,在特征點(diǎn)中心周圍的采樣準(zhǔn)則服從各向同性的同一高斯分布時(shí),會(huì)有較好的識(shí)別結(jié)果。
以特征點(diǎn)為中心,取S×S(S可變)的鄰域大窗口,在大窗口中隨機(jī)選取n對(duì)點(diǎn),對(duì)這n對(duì)點(diǎn)分別做高斯平滑,比較n對(duì)像素點(diǎn)的灰度值大小。式1定義了一個(gè)二進(jìn)制碼,其中p(x)、p(y)分別表示在圖像塊p上,x和y處像素的灰度值。
(1)
最后把通過式1得到的n個(gè)二進(jìn)制碼組成一個(gè)n維向量,如下所示:
(2)
由式2可知,一個(gè)關(guān)鍵點(diǎn)的二進(jìn)制特征描述子反映了n對(duì)像素點(diǎn)的灰度值,這n對(duì)像素點(diǎn)的取樣采用各向同性的同一高斯分布,可以用矩陣A表示這n對(duì)像素點(diǎn):
(3)
其中,xi和yi表示圖像平面坐標(biāo)系中每對(duì)像素點(diǎn)的位置。
為了使BRIEF描述子具有旋轉(zhuǎn)不變性,需要在矩陣A上加入一個(gè)旋轉(zhuǎn)變量Rθ,Rθ由移動(dòng)設(shè)備內(nèi)置的傳感器獲得。由于慣性傳感器會(huì)受到噪聲影響,所以用卡爾曼濾波器[11]對(duì)傳感器獲取的信號(hào)進(jìn)行濾波,得到f(Rθ,Kg),使得Aθ=f(Rθ,Kg)A。其中Kg表示卡爾曼增益,f表示信號(hào)經(jīng)過卡爾曼濾波器時(shí)的變換函數(shù)。加入旋轉(zhuǎn)的BRIEF二進(jìn)制描述子的定義如下:
(4)
其中,p表示一個(gè)圖像塊的特征描述子;θ表示慣性傳感器采集的一個(gè)特定的旋轉(zhuǎn)角;n表示二進(jìn)制描述子的維數(shù),通常為128,256或者512。
對(duì)于圖像特征點(diǎn)的提取,可以使用中心環(huán)繞極值特征(center surround extremas, CenSurE)[12]的方法,CenSurE特征具有特征點(diǎn)坐標(biāo)精確、計(jì)算效率高等特點(diǎn)。然后使用旋轉(zhuǎn)BRIEF二進(jìn)制描述子來描述所提取出的特征點(diǎn)并計(jì)算兩個(gè)二進(jìn)制描述子之間的漢明距離來進(jìn)行特征匹配。
ESM是Benhimane和Malis于2004年在 IROS上提出的算法[13-14]。該算法采用重構(gòu)誤差平方作為衡量模板圖像R與相機(jī)取得的幀圖像T相似性的指標(biāo),然后對(duì)于姿態(tài)空間進(jìn)行了在離群上的重新構(gòu)建,使得搜索的步長更為合理,在尋優(yōu)上使用的是二階近似的快速算法。ESM算法最大的優(yōu)點(diǎn)是不用計(jì)算Hessian矩陣,并且具有較快的收斂速度。
定義R(x)為模板圖像像素點(diǎn)的灰度,T(x)為目標(biāo)圖像像素點(diǎn)的灰度,x表示像素坐標(biāo)。模板圖像R上的點(diǎn)可以經(jīng)過某種變換,與目標(biāo)圖像T進(jìn)行比較。假設(shè)w(x;e)為在x處的像素經(jīng)過變換后得到的新的位置,其中e為變換參數(shù)。因此通過式5對(duì)變換參數(shù)e進(jìn)行估計(jì):
(5)
然而傳統(tǒng)的ESM算法模型并沒有考慮到運(yùn)動(dòng)模糊的情況,借鑒Tai Y W等[15]提出的適用于非均勻模糊的模型,這里定義物體運(yùn)動(dòng)模糊的模型為:
(6)
其中,e表示模板圖像的變換參數(shù);t0為相機(jī)快門打開時(shí)間;x表示模糊的像素的坐標(biāo)。
這里將R(w(x;e))在e=0處用二階泰勒展開式展開,得到:
(7)
其中,J(0)是R(w(x;e))在e=0處的雅可比矩陣;HR是它的Hessian矩陣。
將式7代入式6,可以得到圖像構(gòu)造模型的近似值:
(8)
這里為了計(jì)算簡單,假設(shè)模板圖像做簡單的線性運(yùn)動(dòng),即:
e=tβ
(9)
將式9代入式8可得:
(10)
為了避免計(jì)算Hessian矩陣HR,對(duì)T(β,t0)求一階導(dǎo)數(shù),得:
(11)
將式11得到的HR代入式10,圖像構(gòu)造模型為:
a(t0)J(0)]β
(12)
假設(shè)攝像頭獲取的圖像為T,可以計(jì)算出運(yùn)動(dòng)狀態(tài)β的估計(jì)為:
(13)
計(jì)算出的運(yùn)動(dòng)姿態(tài)β被加入當(dāng)前姿態(tài),該過程被反復(fù)迭代,直到收斂。
ESM算法進(jìn)行模板匹配追蹤時(shí),采用的是模板圖像的所有像素點(diǎn)。與ESM算法不同,ESM-SG-MB算法將模板圖像分成許多個(gè)子網(wǎng)格,從中篩選出符合條件的子網(wǎng)格進(jìn)行追蹤。追蹤的目標(biāo)圖像是根據(jù)模板圖像中心點(diǎn)附近的120×120個(gè)像素區(qū)域。將這塊區(qū)域分為5×5個(gè)小的子網(wǎng)格,每個(gè)網(wǎng)格有24×24個(gè)像素點(diǎn)。計(jì)算出每個(gè)子網(wǎng)格中的平均圖像梯度,只有當(dāng)該子網(wǎng)格的每個(gè)像素點(diǎn)的灰度級(jí)大于10時(shí),該子網(wǎng)格才會(huì)被用于追蹤。因?yàn)閷?shí)驗(yàn)表明,梯度低的圖像區(qū)域?qū)SM的收斂性沒有影響。
將這種改進(jìn)的ESM算法稱為ESM-SG-MB算法,可以通過修改快門時(shí)間,也就是t0的大小,來修改現(xiàn)在實(shí)現(xiàn)的ESM原型,使其對(duì)運(yùn)動(dòng)模糊有更好的適應(yīng)性。ESM-SG-MB算法的詳細(xì)過程見算法1。
算法1:ESM-SG-MB算法。
輸入:視頻幀frame;模板圖像R;
輸出:更新的姿態(tài)估計(jì)e。
(1)將模板圖像分割成5×5個(gè)小的子網(wǎng)格;
(2)剔除子網(wǎng)格每個(gè)像素灰度級(jí)小于10的網(wǎng)格;
(3)選擇合適的快門打開時(shí)間t0以及初始姿態(tài)估計(jì)e;
(4)已知初始變換為e,計(jì)算雅可比矩陣J(0)和JT(e);
(5)根據(jù)式13更新e,判斷是否收斂,如果不收斂則返回步驟4,否則結(jié)束。
圖1闡述了提出的追蹤算法流程。當(dāng)追蹤開始時(shí),系統(tǒng)先從攝像頭讀取視頻幀,如果是第一幀的話,系統(tǒng)就用CenSurE方法提取圖像的特征點(diǎn)并計(jì)算出各個(gè)特征點(diǎn)的旋轉(zhuǎn)BRIEF二進(jìn)制描述子的值。然后將模板圖像的二進(jìn)制描述子與目標(biāo)圖像相匹配,匹配成功后,進(jìn)入ESM-SG-MB追蹤算法繼續(xù)追蹤目標(biāo)圖像。在追蹤過程中,如果檢測到追蹤物體丟失,則重新進(jìn)行特征點(diǎn)的檢測與匹配。最后,當(dāng)系統(tǒng)檢測到當(dāng)前幀是視頻的最后一幀時(shí),追蹤結(jié)束。
用一臺(tái)智能手機(jī)(OPPO A57)來試驗(yàn)提出的追蹤方法。手機(jī)的CPU主頻為1.4 GHz,核心數(shù)為八核,操作系統(tǒng)為Android 6.0.1。用于追蹤的后置攝像頭像素為1 600萬像素,分辨率為1 280*20P/30 Hz且曝光時(shí)間可以調(diào)整。
圖1 追蹤算法流程
首先取一張經(jīng)典的Lena圖片作為目標(biāo)圖像,將圖片中點(diǎn)的120×120像素大小的圖片作為模板圖像。對(duì)Lena圖像進(jìn)行拍攝時(shí),對(duì)智能手機(jī)進(jìn)行旋轉(zhuǎn)操作,在隨機(jī)曝光時(shí)間下生成800張圖像,對(duì)于每一張圖像,分別用ESM追蹤算法、Inertial KLT 追蹤算法和提出的追蹤方法進(jìn)行追蹤,結(jié)果如圖2所示。
圖2顯示出ESM算法的旋轉(zhuǎn)不變性較差,與Inertial KLT相比,提出的追蹤算法的旋轉(zhuǎn)不變性更好。
接下來,采用室外環(huán)境下的運(yùn)動(dòng)模糊物體追蹤的視頻流進(jìn)行實(shí)驗(yàn),如圖3奔跑中的人的視頻序列所示,視頻中的人物從清晰到模糊。將模板圖像置為120×120像素,快門保持打開狀態(tài)。然后分別使用ESM追蹤算法、Inertial KLT算法和提出的追蹤方法,跟蹤情況如圖3所示。
圖2 不同旋轉(zhuǎn)角度下不同算法之間的對(duì)比
圖3 奔跑中的人
前期視頻流中的追蹤對(duì)象比較清晰,所以三種算法的追蹤效果都比較好。但隨著目標(biāo)物體的運(yùn)動(dòng)模糊越來越明顯,ESM和Inertial KLT追蹤算法的追蹤效果越來越差,而提出的追蹤算法對(duì)運(yùn)動(dòng)模糊有較強(qiáng)的抗干擾能力。圖4顯示了ESM算法、Inertial KLT算法、ESM-SG-MB算法在上述視頻中的追蹤結(jié)果對(duì)比圖,追蹤成功率定義為成功追蹤的幀數(shù)占當(dāng)前總幀數(shù)的比例??梢悦黠@看出,文中提出的算法在運(yùn)動(dòng)模糊的情況下,追蹤效果更好。
圖4 算法在視頻流中的對(duì)比
提出了一種運(yùn)用在移動(dòng)設(shè)備的室外AR追蹤方法。在BRIEF描述子的基礎(chǔ)上,加入了旋轉(zhuǎn)變量,使BRIEF二進(jìn)制描述子具有旋轉(zhuǎn)不變性。又改進(jìn)了ESM算法,使得系統(tǒng)在追蹤過程中能很好地適應(yīng)運(yùn)動(dòng)模糊。實(shí)驗(yàn)結(jié)果表明,該追蹤方法對(duì)目標(biāo)物體旋轉(zhuǎn)和運(yùn)動(dòng)模糊的情況有較強(qiáng)的抗干擾能力。在未來的工作中,可以考慮從降低移動(dòng)設(shè)備在追蹤時(shí)的計(jì)算量、提高實(shí)時(shí)性的方面進(jìn)行研究。