劉 佳 閆 冬 郭 斌
(南京信息工程大學(xué)自動化學(xué)院, CICAEET, 南京 210044)
增強(qiáng)現(xiàn)實(shí)(augmented reality, AR)是在用戶觀察到的真實(shí)環(huán)境中添加計算機(jī)生成的虛擬物體或文字等信息的技術(shù)[1]。建立虛擬環(huán)境和現(xiàn)實(shí)物理世界的映射關(guān)系,智能實(shí)時地將相關(guān)信息融合呈現(xiàn)在位于現(xiàn)實(shí)環(huán)境的用戶前面,達(dá)到增強(qiáng)用戶臨場感知能力的目的[2]。該技術(shù)目前在手術(shù)醫(yī)療、軍事訓(xùn)練、工業(yè)維修、教育、交通導(dǎo)航上有著廣泛的應(yīng)用。增強(qiáng)現(xiàn)實(shí)的關(guān)鍵技術(shù)有跟蹤注冊、虛實(shí)融合和人機(jī)交互,這其中的核心是跟蹤注冊技術(shù)。目前基于視覺增強(qiáng)現(xiàn)實(shí)跟蹤注冊技術(shù)大致分為三大類,一類是基于四方黑白標(biāo)識的跟蹤注冊,一類是針對自然特征的匹配注冊,還有一類是通過建立局部地圖進(jìn)行虛擬注冊。其中第1種方法由于臨場環(huán)境的局限性限制了發(fā)展空間;第2種由計算機(jī)性能和算法決定系統(tǒng)運(yùn)行速度,不能保證系統(tǒng)實(shí)時處于穩(wěn)定狀態(tài);而第3種方法的代表則是SLAM/PTAM(simultaneous localization and mapping/parallel tracking and mapping),通過建立虛擬地圖獲得實(shí)時點(diǎn)的位姿關(guān)系進(jìn)行注冊,系統(tǒng)本身復(fù)雜度高,并且為了保證系統(tǒng)的穩(wěn)定性而犧牲了不小的運(yùn)行速度。
傳統(tǒng)基于自然特征點(diǎn)匹配的增強(qiáng)現(xiàn)實(shí)系統(tǒng)的實(shí)現(xiàn),是借助檢測算法檢測預(yù)存的目標(biāo)圖像和相機(jī)捕獲圖像之間的點(diǎn)對應(yīng)位置,計算之間的單應(yīng)性關(guān)系,從而實(shí)現(xiàn)虛實(shí)融合注冊。傳統(tǒng)的人工特征如尺度不變特征變換(scale invariant feature transform,SIFT)、加速魯棒特征[3](speeded-up robust features,SURF),兩者在移動端都不能實(shí)時穩(wěn)定運(yùn)行。為了能在移動端使用此類特征,Ethan等人[4]在2011年提出快速特征點(diǎn)提取和描述算法(oriented fast and brief, ORB)。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,部分研究者通過訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)以估計平面單應(yīng)性,這種算法在很大程度上節(jié)省了檢測和匹配所耗費(fèi)的時間,提高了系統(tǒng)的實(shí)時性。例如Nguyen等人[5]提出的無監(jiān)督深度單應(yīng)性估計模型。除了這種端對端的訓(xùn)練方式,也有很多人開始使用神經(jīng)網(wǎng)絡(luò)結(jié)合傳統(tǒng)的人工特征的深度學(xué)習(xí)算法進(jìn)行訓(xùn)練,如Verdie等人[6]提出的時間不變檢測器(temporally invariant learned detector,TILDE)算法,該特征對變化巨大的場景具備很好的魯棒性。盡管如此,TILDE算法卻缺少了特征描述符,需要借助傳統(tǒng)的方法進(jìn)行匹配。而Yi等人[7]提出的基于學(xué)習(xí)的不變特征變換(learned invariant feature transform,LIFT)算法通過soft-argmax函數(shù)和空間變化網(wǎng)絡(luò)實(shí)現(xiàn)從檢測到匹配的完整步驟,因此穩(wěn)定效果很好。從實(shí)時性考慮,如果上述基于深度學(xué)習(xí)的特征不借助GPU的并行運(yùn)算能力,很難達(dá)到實(shí)時運(yùn)行的目的。因而考慮現(xiàn)實(shí)條件,傳統(tǒng)的特征匹配方法仍然具備很大的優(yōu)勢。
本文基于自然特征識別注冊方法考慮,通過改進(jìn)FAST(features from accelerated segment test)檢測算法建立低維圖像空間進(jìn)行直方圖匹配,使其能快速定位,進(jìn)而利用SURF算法較好的魯棒性結(jié)合改進(jìn)后的卡爾曼濾波[8]算法進(jìn)行跟蹤注冊,實(shí)現(xiàn)匹配和跟蹤的結(jié)合。
本文提出了一種通過改進(jìn)FAST檢測作圖像粗略定位的算法。FAST算法本身不具備尺度不變性,為了能夠減少尺度變化對檢測效果的影響,建立圖像金字塔進(jìn)行降采樣(見圖1),使其具備尺度不變性。本文旨在提高檢測效率以保證在跟蹤目標(biāo)丟失時能快速定位目標(biāo)所在區(qū)域,在建立圖像金字塔時以1.2倍縮放采樣,采樣4次,當(dāng)檢測到關(guān)鍵點(diǎn)后保存關(guān)鍵點(diǎn)所在位置的RGB像素信息,將采集的像素信息重新分配到新建的3通道一維矩陣降低圖像維度。將新建的矩陣空間轉(zhuǎn)換成HSV圖像空間矩陣,然后建立HSV空間的顏色直方圖。除檢測目標(biāo)圖像外,還需將相機(jī)捕獲的圖像分割成5等份,分別建立顏色直方圖,以確定最大相似度[9](如圖2所示)。
圖1 采樣金字塔
圖2 5等分切割
本文使用的定位算法主要由以下3個要素構(gòu)成。
(1) 建立尺度空間
① 對第l層圖像進(jìn)行高斯卷積運(yùn)算。
② 將偶數(shù)行和列刪除:
gl-1(2i+m, 2j+n)
(1)
(2) 提取特征點(diǎn)
參考ORB算法的提取步驟,在粗提取時采用FAST特征檢測算法提取候選特征點(diǎn),以提取的候選特征點(diǎn)p為圓心,畫一個以3像素大小為半徑的圓,在圓周上的16個點(diǎn)內(nèi),檢測1、5、9、13位置上的點(diǎn)的灰度值是否有3個或以上都大于或小于p點(diǎn)的灰度值,如果不滿足則排除這個候選點(diǎn),如果滿足,檢測是否存在連續(xù)的12個點(diǎn)都大于或者小于p點(diǎn)的灰度值,如果滿足則此候選點(diǎn)為需要的特征點(diǎn)。使用非極大值抑制剔除密集點(diǎn),以保證特征點(diǎn)的分散性。
(3) 區(qū)域相似度檢測
將檢測到的特征點(diǎn)所在位置的3通道像素信息重新寫入到3通道n行1列的矩陣中,為了方便比較,將RGB空間轉(zhuǎn)換成HSV空間,使用如下相關(guān)性比較的方法。
d(H1,H2)
(2)
當(dāng)d越接近1,則表明圖像越相似;當(dāng)d<0.5時則表示圖像不相關(guān)(本文將d設(shè)置為0.6)。在本文算法中,建立直方圖進(jìn)行查找相關(guān)圖像是為了快速定位目標(biāo)圖像的大體區(qū)域,檢索的圖像尺度僅為320×240像素大小,為了提高待檢測圖像的準(zhǔn)確率,使用FAST算法在多尺度空間檢索特征點(diǎn)。將特征點(diǎn)的像素信息寫入新的一維圖像以加快檢測的速度,當(dāng)圖像跟蹤失敗時,可以更加快速穩(wěn)定地銜接視頻的連續(xù)性。
SURF算法是根據(jù)SIFT算法改進(jìn)而來,也具備尺度不變性、旋轉(zhuǎn)不變性和光照一致性,它很好地應(yīng)用在增強(qiáng)現(xiàn)實(shí)和機(jī)器人建模等領(lǐng)域。通過構(gòu)造Hessian矩陣,計算特征值。取Hessian矩陣為
(3)
當(dāng)det(H)=0時,取得局部極值,則認(rèn)為這個點(diǎn)是關(guān)鍵點(diǎn)。SURF算法使用盒式濾波器代替高斯濾波,為了削減誤差,則在x、y的二階導(dǎo)的方向乘上0.9得到:
det(Happrox)=LxxLyy-(0.9Lxy)2
(4)
與SIFT算法不同,在尺度空間上,SURF算法通過改變卷積核實(shí)現(xiàn)多尺度圖像的并行處理,減少了算法時間復(fù)雜度。在選取旋轉(zhuǎn)的主方向時,SURF算法通過以6s(s為興趣的尺度大小)鄰域內(nèi),統(tǒng)計Haar小波特征,在60 °內(nèi)找到每個響應(yīng)值賦以高斯權(quán)重系數(shù),從而確定主方向(如圖3所示)。
圖3 特征方向選擇
計算SURF特征點(diǎn)的描述子時,在特征點(diǎn)周圍選取4×4的區(qū)域塊,每個塊對應(yīng)有∑dx、∑|dx|、∑dy、∑|dy| 4個分向量,因此SURF描述子共有64維向量。采用K-means聚類算法[10]建立快速最近鄰索引。
(1) 隨機(jī)選取k個聚類質(zhì)心點(diǎn)(本文選取32個)為u1,u2, …,uk∈RN。
(2) 重復(fù)以下過程直到收斂。
① 對于每個點(diǎn),計算其應(yīng)該屬于的類:
(5)
② 對于每個類j,重新計算該類的質(zhì)心:
(6)
(3) 定義畸變系數(shù)。
(7)
畸變系數(shù)表示每個點(diǎn)到其質(zhì)心點(diǎn)的距離平方和,通過該算法將J約束到最小值。由于畸變系數(shù)是非凸函數(shù),所以質(zhì)心位置存在隨機(jī)性會導(dǎo)致最優(yōu)結(jié)果隨機(jī)化。但在多次實(shí)驗(yàn)中發(fā)現(xiàn),SURF特征檢測算法結(jié)合K-means匹配算法依然具備很好的魯棒性和實(shí)時性。
在位姿估計方面,對成功匹配的兩幅圖像(目標(biāo)圖像與檢測到的區(qū)域圖像)進(jìn)行單應(yīng)性矩陣[11]計算,通過隨機(jī)抽樣一致[12](random sample consensus,RANSAC)算法將不正常匹配的點(diǎn)剔除。當(dāng)確定兩幅圖像對應(yīng)點(diǎn)的坐標(biāo)位置后,可以使用下式進(jìn)行矩陣計算:
(8)
對未知數(shù)Hij(i,j∈1,2,3)至少存在3組不共線的匹配點(diǎn)才能計算出單應(yīng)性矩陣H,所以使用盡可能多的匹配點(diǎn)可以保證計算結(jié)果更具備魯棒性。與傳統(tǒng)方法一樣,通過模板圖像的4個邊界角找到對應(yīng)當(dāng)前幀的4個點(diǎn),即[xiyi1]T=H[xjyj1]T。對于增強(qiáng)現(xiàn)實(shí)的位姿計算來說,通過單目相機(jī)捕獲的二維像素坐標(biāo)和對應(yīng)確定的三維世界坐標(biāo)存在如下關(guān)系:
(9)
其中等號右邊的第1個矩陣表示相機(jī)的內(nèi)參矩陣,f為相機(jī)的焦距,Δx和Δy表示相機(jī)捕獲畫面的1個像素點(diǎn)在真實(shí)世界中的尺寸大小,u0和v0對應(yīng)相機(jī)的焦距中心點(diǎn)。第2個矩陣表示相機(jī)的外參矩陣,R為位姿的旋轉(zhuǎn)矩陣,表示為3×3的矩陣,T表示平移向量,表示為3×1的向量。式(9)中,旋轉(zhuǎn)矩陣R由世界坐標(biāo)的3個角度構(gòu)成,因此其構(gòu)成的3組方程中有6個未知量,其中1組不存在未知量,所以構(gòu)成了2組方程的6個未知量。為了求出6個未知量的解,則需要至少3組在平面坐標(biāo)中不共線的點(diǎn)構(gòu)成6組方程進(jìn)行求解。對于相機(jī)內(nèi)參和畸變系數(shù)求解,可以通過文獻(xiàn)[13]的棋盤標(biāo)定法獲得。
基于自然特征增強(qiáng)現(xiàn)實(shí)的圖像識別算法,一般運(yùn)用特征檢測算法進(jìn)行全局檢測,通過匹配到相應(yīng)目標(biāo)圖像的相關(guān)特征點(diǎn),使用光流法或直接法進(jìn)行持續(xù)跟蹤。這樣方法的優(yōu)點(diǎn)是速度快,但也存在魯棒性差、虛擬物體易丟失等缺點(diǎn)。并且由于光流法和直接法本身的局限性,不適合在戶外等光照變換大的場景下使用,所以這類方法不具備普遍適用性。本文針對此類算法的局限性,提出了新的算法,可適用于移動端和戶外等光線強(qiáng)度變換較大的場景。本文通過聯(lián)合SURF和改進(jìn)后的卡爾曼濾波算法,在連續(xù)跟蹤過程中,始終以最小的計算代價找到最大滿足SURF計算條件的區(qū)域。
圖4 改進(jìn)觀測值選取原理圖
圖5 區(qū)域跟蹤原理
首先根據(jù)卡爾曼濾波滿足的線性條件建立一個四維的狀態(tài)向量和二維的觀測向量,四維的狀態(tài)向量分別表示x、y的位置點(diǎn)和其對應(yīng)的速度值。通過運(yùn)動方程xk=Akxk-1+Bkμk+wk表示,由于缺少控制向量,則設(shè)Bk為0向量,滿足狀態(tài)轉(zhuǎn)移矩陣A=[[1,0,1,0][0,1,0,1][0,0,1,0][0,0,0,1]]T,可以理解為上一個狀態(tài)的位移量加上單位速度量則表現(xiàn)為當(dāng)前狀態(tài)的位移量,而考慮系統(tǒng)誤差和觀測誤差,令wk~N(0,Qk),vk~N(0,Rk)。觀測方程根據(jù)卡爾曼濾波表示為zk=Hkxk+vk,因?yàn)楸疚挠^測方程和狀態(tài)方程的特殊關(guān)系,Hk為2×4的矩陣,其中觀測方程只和當(dāng)前狀態(tài)向量的前二維有關(guān),即位移點(diǎn),所以取Hk=[[1,0,0,0][0,1,0,0]]T。為了滿足系統(tǒng)對狀態(tài)方程的最優(yōu)估計,需要在觀測階段對狀態(tài)值進(jìn)行校正,此時引入?yún)f(xié)方差矩陣進(jìn)行更新:
Pk|k-1=A·Pk-1|k-1·AT+Q
(10)
其中,Pk|k-1表示預(yù)測狀態(tài)值的協(xié)方差矩陣。通過當(dāng)前系統(tǒng)的預(yù)測結(jié)果和現(xiàn)在狀態(tài)的測量得到當(dāng)前狀態(tài)的最優(yōu)化估計:
xk|k=xk|k-1+Kk(zk-H·xk|k-1)
(11)
Kk表示當(dāng)前的卡爾曼增益系數(shù),由協(xié)方差矩陣P和測量矩陣H表示,即:
Kk=Pk|k-1·HT/(H·Pk|k-1·HT+R)
(12)
將此時的卡爾曼增益帶入最優(yōu)估計求解,并利用這個增益計算下一時刻所需要的協(xié)方差矩陣值:
Pk|k=(1-Kk·H)Pk|k-1
(13)
此時可以完整地通過觀測值預(yù)測下一時刻的中心點(diǎn)位置。但是觀測值的選取卻影響著整個系統(tǒng)的穩(wěn)定。如果觀測值出現(xiàn)較大的誤差,而預(yù)測值也將不準(zhǔn)確,在這里,本文通過改進(jìn)對觀測值的選取來改善整個系統(tǒng)的性能,方法如下。
(1) 初始化階段
建立非線性的損失函數(shù)模型,本文設(shè)置模型為
f(x)-exp(a·x2+b·x+c)
(14)
定義觀測數(shù)據(jù)N組(本文N設(shè)置為20),通過觀測數(shù)據(jù)建立最小二乘函數(shù):
argmin∑x‖f(x)-exp(a·x2+b·x+c)‖2
(15)
同時對前N組的初始值進(jìn)行賦值求解,如果對前N組全部賦值0,則最后求得的參數(shù)容易陷入局部最優(yōu)解,其待求參數(shù)在初始化階段被錯誤求解出來,因此在f(x)和x的取值為0的基礎(chǔ)上加上高斯擾動,令其處于波動狀態(tài)。
(2) 求解階段
在相機(jī)運(yùn)動或者目標(biāo)物體運(yùn)動過程中不完全符合本文所期待的運(yùn)動方式,為了保證給定擬合的數(shù)據(jù)不隨時增長導(dǎo)致擬合參數(shù)不準(zhǔn)確并且計算量大幅提升,在接受新的數(shù)據(jù)同時剔除老舊的數(shù)據(jù)使其維持在N的參數(shù)范圍內(nèi)。利用L-M方法迭代求解,最后通過已知參數(shù)尋找下一時刻單位的解,即求解預(yù)測的“觀測點(diǎn)”。
(3)判定階段
此時本文得到兩組觀測點(diǎn),一組是實(shí)際觀測到的點(diǎn),另一組是預(yù)測的“觀測點(diǎn)”。希望實(shí)際觀測的點(diǎn)是準(zhǔn)確的,但是不論是噪聲存在或者光照因素影響,觀測到的數(shù)據(jù)總可能是錯誤的,這里本文引入第三方評測指標(biāo)來判斷哪個值更準(zhǔn)確。
假設(shè)之前的觀測數(shù)據(jù)都是準(zhǔn)確的(或者觀測數(shù)據(jù)被矯正過),而卡爾曼濾波的預(yù)測值和下一幀的觀測之間也存在誤差,誤差可能很小。將這些誤差的絕對值建立一組擬合數(shù)據(jù),根據(jù)誤差增長率來判斷選取哪一個“觀測值”更可靠,同樣建立N-1組的數(shù)據(jù)來擬合線性方程,通過對第N組數(shù)據(jù)的預(yù)測來判斷卡爾曼濾波預(yù)測的值和其“觀測值”的相對誤差更接近:
{||zk-pk-1|-gk|}‖
(16)
本實(shí)驗(yàn)從實(shí)時性、穩(wěn)定性兩個因素進(jìn)行分析,對500幀圖像進(jìn)行尺度變換、旋轉(zhuǎn)變換、光照變換和視角變換這4種變化。使用全局SURF、ORB、FREAK[14]、ORB-LK[15]和本文提出的算法進(jìn)行比對分析,觀察運(yùn)行幀率和正確姿態(tài)注冊的圖像數(shù)目,采用fps為單位進(jìn)行實(shí)時性比對,穩(wěn)定性的單位采用正確姿態(tài)的注冊百分比。本次實(shí)驗(yàn)使用的測試平臺是Inter(R) Core(TM)i7-2600 CPU @ 3.2 GHz、8 G的DDR3內(nèi)存、羅技攝像頭、OpenCV3.3.1圖像視覺庫、OpenGL繪圖庫、Ubuntu16.04 LTS操作平臺。本文的總體流程圖如圖7所示。
圖6 改進(jìn)后卡爾曼預(yù)測更新流程圖
圖7 全局流程圖
本次實(shí)驗(yàn)設(shè)定攝像頭采集的分辨率為640×640像素、給定的模板圖像分辨率為415×585像素。為了提高穩(wěn)定跟蹤的實(shí)時性,在初始化和目標(biāo)丟失時需要重新定位目標(biāo)圖像的粗略位置以減少不必要的搜索空間。從實(shí)時性方向考慮,對給定的500幀圖像進(jìn)行采樣分析,每10幀計算其平均幀率,采樣50次,用本文算法和傳統(tǒng)方法如SURF、ORB、使用SURF+FREAK的組合的方式,和深度學(xué)習(xí)方法如SuperPoint[16](self supervised interest point detection and description)分別進(jìn)行比較,圖中的最低值為0,最高值為60,結(jié)果如圖8所示。
(a) SURF+FREAK
其中前3種算法屬于直接檢索全局圖像進(jìn)行實(shí)時匹配分析圖像的位姿關(guān)系,而本文為了縮減前期的定位時間,使用FAST算法進(jìn)行采集像素信息建立直方圖的方法以快速確定目標(biāo)圖像所在位置。本文算法中為了確保定位圖像的大部分區(qū)域?qū)儆谀繕?biāo)圖像,在相似度檢測算法方面設(shè)置閾值為0.6。
本文使用卡爾曼濾波器的預(yù)測值進(jìn)行尺度定位,結(jié)合SURF算法的觀測值不斷修正預(yù)測值結(jié)果。與其他目標(biāo)跟蹤算法不同,增強(qiáng)現(xiàn)實(shí)(AR)的跟蹤算法不僅需要目標(biāo)的位置和尺度信息,更依賴相機(jī)的姿態(tài)信息。目前已知關(guān)于位姿跟蹤的相關(guān)算法有IC(incerse compositional)[17]、ESM(improving vision-based control efficient second-order minimization techniques)[18]、Struck(structured output tracking with Kernels)[19]、Gracker(graph-based planar object tracker)[20]等。其中基于模板的IC和ESM算法對于遮擋不具備魯棒性,Struck對于光照性比較差,而Gracker算法依賴的SIFT描述子,在實(shí)時性方面不具備優(yōu)勢。因此本文使用卡爾曼濾波的方法,預(yù)測目標(biāo)的位置和尺度信息,通過觀測位姿信息校正目標(biāo)位置和尺度,跟蹤效果如圖9所示。
圖9 預(yù)測跟蹤效果
如圖9所示,□位置框表示觀測狀態(tài)值,▼位置框表示選定的預(yù)測值,▽位置框表示預(yù)測的“觀測”值,□對應(yīng)點(diǎn)表示觀測點(diǎn),▼對應(yīng)點(diǎn)表示預(yù)測點(diǎn),▽對應(yīng)點(diǎn)表示預(yù)測的“觀測點(diǎn)”。每隔10幀進(jìn)行取樣,得到一組如上所示軌跡圖。隨機(jī)選取目標(biāo)圖像由于目標(biāo)小,而預(yù)測的“觀測點(diǎn)”失誤,本系統(tǒng)很好地分析了哪組觀測點(diǎn)為正確的觀測點(diǎn)。對圖9(b)采樣500幀圖像,判斷預(yù)測區(qū)域和真實(shí)區(qū)域的交并比是否小于80%,如果小于此值判斷為丟失狀態(tài)。每50幀計算丟失次數(shù),共計10次。
表1 采樣跟蹤錯誤率
本文提出算法的實(shí)驗(yàn)效果為圖10所示。
圖10 三維注冊效果
為了驗(yàn)證本文算法的有效性,在不同的目標(biāo)上進(jìn)行不同的虛擬物體注冊,得到如圖11所示效果。
如圖9所示,本文提出的算法能實(shí)時預(yù)測下一幀目標(biāo)圖像大體的位置,并適時地調(diào)整檢測區(qū)域大小,得到效果如圖10的右側(cè)小窗口所示。通過這樣的檢測方法,得到的誤差點(diǎn)少,合適的匹配點(diǎn)多,因此能盡可能地減少匹配誤差,也能通過檢索縮減的匹配空間來增加實(shí)時性能。本次實(shí)驗(yàn)中,采集前500幀圖像,對第50幀、100幀、200幀、350幀和500幀進(jìn)行采樣,通過對SURF、ORB、SURF+FREAK和ORB-LK等幾種經(jīng)典算法和SuperPoints基于深度學(xué)習(xí)的特征點(diǎn)檢測和匹配方法進(jìn)行實(shí)時性和穩(wěn)定性比較,得到如表2和表3所示的結(jié)果。
圖11 隨機(jī)變換注冊
表2 各算法的實(shí)時性分析(單位為fps)
表3 各算法的穩(wěn)定性分析
從表中數(shù)據(jù)分析,使用ORB結(jié)合光流法代替匹配,可以大幅度提高算法的實(shí)時性,但是由于光流法對光照的敏感性,在第200幀之后穩(wěn)定性大幅度下降。使用SURF算法可以提高注冊結(jié)果的穩(wěn)定性,但是由于算法本身的時間復(fù)雜度高,所以其損耗的時間也比其他對比的算法時間長。本文算法在實(shí)時性方面比單純的SURF匹配提高了兩倍,其次在穩(wěn)定性方面和SURF全局算法相差無幾,因此本文提出的算法在幾種變換下都能很好地滿足實(shí)時性和穩(wěn)定性要求。
本文提出了一種基于改進(jìn)卡爾曼濾波的增強(qiáng)現(xiàn)實(shí)跟蹤注冊算法。該算法使用FAST檢測器在不同的金字塔層進(jìn)行采樣檢測并通過使用相關(guān)性比較的方法進(jìn)行快速定位目標(biāo)區(qū)域,以幫助系統(tǒng)在丟失再恢復(fù)時提高了穩(wěn)定性。采用改進(jìn)后的卡爾曼濾波結(jié)合SURF對目標(biāo)區(qū)域的位置和大小進(jìn)行觀測從而預(yù)測下一幀目標(biāo)圖像的區(qū)域大小和位置,以幫助提高系統(tǒng)的實(shí)時性。算法使用最小二乘的方法對卡爾曼濾波算法進(jìn)行改進(jìn),通過收集前N幀的先驗(yàn)信息對下一幀進(jìn)行約束矯正提高了系統(tǒng)的穩(wěn)定性。利用圖像的二維坐標(biāo)信息結(jié)合三維空間的坐標(biāo)信息,使用PnP算法獲得相機(jī)的位姿,利用OpenGL繪制虛擬物體,加載視圖矩陣以達(dá)到注冊的目的。實(shí)驗(yàn)表明,該算法可以穩(wěn)定在40幀以上的均率運(yùn)行,如果在穩(wěn)定性方向降低要求,使用ORB算法代替用來觀測的SURF算法還可以提高10幀左右的工作效率??傮w上,本文提出的算法在光照變換、旋轉(zhuǎn)變換、尺度變換方面都具備魯棒性,并且具有優(yōu)越的實(shí)時性能,同樣適用于相關(guān)的位姿跟蹤領(lǐng)域。