吳彧
(四川大學(xué)計算機學(xué)院,成都 610065)
在運動視點下跟蹤平面物體是計算機視覺領(lǐng)域中的重要問題之一。精確、魯棒的平面目標(biāo)跟蹤直接決定了增強現(xiàn)實、無人機和無人駕駛汽車等領(lǐng)域的應(yīng)用效率。目前,國內(nèi)外已經(jīng)提出了許多方法來解決這些困難。然而,由于在視點移動過程中會出現(xiàn)縮放、旋轉(zhuǎn)等情況,跟蹤仍然是一項艱巨的任務(wù)。特別是在戶外,與室內(nèi)情況相比,跟蹤的穩(wěn)定性和準(zhǔn)確性很難得到保證。因此,我們致力于解決上述問題,并在結(jié)合校準(zhǔn)算法和模型匹配算法的基礎(chǔ)上,提出了一種有效而魯棒的方法。
到目前為止,主流方法可以分為兩類,一類是基于模板的方法[1],另一類是基于關(guān)鍵點的方法[2-3]。第一類方法不考慮特征點,而是直接利用平面信息,通過最小化測量兩幀間誤差來估算模板的轉(zhuǎn)換參數(shù)。這些方法在復(fù)雜環(huán)境中工作良好,但是容易受到諸如快速移動、部分不可見等因素的影響。另一部分提取原始特征以適應(yīng)各種影響。這些方法依賴于圖像梯度來勾勒被跟蹤物體的輪廓或提取幾何特征以形成用于二維匹配的描述子。雖然它們已被證明在跟蹤過程中是有效的,但它們可能在不包含可提取統(tǒng)一特征集的復(fù)雜圖像中失效。
在本文中,我們介紹了一種新的平面物體跟蹤方法,該方法基于光流和邊緣特征匹配的對平面進行跟蹤,并通過單應(yīng)性矩陣對目標(biāo)圖像坐標(biāo)進行約束。與以前的方法不同,我們的算法對室內(nèi)或戶外視頻都可適用。由于照明變化、快速運動和豐富紋理的影響,在復(fù)雜場景中難以提取平面邊緣相關(guān)特征,并且在特征匹配過程需要在亮度和位置上都具有高精度,因此我們面臨的主要挑戰(zhàn)是邊緣特征描述子的構(gòu)建以及特征匹配的算法。
我們通過以下三個主要步驟來解決這些挑戰(zhàn),改善平面跟蹤:①每條線上的初始點集位置由前一幀的光流跟蹤獲取。然后通過使用基于光流點的線段檢測算法來挑選當(dāng)前幀的候選線段。②我們用顏色亮度和幾何信息的組合將候選線段建模成邊緣特征描述子。我們將相應(yīng)的描述子和估算的直線位置合并到一個統(tǒng)一的直線匹配框架中,從而可以優(yōu)化候選集,進行匹配。③為了彌補光流的不足以及特征匹配的失效,我們用單應(yīng)性矩陣進行平面邊緣的形狀矯正。上述方法已在Temple University基準(zhǔn)數(shù)據(jù)集上進行了測試,并獲得了準(zhǔn)確和穩(wěn)定的實驗結(jié)果。
我們假設(shè)視頻序列當(dāng)前幀為第k+1幀,前一幀為第k幀,算法具體流程圖如圖1所示。
圖1 算法流程圖
我們首先通過光流法跟蹤第k幀平面目標(biāo)物體輪廓上的點集。由于光流跟蹤算法較為耗時,所以我們放棄全局光流而采用稀疏光流來跟蹤平面上的目標(biāo)點集。盡管全局光流的精度要更高些,但是LK稀疏光流既可以提高效率,也可以省略其余雜點的多余計算,精度的缺失可以用后續(xù)的處理與優(yōu)化來彌補。有了從k幀上光流跟蹤而來的點,可以大致計算出當(dāng)前第k+1幀的對應(yīng)點的圖像坐標(biāo)。然后采用Canny算法來檢測第k+1幀中所有包含光流跟蹤結(jié)果的凸包內(nèi)的輪廓邊緣,根據(jù)梯度一致性選出其中存在的線段集合,并編上序號,提供給后續(xù)處理。為了選擇更有可能位于平面邊緣上的線段,我們根據(jù)候選線段到角點的距離、內(nèi)點數(shù)量和斜率的相似度給每條線段一個綜合分?jǐn)?shù)。
公式(1)中L(tt=1,2…n)表示候選線段(假設(shè)有n條候選線段,下標(biāo)t表示線段序號),L(ll=1,2,3,4)是第k幀內(nèi)被跟蹤的樣本邊緣線段,d1和d2并且分別表示從候選線段到兩個最近角點的歐氏距離。Ninlier是內(nèi)點的數(shù)量,Nsum是內(nèi)點和外點的總和。kt和kl分別是Lt和Ll的斜率,ω1,ω2,ω3分別是權(quán)重參數(shù)。根據(jù)從低到高的分?jǐn)?shù),只有前五個可以保留用于后續(xù)處理。本文的剩余部分將選定候選線段的集合表示為S。
有了這些候選線段目標(biāo)就可以邊緣特征描述子的構(gòu)建。首先在線段上進行采樣,并將平面邊緣的順時針方向設(shè)置為取樣方向,線段長度同比例獲取采樣數(shù)量。為了確保特征描述子的光照不變性和旋轉(zhuǎn)不變性,我們沿目標(biāo)線段梯度方向獲取三個點集,分別是在梯度平面外,梯度平面內(nèi)和平面邊緣上。采樣點的按照一定順序記錄在一種三維向量中,形成該目標(biāo)線段的特征描述子,如下所示:
在公式(2)中,?fCB是從點 C到B的梯度,?fCA是從點C到A的梯度,?fAB是從點A到B的梯度,RC,GC,BC是RGB顏色空間中的點C的通道值。如圖2所示,點C在目標(biāo)邊緣上,而A在平面內(nèi),B在平面外,藍色虛線框內(nèi)的線段即目標(biāo)線段。該特征向量除以通道值的模是為了消除顏色空間中的光照影響。
圖2 邊緣特征描述子示意圖
在正式匹配之前,我們根據(jù)光流跟蹤點計算出每條平面邊緣的最小外接圓,并在圓內(nèi)將合格的候選線段補全,同一組中的候選線段就可延長成相同外接圓內(nèi)的某一條割線,通過線段的補充,我們可以計算出原先短線的相對位置并在同一位置與樣本邊緣進行匹配過程,從而可以減少由錯位引起的匹配誤差。
構(gòu)建好邊緣特征描述子后,我們用顏色直方圖的方式統(tǒng)計特征向量的概率分布。當(dāng)進行特征描述子的兩兩匹配時,我們根據(jù)直方圖的相似度來進行篩選,符合要求則認(rèn)為匹配成功,可得出當(dāng)前幀的平面邊緣結(jié)果;否則將被認(rèn)為匹配失敗,將進行后續(xù)基于單應(yīng)性矩陣的形狀矯正。
我們將S集合內(nèi)的每個線段與被跟蹤的對象邊緣進行匹配,并為每個邊緣選擇最佳的匹配線段,然而平面對象的邊緣可能因為一些特殊情況無法在S中找到任何行進的段,例如平面對象的一部分被遮擋、視點移動速度較快或者特征匹配失效等。因此,我們需要計算單應(yīng)矩陣H來完成平面邊緣的矯正。因為單應(yīng)性矩陣的獲取需要同一平面內(nèi)的特征點對,我們通過使用SURF算法將第k幀每個跟蹤對象與它們在第k+1幀中的對應(yīng)點關(guān)聯(lián)起來,然后獲取多組前后幀對應(yīng)點對,用RANSAC的算法計算出單應(yīng)性矩陣H。并用該單應(yīng)性矩陣表示相鄰兩幀的同一平面的變換關(guān)系,以此來求出第k+1幀中的平面邊緣上點集。單應(yīng)性矩陣求解公式如公式(3)和(4)所示。
其中,X為第k幀平面邊緣點集,設(shè)Xin為與目標(biāo)平面共面的平面上采樣X點集,Xout為Xin經(jīng)過SURF算法計算得到的第k+1幀對應(yīng)點集。由這兩者運用RANSAC算法得到一個最佳的單應(yīng)性矩陣H,進而算出由第k幀中X點集映射到第k+1幀上的對應(yīng)點集X′,以此來保證平面邊緣整體的輪廓形狀,有效地減少錯誤追蹤點,解決顏色匹配失效和遮擋的問題。
本文是在3.10 GHz CPU,8 GB內(nèi)存的PC上運行算法。軟件環(huán)境為VS2010+OpenCV2.4.9。我們用三組實驗對比圖來說明,在三種情況下,我們的算法與CCRE[4]算法進行同幀對比。其中,圖3為縮放實驗,這種情況下視點會前后移動,目標(biāo)平面在圖像坐標(biāo)內(nèi)呈現(xiàn)縮小或者放大的情況。(a)(b)分別為CCRE算法和我們的算法效果圖??梢钥闯鑫覀兊乃惴ㄒ獪?zhǔn)確很多,CCRE在前期序列中還可以跟準(zhǔn),100幀以后開始出現(xiàn)偏差。圖4為旋轉(zhuǎn)實驗,視點會在原地進行順時針或者逆時針旋轉(zhuǎn),(a)為CCRE算法,在移動速度較快時,圖像比較模糊,會丟失跟蹤目標(biāo),(b)為我們的算法實驗,可以準(zhǔn)確地跟蹤到目標(biāo)平面,甚至目標(biāo)比較模糊,通過單應(yīng)性矩陣的形狀約束下也可以跟準(zhǔn)目標(biāo)。圖5為透視實驗,視點會從多個角度進行拍攝,目標(biāo)平面會在圖像內(nèi)發(fā)生透視形變,(a)為CCRE算法,當(dāng)形變程度較大時會失效,而(b)為我們的算法結(jié)果,可見準(zhǔn)確度要高于CCRE。總體來說,我們的算法要優(yōu)于CCRE。
圖3 縮放實驗對比
圖4 旋轉(zhuǎn)實驗對比
圖5 透視實驗對比
本文提出了一種面向增強現(xiàn)實的基于邊緣特征的平面目標(biāo)跟蹤算法,針對室內(nèi)或者戶外的平面目標(biāo)都可以進行有效的跟蹤。不同于基于視頻體或者圖像序列的后期跟蹤處理方式,本文通過對視頻中的每幀進行在線處理,滿足效率需求。在對視頻圖像中的平面目標(biāo)進行準(zhǔn)確跟蹤后,可以進一步對目標(biāo)識別、平面分割等拓展領(lǐng)域進行完善。
本文算法在視點抖動劇烈或者快速移動下進行測試時,特征比較模糊,難以提取與匹配,并且單應(yīng)性矩陣計算也會出現(xiàn)誤差,此時的跟蹤效果就會出現(xiàn)偏差,我們會針對這些問題進行后續(xù)的研究與解決。