毛 鑫, 閆立兵, 宋劍波, 楊一帆, 李 巖, 閆超奇
(1.中國(guó)航空工業(yè)集團(tuán)公司洛陽(yáng)電光設(shè)備研究所,河南 洛陽(yáng) 471000;2.陸裝駐洛陽(yáng)地區(qū)航空軍事代表室,河南 洛陽(yáng) 471000; 3.北京航空航天大學(xué),北京 102000)
為了能夠使光電設(shè)備高清晰度地全天候工作,往往需要多路異源視頻(如可見光與紅外)進(jìn)行圖像融合,利用不同的成像優(yōu)勢(shì)進(jìn)行互補(bǔ)[1]。然而,用于融合的兩路異源視頻輸入往往會(huì)因?yàn)楣鈱W(xué)系統(tǒng)和空間位置的差異而造成兩路圖像存在視差,進(jìn)而造成圖像融合時(shí)出現(xiàn)虛邊、偽影問題。因此,圖像融合的前提條件是進(jìn)行高精度的圖像配準(zhǔn),圖像配準(zhǔn)就是找到浮動(dòng)圖像到參考圖像間的位置映射關(guān)系,對(duì)兩幅圖像間由視差造成的空間位置和圖像位置不對(duì)應(yīng)的點(diǎn)進(jìn)行校正。圖像配準(zhǔn)的準(zhǔn)確度將在很大程度上影響圖像融合的效果。
從20世紀(jì)70年代發(fā)展至今,圖像配準(zhǔn)領(lǐng)域涌現(xiàn)出大量行之有效的算法。針對(duì)異源圖像配準(zhǔn)問題,2017年,楊歡等[2]在SURF特征基礎(chǔ)上提出了改進(jìn)的SURF算法用于可見光與紅外的異源圖像配準(zhǔn),提升了配準(zhǔn)精度,在一定程度上縮短了計(jì)算時(shí)間;2021年,劉鵬南等[3]提出了一種基于尺度不變特征變換的異源圖像配準(zhǔn)方法,獲取的圖像特征更為穩(wěn)定可靠;深度學(xué)習(xí)是目前圖像處理算法的主流趨勢(shì),2020年,魏少瑋[4]針對(duì)基于深度學(xué)習(xí)的異源圖像配準(zhǔn)進(jìn)行多方面研究,提出了一系列優(yōu)化策略,彌補(bǔ)了特征表征能力不足的問題,但也帶來了更大的計(jì)算量??v觀當(dāng)前算法,其普遍存在的問題是無法實(shí)現(xiàn)配準(zhǔn)精度與配準(zhǔn)實(shí)時(shí)性的統(tǒng)一。
下面,將首先介紹本文提出的圖像配準(zhǔn)算法,接著將闡述本文算法在嵌入式平臺(tái)上的移植及測(cè)試。
隨機(jī)抽樣一致性(RANSAC)算法[5-6]可用于剔除不準(zhǔn)確的匹配點(diǎn),效果穩(wěn)定可靠,其利用多次迭代的方式來擬合一個(gè)最優(yōu)化數(shù)學(xué)模型。RANSAC算法數(shù)據(jù)擬合模型見圖1。
圖1 RANSAC算法數(shù)據(jù)擬合模型
在圖1(a)中,數(shù)據(jù)包含噪聲點(diǎn)和能形成一條直線的數(shù)據(jù)點(diǎn),首先選取數(shù)據(jù)集合中不共線的4個(gè)點(diǎn),計(jì)算其模型矩陣,并同時(shí)設(shè)定一個(gè)誤差閾值,算法將在誤差閾值范圍內(nèi)將數(shù)據(jù)點(diǎn)歸為待擬合直線中的點(diǎn)(稱為內(nèi)點(diǎn)),誤差閾值范圍外的數(shù)據(jù)點(diǎn)歸為待擬合直線外的點(diǎn)(稱為外點(diǎn)),之后通過不斷迭代擬合直線的數(shù)據(jù)點(diǎn),直到數(shù)量最多并保持不變,擬合出的直線如圖1(b)所示。
互信息[7]是信息論中的一個(gè)基本概念,其用于表征兩個(gè)系統(tǒng)之間的統(tǒng)計(jì)相關(guān)性,或者說在一個(gè)系統(tǒng)中包含另一個(gè)系統(tǒng)信息量的多少,互信息可以用熵來表示。假設(shè)某一個(gè)隨機(jī)現(xiàn)象共有n種可能,它們發(fā)生的概率分別是p1,p2,…,pn,則Shannon熵定義為
(1)
則兩個(gè)系統(tǒng)的互信息為
I(A,B)=H(A)+H(B)-H(A,B)=
H(A)-H(A|B)=H(B)-H(B|A)
(2)
式中:H(A)和H(B)分別是系統(tǒng)A和系統(tǒng)B的熵;H(A,B)是A和B的聯(lián)合熵;H(A|B)和H(B|A)分別表示已知系統(tǒng)B時(shí)A的條件熵和已知系統(tǒng)A時(shí)B的條件熵。
針對(duì)當(dāng)前異源圖像配準(zhǔn)算法難以實(shí)現(xiàn)精度和實(shí)時(shí)性兩全的問題,本文提出了一種綜合利用RANSAC和最大互信息的圖像配準(zhǔn)算法,并通過提出相關(guān)加速策略進(jìn)一步提升算法實(shí)時(shí)性,最終可實(shí)現(xiàn)在嵌入式平臺(tái)下的實(shí)時(shí)、準(zhǔn)確圖像配準(zhǔn)。
本文算法整體上分為初始配準(zhǔn)和實(shí)時(shí)配準(zhǔn)兩個(gè)階段,算法流程如圖2所示。
圖2 算法流程圖
本文之所以將算法劃分為兩部分,主要是出于對(duì)配準(zhǔn)效果和配準(zhǔn)實(shí)時(shí)性的綜合考量。
初始配準(zhǔn)算法采用RANSAC方法,用于對(duì)圖像的縮放尺度和旋轉(zhuǎn)角度進(jìn)行配準(zhǔn),計(jì)算比較耗時(shí),同時(shí),一般認(rèn)為視頻在后續(xù)采集過程中尺度和角度的變換關(guān)系是保持不變的,不必每幀都進(jìn)行尺度和角度的配準(zhǔn),因此,初始配準(zhǔn)算法僅用于對(duì)視頻初始幀進(jìn)行處理,之后將保存的變換參數(shù)應(yīng)用到后續(xù)幀中。
實(shí)時(shí)配準(zhǔn)算法采用最大互信息方法,用于對(duì)圖像進(jìn)行平移參數(shù)的配準(zhǔn),該算法計(jì)算速度較快,而且在視頻后續(xù)采集過程中平移參數(shù)時(shí)常會(huì)發(fā)生變化,因此,實(shí)時(shí)配準(zhǔn)算法將對(duì)后續(xù)每一幀進(jìn)行運(yùn)算,實(shí)時(shí)更新平移配準(zhǔn)參數(shù),最終將實(shí)時(shí)配準(zhǔn)參數(shù)與初始配準(zhǔn)參數(shù)進(jìn)行合并得到完整的配準(zhǔn)參數(shù)。
本文提出的基于RANSAC的圖像初始配準(zhǔn)算法主要包含如下幾個(gè)步驟。
1)分別對(duì)可見光和紅外圖像利用Canny算子進(jìn)行邊緣提取,這是因?yàn)楫愒磮D像的亮度信息相差較大,直接提取出的特征幾乎難以匹配,因此需要先進(jìn)行邊緣提取。
2)對(duì)兩路圖像的邊緣圖提取SURF特征[7]進(jìn)行邊緣特征點(diǎn)聚合。先生成SURF特征向量,兩路圖像中關(guān)鍵點(diǎn)相似性度量的依據(jù)采用特征向量的歐氏距離,具體地,通過K-d樹得到一個(gè)特征點(diǎn)到最近鄰特征點(diǎn)的距離dND,這一特征點(diǎn)到次近鄰特征點(diǎn)的距離為dNND,若dND/dNND小于設(shè)定閾值(本文設(shè)定為0.7),則認(rèn)為該匹配點(diǎn)對(duì)有效并保留,否則剔除,由此實(shí)現(xiàn)了兩幅圖像間粗略的特征點(diǎn)匹配。
3)在對(duì)SURF特征點(diǎn)粗匹配的基礎(chǔ)上,本文采用RANSAC算法調(diào)整特征集,進(jìn)一步剔除錯(cuò)誤的匹配點(diǎn)對(duì),具體步驟為:
① 從SURF特征點(diǎn)粗匹配結(jié)果中隨機(jī)抽取3對(duì)點(diǎn)建立方程組求解仿射變換矩陣;
② 利用①中求解的仿射變換矩陣計(jì)算剩余的匹配點(diǎn)變換后的對(duì)應(yīng)匹配點(diǎn),并求二者之間的距離;
③ 若②中計(jì)算的距離小于給定的閾值,則將其定為內(nèi)點(diǎn),否則為外點(diǎn),并統(tǒng)計(jì)在此仿射變換矩陣下的內(nèi)點(diǎn)數(shù);
④ 重復(fù)①~③多次,選擇具有最多內(nèi)點(diǎn)的點(diǎn)的集合作為內(nèi)點(diǎn),并通過最小二乘法利用這些內(nèi)點(diǎn)計(jì)算最優(yōu)化的仿射變換矩陣。
異源圖像配準(zhǔn)中,兩路視頻輸入源自不同類型的相機(jī),但是二者具有相同的信息基礎(chǔ),所以當(dāng)兩路視頻中當(dāng)前圖像的空間位置相同時(shí),其中一幅圖像中表達(dá)的關(guān)于另一幅圖像的信息(即對(duì)應(yīng)像素點(diǎn)的灰度值)的互信息應(yīng)為最大。令圖像A和B(系統(tǒng)A和B)的互信息為I(A,B),則
(3)
式中,
(4)
(5)
(6)
pAB(a,b)是系統(tǒng)A和系統(tǒng)B的聯(lián)合概率分布,hab(a,b)表示同一灰度級(jí)值對(duì)出現(xiàn)的次數(shù)。將式(4)~(6)代入式(3)中整理得到
(7)
兩路視頻偏差越大時(shí)互信息越小,反之,位移量越小時(shí)互信息越大,因此,對(duì)于兩路待配準(zhǔn)圖像,本文遍歷計(jì)算其在水平和垂直方向上不同大小位移量時(shí)的互信息值,取互信息值最大時(shí)的水平和垂直位移量即為實(shí)時(shí)配準(zhǔn)結(jié)果。
為了提高圖像配準(zhǔn)實(shí)時(shí)性,本文采用Powell優(yōu)化算法[8]搜索最大互信息值。Powell算法的實(shí)現(xiàn)步驟如下:
1)確定允許誤差ε(ε>0),初始點(diǎn)x(0)和n個(gè)線性無關(guān)的方向d(1,1),d(1,2),…,d(1,n),置k=1;
2)置x(k,0)=x(k-1),從x(k,0)出發(fā),依次沿著d(k,1),d(k,2),…,d(k,n)進(jìn)行一維搜索,得到點(diǎn)χ(k,1),χ(k,2),…,χ(k,n),再?gòu)摩?k,n)出發(fā),沿著方向d(k,n+1)=x(k,n)-x(k,0)做一維線性搜索,得到點(diǎn)x(k);
3)若||
x(k)-x(k-1)||
<ε,則停止搜索,得到點(diǎn)x(k),否則,置d(k+1,j)=d(k,j+1),j=1,2,…,n,k=k+1,返回2)。
本文基于最大互信息的圖像實(shí)時(shí)配準(zhǔn)算法流程如圖3所示。
圖3 基于最大互信息的圖像實(shí)時(shí)配準(zhǔn)算法流程圖
由于實(shí)時(shí)配準(zhǔn)階段只需要對(duì)圖像進(jìn)行平移變換配準(zhǔn),同時(shí)設(shè)定配準(zhǔn)參數(shù)取值范圍為[-5,+5](單位為像素,下同),出于對(duì)配準(zhǔn)速度和精度的考量,本文直接采用“十”字遍歷法來尋找圖像最大互信息值及其對(duì)應(yīng)位置,具體步驟如下。
1)設(shè)定初始位置點(diǎn)X0=[0 0]代表浮動(dòng)圖像(紅外圖像)相對(duì)于參考圖像(可見光圖像)的水平平移量和垂直平移量。給定兩個(gè)線性無關(guān)的方向向量dx=[1 0],dy=[1 0]分別代表浮動(dòng)圖像相對(duì)于參考圖像的水平平移方向和垂直平移方向。
2)從X0=[0 0]出發(fā),先沿著dx方向在[-5,+5]的搜索范圍內(nèi)完成一次水平方向的一維搜索,并根據(jù)每次搜索的位置(即水平平移參數(shù))對(duì)浮動(dòng)圖像進(jìn)行相應(yīng)的變換,變換之后計(jì)算兩幅圖像間的互信息值。
3)在水平搜索范圍[-5,+5]內(nèi)查找互信息的最大值和與最大值對(duì)應(yīng)的位置點(diǎn)Xmax x=[Dx0]。
4)從Xmax x=[Dx0]出發(fā),先沿著dy方向在搜索范圍[-5,+5]內(nèi)完成垂直方向的一維搜索,根據(jù)每次搜索的位置(即垂直平移參數(shù))對(duì)浮動(dòng)圖像進(jìn)行變換,然后計(jì)算兩幅圖像之間的互信息值。
5)在垂直搜索范圍[-5,+5]內(nèi)查找互信息的最大值和與最大值對(duì)應(yīng)的位置點(diǎn)Xmax=[DxDy],即為最終配準(zhǔn)參數(shù)。
采用FPGA+ARM架構(gòu)的Zynq硬件平臺(tái)實(shí)現(xiàn)本文算法。Zynq芯片的型號(hào)為xczu15eg-ffvb1156-2-i,本文配準(zhǔn)算法在其ARM端進(jìn)行運(yùn)算,F(xiàn)PGA端根據(jù)ARM計(jì)算出的配準(zhǔn)參數(shù),對(duì)浮動(dòng)圖像進(jìn)行仿射變換操作(即旋轉(zhuǎn)、縮放和平移),以此實(shí)現(xiàn)對(duì)兩路視頻的配準(zhǔn),同時(shí),F(xiàn)PGA端還負(fù)責(zé)進(jìn)行視頻輸入輸出通路搭建以及后期的圖像融合工作。
基于Zynq的圖像配準(zhǔn)硬件系統(tǒng)架構(gòu)如圖4所示。紅外視頻和可見光視頻首先分別通過視頻解碼芯片輸入到Zynq芯片的FPGA端;接著經(jīng)過Video In to AXI4-Stream模塊將視頻數(shù)據(jù)和同步信號(hào)轉(zhuǎn)為AXI4-Stream格式,并經(jīng)由VDMA模塊將AXI4-Stream格式的視頻數(shù)據(jù)保存到ARM端的DDR中;在ARM端中對(duì)輸入的兩路視頻圖像應(yīng)用本文算法進(jìn)行配準(zhǔn)運(yùn)算,計(jì)算得到的配準(zhǔn)參數(shù)(縮放倍數(shù)、旋轉(zhuǎn)角度和平移位移)通過AXI GPIO模塊從ARM端實(shí)時(shí)傳遞到FPGA端,在FPGA端根據(jù)配準(zhǔn)參數(shù)對(duì)浮動(dòng)圖像進(jìn)行仿射變換操作;最后在FPGA端將可見光視頻圖像與仿射變換后的紅外視頻圖像進(jìn)行融合,通過AXI4-Stream to Video Out模塊將AXI4-Stream格式數(shù)據(jù)轉(zhuǎn)化為帶有同步信號(hào)的視頻,并通過視頻編碼模塊進(jìn)行編碼輸出。
圖4 基于Zynq的圖像配準(zhǔn)硬件系統(tǒng)整體架構(gòu)
圖像仿射變化是一種計(jì)算量較大的操作,若放在ARM端直接進(jìn)行操作勢(shì)必影響整體算法的實(shí)時(shí)性,本文將這一處理轉(zhuǎn)移到FPGA端,充分發(fā)揮其流水線優(yōu)化和并行加速的優(yōu)勢(shì)進(jìn)行硬件算法加速,可將仿射變換的延時(shí)降低,充分保證配準(zhǔn)實(shí)時(shí)性。
本節(jié)的實(shí)驗(yàn)環(huán)境是實(shí)際場(chǎng)景,利用已經(jīng)初步校準(zhǔn)光軸的兩路相機(jī)進(jìn)行視頻采集,經(jīng)過2.4節(jié)搭建的硬件系統(tǒng),利用本文算法對(duì)配準(zhǔn)運(yùn)算后的圖像進(jìn)行融合,最終將融合后的圖像輸出。本文算法可實(shí)現(xiàn)對(duì)同源圖像和異源圖像的實(shí)時(shí)、精確配準(zhǔn)。
本文以兩路可見光相機(jī)采集的圖像進(jìn)行同源實(shí)驗(yàn)測(cè)試,硬件平臺(tái)輸出視頻結(jié)果如圖5所示。
圖5 同源圖像配準(zhǔn)實(shí)驗(yàn)結(jié)果對(duì)比
本文以一路微光相機(jī)和一路紅外相機(jī)采集的圖像進(jìn)行異源實(shí)驗(yàn)測(cè)試,硬件平臺(tái)輸出視頻結(jié)果見圖6。
圖6 異源圖像配準(zhǔn)實(shí)驗(yàn)結(jié)果對(duì)比
經(jīng)過上述實(shí)驗(yàn)測(cè)試可以看出,本文算法可以對(duì)同源或異源視頻圖像從縮放、旋轉(zhuǎn)、平移3個(gè)維度進(jìn)行高精度的圖像配準(zhǔn),配準(zhǔn)效果較好。
首先對(duì)圖像配準(zhǔn)質(zhì)量進(jìn)行定量計(jì)算。選用兩幅已配準(zhǔn)的圖像,對(duì)其中一幅圖像偏移指定的參數(shù),之后進(jìn)行定量實(shí)驗(yàn)并將實(shí)驗(yàn)結(jié)果與偏移參數(shù)進(jìn)行對(duì)比,結(jié)果如表1所示。
表1 定量分析
根據(jù)上述定量測(cè)試結(jié)果可以看出,本文算法的配準(zhǔn)誤差很小,可以作為一種有效的圖像配準(zhǔn)算法。
本文算法的著重點(diǎn)在于對(duì)算法實(shí)時(shí)性的優(yōu)化,下面將從實(shí)時(shí)性角度進(jìn)行實(shí)驗(yàn)測(cè)試,選用兩路分辨率均為1080像素的相機(jī)進(jìn)行視頻采集,通過本文搭建的硬件平臺(tái)進(jìn)行實(shí)時(shí)配準(zhǔn)處理,其中幾幀的配準(zhǔn)計(jì)算時(shí)間如表2所示。
表2 計(jì)算時(shí)間
在表2中,由于初始配準(zhǔn)參數(shù)計(jì)算僅在第一幀時(shí)進(jìn)行,后期將保持計(jì)算參數(shù)不變,因此不影響算法的整體實(shí)時(shí)性,所以表中配準(zhǔn)參數(shù)計(jì)算僅包含實(shí)時(shí)配準(zhǔn)參數(shù)計(jì)算。由表2可見,ARM端負(fù)責(zé)計(jì)算配準(zhǔn)參數(shù)的延時(shí)以及FPGA端加速的圖像仿射變換的延時(shí)綜合為處理一幀圖像的總時(shí)間,根據(jù)實(shí)驗(yàn)測(cè)試可得,對(duì)一幀圖像進(jìn)行配準(zhǔn)運(yùn)算的延時(shí)在30 ms上下,延時(shí)較低,符合整體硬件系統(tǒng)實(shí)時(shí)性要求。
下面從實(shí)時(shí)性角度將本文算法與SURF,AIR-net,F(xiàn)CN和GMI算法進(jìn)行定量對(duì)比,對(duì)比環(huán)境為PC機(jī)的仿真實(shí)驗(yàn)環(huán)境,結(jié)果如表3所示。
表3 各種算法的實(shí)時(shí)性定量對(duì)比
在上述5種算法對(duì)比中,本文算法耗時(shí)最短,實(shí)時(shí)性最強(qiáng),更利于在嵌入式平臺(tái)上進(jìn)行部署,實(shí)現(xiàn)高實(shí)時(shí)性的嵌入式圖像配準(zhǔn)系統(tǒng)。
本文提出了一種基于RANSAC和最大互信息的圖像配準(zhǔn)算法,其中,RANSAC方法用于初始配準(zhǔn)過程,負(fù)責(zé)進(jìn)行圖像縮放和旋轉(zhuǎn)配準(zhǔn),最大互信息方法用于圖像實(shí)時(shí)配準(zhǔn)過程,負(fù)責(zé)進(jìn)行圖像平移配準(zhǔn),由此最大程度地確保了配準(zhǔn)過程的實(shí)時(shí)性,實(shí)現(xiàn)了配準(zhǔn)精度和配準(zhǔn)速度的綜合考量。
在此基礎(chǔ)上,將本文算法進(jìn)行了基于Zynq架構(gòu)嵌入式硬件平臺(tái)的移植以及算法硬件加速,移植后的算法可實(shí)現(xiàn)相同的配準(zhǔn)精度,可對(duì)同源或異源視頻輸入實(shí)現(xiàn)高實(shí)時(shí)性的圖像配準(zhǔn)處理。