強(qiáng)勇勇,郭俊文,馬玉皓,趙 巖,王立珂,謝洪濤
(北方自動控制技術(shù)研究所,太原 030006)
坦克裝甲車輛在行進(jìn)和突擊中需要實(shí)時對外界環(huán)境信息進(jìn)行感知,傳統(tǒng)通過觀察窗獲取外部信息的方式觀察角度小,周視反應(yīng)慢,容易被敵方鎖定和打擊。透視裝甲技術(shù)借助車載分布式傳感器,利用嵌入式視頻全景拼接技術(shù),將戰(zhàn)場信息投影在車載顯示器上,使裝甲車內(nèi)乘員能夠在無窗的駕駛艙內(nèi)“透視”裝甲,獲得對車外環(huán)境的實(shí)時感知能力,完成駕駛車輛與突擊作戰(zhàn)等任務(wù)[1]。在國外,透視裝甲已經(jīng)逐漸開始走向?qū)崙?zhàn),美國、俄羅斯、英國、以色列等軍事強(qiáng)國已經(jīng)紛紛推出了自己的透視裝甲系統(tǒng)[2]。
嵌入式視頻全景拼接作為透視裝甲的關(guān)鍵技術(shù)之一,直接關(guān)系到戰(zhàn)場信息能否被實(shí)時、準(zhǔn)確地獲?。?]。已有的嵌入式全景拼接算法存在以下兩個問題:一是實(shí)時性不好,和靜態(tài)圖像拼接不同,視頻拼接需要在極短的時間內(nèi)完成圖像采集、預(yù)處理、配準(zhǔn)、融合等計(jì)算工作,如果直接在嵌入式平臺上部署現(xiàn)有的圖像拼接算法,實(shí)時性很難滿足要求[4];二是復(fù)雜環(huán)境適應(yīng)性不強(qiáng),在實(shí)驗(yàn)室環(huán)境下,大部分的算法能夠很好地適應(yīng)環(huán)境并得到質(zhì)量合格的全景視頻,但在復(fù)雜戰(zhàn)場條件下,裝甲車輛快速運(yùn)動、抖動以及光照發(fā)生變化的情況下,就會產(chǎn)生錯位、重影等拼接缺陷[5]。
針對嵌入式視頻全景拼接中存在的實(shí)時性和錯位、重影缺陷問題,本文提出了一種基于局部多層次特征匹配的嵌入式視頻全景拼接算法。首先在局部區(qū)域?qū)D像進(jìn)行多層次特征匹配的方式,來優(yōu)化傳統(tǒng)配準(zhǔn)算法因只有一個全局單應(yīng)性矩陣,而導(dǎo)致局部配準(zhǔn)失敗出現(xiàn)錯位的問題,并通過LUT 查找表的方法,將不同層次的配準(zhǔn)信息加以存儲,提高了特征點(diǎn)提取的效率和質(zhì)量,滿足了戰(zhàn)場環(huán)境下的高實(shí)時性要求,最后通過查找最佳拼接線來消除視頻全景拼接中的重影缺陷。
圖像配準(zhǔn)是視頻全景拼接的關(guān)鍵步驟,直接影響拼接的最終效果。傳統(tǒng)的視頻拼接算法使用全局特征匹配的方法實(shí)現(xiàn)圖像配準(zhǔn)[6],這種配準(zhǔn)方法計(jì)算量大,實(shí)時性不強(qiáng)。由于攝像頭的相對位置固定,不同畫面之間的視場重疊角不發(fā)生變化,因此,可以采用重疊區(qū)域圖像配準(zhǔn)算法來加快算法的運(yùn)行速度。圖像配準(zhǔn)時使用圖像的重疊區(qū)域提取特征點(diǎn),計(jì)算單應(yīng)性矩陣,能夠大大減少特征點(diǎn)提取和匹配的數(shù)量,提高算法的實(shí)時性。重疊區(qū)域可以使用視頻的前幾幀進(jìn)行標(biāo)定(如圖1 所示),通過各個攝像頭的重疊角度和采集到的圖像確定出合理的重疊區(qū)域。為了盡可能提取到重疊區(qū)域內(nèi)的所有特征點(diǎn),選取的重疊區(qū)域需要比圖像的實(shí)際重合區(qū)域大5%~10%。
圖1 圖像重疊區(qū)域選擇
傳統(tǒng)方法通過一個全局的單應(yīng)性矩陣H 來完成圖像所有像素點(diǎn)的投影變換[7],這種方法容易受到個別錯誤或者遺漏特征點(diǎn)的影響,從而使全景圖像產(chǎn)生錯位。本文提出在一個場景中不同層次的特征點(diǎn)對應(yīng)著不同的H 矩陣,通過多層次特征匹配來獲得不同層次的H 矩陣,最大限度地保留了圖像不同層次下的特征匹配信息。該方法通過對初步粗匹配得到的特征點(diǎn)對多次使用RANSAC 方法[8-11]來提純得到多組不同的匹配點(diǎn)對集合,每組匹配點(diǎn)對集合代表了圖像不同層次的匹配信息。特征匹配算法如表1 所示:
表1 特征匹配算法
其中,每個網(wǎng)格的H 矩陣是利用高斯加權(quán)函數(shù)對各層的Hi進(jìn)行加權(quán)平均得到的:
高斯加權(quán)函數(shù)定義為:
其中,x?i是網(wǎng)格中心點(diǎn)在其圖像的第i 層中最近鄰的那個特征點(diǎn),σ 為比例常數(shù)。
單應(yīng)性矩陣H 計(jì)算完成之后,利用其對每個像素進(jìn)行仿射變換得到仿射圖像。由于攝像頭相對位置固定,因此,并不需要每幀都計(jì)算H,所以本文先通過正向投影(用單應(yīng)性矩陣H)得到全景圖像的大小和每一個仿射圖像在全景圖像中的位置,然后使用逆向投影變換,得到與全景圖像區(qū)域每個像素對應(yīng)的源圖像中的像素,并建立LUT 查找表[12]。
由于待拼接圖像間存在顏色和亮度差異,因此,配準(zhǔn)后得到的拼接圖像有一條明顯的拼接縫(如圖2 所示)。為了消除拼接縫以及幾何變換誤差帶來的重影,還需要對配準(zhǔn)之后的圖像進(jìn)行融合[13-14]。
圖2 拼接縫
圖3 拼接線示意圖
最佳拼接線查找是指在重疊區(qū)域搜索一條最佳拼接線,拼接線是圖像上連續(xù)的像素所組成的一條曲線,生成全景圖時,在線的左邊取左圖的信息,在線的右邊取右圖的信息,連接兩幅圖像,通過這種方式來減少由于同時加和兩邊的信息所造成的重影現(xiàn)象。以兩幅圖為例(如圖3 所示),通過仿射變換之后的圖像和參考圖像之間產(chǎn)生重疊區(qū)域abcd,在重疊區(qū)域查找一條最佳拼接線。最佳拼接線查找需要滿足兩幅圖像間的顏色差異較小和具有相似紋理特征的要求。
為了使拼接線兩邊的顏色差異盡可能小,可以通過比較像素點(diǎn)和像素均值的一維歐氏距離來判斷出該點(diǎn)是否顏色變化劇烈的點(diǎn)。若一維歐氏距離較大,則說明該點(diǎn)顏色變化劇烈,反之則不是。色彩差異關(guān)系式定義如式(4)所示。
其中,Ec是P 點(diǎn)5×5 范圍內(nèi)像素均值與該點(diǎn)像素值的一維歐氏距離。
為了使拼接線兩邊鄰近紋理盡可能相似,可以通過圖像在不同方向的梯度,來量化該像素點(diǎn)鄰域內(nèi)紋理變化的相似性。紋理變化關(guān)系式Eg的計(jì)算如式(5)所示,Eg越小,表示紋理結(jié)構(gòu)相似性越高,反之則越低。
一個好的拼接線不會穿越顏色變化明顯的區(qū)域,并且盡可能不對場景中的元素造成改變[15-16]。這些準(zhǔn)則可以通過結(jié)合兩個關(guān)系式得到能量計(jì)算關(guān)系式E(i,j),在其中搜索一條能量最小的路徑來實(shí)現(xiàn)。因?yàn)榻Y(jié)構(gòu)差異越大的物體能量越大,搜索的時候會盡量繞開,因此,能抑制鬼影的產(chǎn)生。同理,比起大的亮度差異,搜索更青睞小的亮度差異,因此,得到的拼接線在圖像中將不那么明顯。
實(shí)驗(yàn)使用的視頻采集設(shè)備包含2 路索尼IMX334 sensor,采集到的視頻通過MIPI 接口輸入Hi3559AV100 芯片,每路圖像分辨率為1 000×750,幀率為30 f/s。
實(shí)驗(yàn)中,將本文的改進(jìn)算法與OpenCV 中的Stitching 模塊全景拼接算法進(jìn)行比較。實(shí)驗(yàn)選擇同一場景下大小相同的兩路視頻進(jìn)行全景拼接,為了保證全景視頻的質(zhì)量,每隔30 幀更新一次LUT 查找表。處理器型號為Hi3559AV100,內(nèi)部集成雙核ARM Cortex A73,1.6 GHz。處理后的視頻通過HDMI接口輸出到一塊1 080 P 的顯示器上。做比較的OpenCV 版本為2.4.13。
通過實(shí)驗(yàn),在不同場景下,改進(jìn)算法與OpenCV中的Stitching 模塊全景拼接算法每幀提取的特征點(diǎn)數(shù)量、平均時間開銷如表2 所示,改進(jìn)算法和Stitching 模塊全景拼接算法提取到的特征點(diǎn)如圖4所示。結(jié)合表2 和圖4 可以發(fā)現(xiàn),改進(jìn)后的算法在特征提取的數(shù)量上有所下降,但是特征點(diǎn)的覆蓋范圍和Stitching 模塊全景拼接算法基本相同,更重要的是,每幀的平均時間開銷大幅下降,這對于提高實(shí)時性至關(guān)重要。
表2 特征點(diǎn)提取數(shù)量和平均時間開銷比較
圖4 特征點(diǎn)提取比較
在不同場景下,使用RANSAC 算法提純后的特征點(diǎn)匹配的數(shù)量及正確率如表3 所示,改進(jìn)算法和Stitching 模塊全景拼接算法的特征點(diǎn)匹配結(jié)果如圖5 所示。正確率表示提純后的匹配點(diǎn)對數(shù)量占所有匹配點(diǎn)對數(shù)量的百分比??梢园l(fā)現(xiàn),雖然改進(jìn)算法匹配點(diǎn)對數(shù)量略少,但是正確率比Stitching 模塊高。通過圖5 對比也能發(fā)現(xiàn),改進(jìn)算法的匹配點(diǎn)對基本包含了通過Stitching 模塊提取到的關(guān)鍵匹配點(diǎn)對。
表3 特征匹配數(shù)量和正確率比較
圖5 特征點(diǎn)匹配結(jié)果比較
在不同場景下,生成全景圖像每幀平均時間開銷如下頁表4 所示,通過計(jì)算可以發(fā)現(xiàn),改進(jìn)后的算法幀率能夠達(dá)到30 f/s 左右,是Stitching 模塊拼接幀率的4 倍左右,畫面流暢,基本滿足嵌入式視頻全景拼接的實(shí)時性要求。拼接得到的全景圖像如圖6 所示,可以發(fā)現(xiàn),拼接得到的全景圖像沒有發(fā)生扭曲變形,沒有明顯的色彩差異,也沒有出現(xiàn)重影、錯位等拼接缺陷,質(zhì)量滿足視頻全景拼接的要求。
表4 平均時間開銷比較
圖6 拼接結(jié)果
本文提出了一種基于局部多層次特征匹配的嵌入式視頻全景拼接算法,通過對圖像進(jìn)行局部特征提取和建立最終的LUT 查找表,來提高視頻全景拼接的實(shí)時性,通過提取不同層次的單應(yīng)性矩陣H避免拼接中出現(xiàn)的錯位問題,并通過基于能量關(guān)系的最佳拼接線查找算法,有效抑制了拼接中的重影缺陷。實(shí)驗(yàn)結(jié)果表明,該算法比OpenCV 中的Stitching 模塊全景拼接算法,在平均每幀提取的特征點(diǎn)數(shù)量、特征點(diǎn)匹配數(shù)量上略有下降,但是正確率明顯提升,時間開銷也明顯下降,滿足視頻全景拼接實(shí)時性的要求,并且最終的全景圖像沒有出現(xiàn)明顯的拼接缺陷。本文研究尚有不完善之處,如圖像色差校正、多路視頻并行處理等,將在后續(xù)研究中加以完善。