黃西瑩,王 潔,王嬌穎,閆 麗,陸 陽,李良福
(西安應(yīng)用光學(xué)研究所,陜西 西安 710065)
多源圖像融合,是通過特定算法提取多源圖像中的互補(bǔ)信息合成新圖像,使圖像視覺效果更好,特征表達(dá)能力更強(qiáng),能夠解決傳感器圖像源信息缺失、特定條件下信息獲取不充分的問題,在遙感、醫(yī)用等領(lǐng)域具有重要價(jià)值并得到廣泛應(yīng)用[1-2]。紅外圖像與可見光圖像融合是多源圖像融合研究的重點(diǎn)與熱點(diǎn),在光電觀測(cè)/偵察系統(tǒng),可彌補(bǔ)圖像屬性單一的缺點(diǎn),極大提高目標(biāo)的識(shí)別率和觀測(cè)效率[3-5]。
像素級(jí)圖像融合是多源圖像融合的重要方式,像素級(jí)圖像融合可增加圖像的細(xì)節(jié)信息,有助于圖像的進(jìn)一步分析、處理[6]。像素級(jí)圖像融合算法主要分為基于空間域的算法和基于變換域的算法[5]。圖像金字塔分解法(LP)是最常見的變換域算法,其操作計(jì)算量大,處理流程復(fù)雜,對(duì)處理單元的實(shí)時(shí)性能要求較高。
基于多核數(shù)字信號(hào)處理單元(DSP)進(jìn)行融合算法的實(shí)現(xiàn),如文獻(xiàn)[7-9]等,可以將部分運(yùn)算進(jìn)行并行處理,提高系統(tǒng)的實(shí)時(shí)性能,但實(shí)時(shí)性依舊有待提升。視頻分辨率的提升對(duì)實(shí)時(shí)處理性能的要求日益增大,而基于FPGA 的處理系統(tǒng),由于具有先天的并行結(jié)構(gòu)特征,在實(shí)時(shí)性實(shí)現(xiàn)方面具有突出優(yōu)勢(shì)。近年來,基于FPGA 實(shí)現(xiàn)多分辨率圖像融合系統(tǒng)的研究從未間斷,如文獻(xiàn)[10-14]等。在實(shí)時(shí)視頻處理架構(gòu)采取數(shù)據(jù)流模式之后,基于FPGA實(shí)現(xiàn)實(shí)時(shí)圖像融合的方法也有所改變,為移植后算法的通用性和實(shí)時(shí)性提供了保障。本文基于視頻流數(shù)據(jù)處理的架構(gòu),實(shí)現(xiàn)了兩路1 080P@60 Hz視頻的5 層拉普拉斯算法實(shí)時(shí)融合。
像素級(jí)圖像處理以金字塔變換最為常見,拉普拉斯金字塔(Laplacian pyramid,LP)以高斯金字塔為基礎(chǔ),提取圖像在卷積和下采樣過程中丟失的部分高頻細(xì)節(jié)信息而組成[15]。
假設(shè)輸入m×n的圖像G0作為高斯金字塔的底層,它的第l層圖像Gl由高斯窗口函數(shù)w對(duì)第(l-1)層圖像Gl-1卷積和下采樣得到:
式中:w(m,n)為2D 窗口函數(shù);N代表金字塔的最大層數(shù);Rl、Cl分別為第l層金字塔的行、列數(shù)量。將上述過程視為遞減操作,即Reduce 運(yùn)算,可表示為
為得到高斯金字塔第l層圖像Gl與第(l-1)層圖像Gl-1的差異,再擴(kuò)展Gl,得到圖像,具體插值過程為
從式中可知,新像素是原像素灰度值的加權(quán)平均。與圖像的縮小過程相反,圖像的擴(kuò)展操作可表示為
金字塔從l層擴(kuò)充到Gl層與Gl-1的差異為
再定義帶通濾波圖像序列函數(shù):
式中:N為拉普拉斯金字塔的總層數(shù);LPl代表拉普拉斯金字塔分解后的第l層圖像,則之后進(jìn)行圖像融合,本文采取代數(shù)融合,最頂層低頻圖層采用加權(quán)融合策略:
式中:LPAN為通道A圖像的N層拉普拉斯金字塔的頂層;LPBN為通道B圖像的N層拉普拉斯金字塔的頂層;LFN為融合圖像拉普拉斯金字塔的頂層;wA和wB分別為A、B兩路視頻低頻圖像的權(quán)重。高頻分量LFl-1(i,j)采用“絕對(duì)值取大”的融合策略:
按照分解的逆過程,重構(gòu)出融合后的圖像GF0,拉普拉斯重構(gòu)過程為
不同空間頻域上得到不同的圖像細(xì)節(jié)和特征,在不同的融合策略下突出這些細(xì)節(jié)和特征,是圖像拉普拉斯金字塔分解算法的最終目的。
目前,高清視頻已經(jīng)成為當(dāng)下主流,F(xiàn)PGA 芯片目前為實(shí)現(xiàn)強(qiáng)實(shí)時(shí)算法并行處理的首選器件。算法的流水線架構(gòu)設(shè)計(jì)以流水優(yōu)化加速成為本算法實(shí)時(shí)處理的關(guān)鍵。
本文以AXI4-Stream 視頻流作為視頻輸入源進(jìn)行兩路視頻圖像融合。融合算法主要由3 部分組成:源圖像的分解、融合金字塔的提取和重構(gòu),算法并行架構(gòu)設(shè)計(jì)如圖1 所示。
A、B兩路視頻輸入圖像同時(shí)進(jìn)行拉普拉斯金字塔分解,得到金字塔各層的分解圖層LPAn和LPBn,并進(jìn)行緩存;兩路視頻金字塔分解圖層的最頂層圖層LPAN和LPBN分別為低頻圖層,其余各層為高頻圖層LPAt和LPBt;分別進(jìn)行高、低頻圖層逐層的融合,時(shí)延補(bǔ)償處理,低頻圖層逐層向上Expand 后,與高頻圖層各層融合結(jié)果逐層相加,最終輸出融合結(jié)果。
圖 1 融合算法并行系統(tǒng)架構(gòu)Fig.1 Diagram of parallel system architecture of fusion algorithm
由于視頻源基本參數(shù)不同和拍攝角度等問題的影響,兩路視頻流在融合前需先經(jīng)仿射變換完成配準(zhǔn),本文該部分也使用FPGA 實(shí)現(xiàn),仿射變換參數(shù)通過上位機(jī)實(shí)時(shí)解算。在工程應(yīng)用中多數(shù)情況需要將電視通道的圖像細(xì)節(jié)融合到熱像通道來提升熱像的性能,因此,本文低頻圖層融合公式(9)中的權(quán)重WA和WB取值分別代表熱像通道低頻權(quán)重和電視通道低頻權(quán)重,取值分別位1 和0。
本文選擇5 層金字塔結(jié)構(gòu)和7 級(jí)流水線實(shí)現(xiàn)完整的圖像拉普拉斯金字塔融合全過程如圖2 所示。
如圖2 所示,其中:Gn表示高斯金字塔的圖層;Gn*表示對(duì)第Gn-1層高斯金字塔圖層上采樣后的結(jié)果圖層;LPn表示提取的拉普拉斯金字塔圖層,即Gn減去Gn*的結(jié)果;LFn表示融合金字塔圖層;GFn表示重構(gòu)金字塔圖層。A、B兩路配準(zhǔn)后的視頻同時(shí)進(jìn)入金字塔系統(tǒng),按照?qǐng)D2 左邊虛線框中所示,同時(shí)獨(dú)立完成各自的LP 金字塔提取過程,之后再進(jìn)行圖2 右邊虛線框所示的融合和重構(gòu)過程。本文高頻部分采取“絕對(duì)值最大策略”完成兩路視頻的融合過程,在逐層完成金字塔重構(gòu)過程,最終輸出融合結(jié)果LF0。具體的各級(jí)流水線設(shè)計(jì)和延時(shí)補(bǔ)償需求如下文。
圖 2 金字塔流水線設(shè)計(jì)Fig.2 Diagram of pipeline design of pyramid
第1 級(jí)流水線:源視頻圖像G0,逐個(gè)像素點(diǎn)采集,同時(shí)將G0復(fù)制為兩份視頻流;一路視頻流G0進(jìn)行緩存,進(jìn)行時(shí)延1;另一路視頻流G0進(jìn)行高斯降采樣濾波得到視頻流G1;
第2 級(jí)流水線:將G1復(fù)制為3 份,第1 路視頻流G1進(jìn)行高斯上采樣,得到視頻流G0*,同時(shí)G0*與G0的時(shí)延1 視頻流作差,得到LP0數(shù)據(jù)流,即G0-G0*=LP0;第2 路視頻流G1進(jìn)行時(shí)延2;第3 路視頻流G1進(jìn)行高斯降采樣得到視頻流G2;
第3 級(jí)流水線:重復(fù)第2 級(jí)流水線3 次,分別得到LP1、LP2、LP3和G5;
第4 級(jí)流水線:將數(shù)據(jù)流G5復(fù)制為兩份,一路視頻流G5進(jìn)行高斯上采樣,得到視頻流G4*,同時(shí)G4*與G4的時(shí)延5 視頻流作差,得到數(shù)據(jù)流LP4;另一路視頻流G5,即為低頻圖像視頻流,本文采取熱像通道視頻流G5作為低頻圖層融合結(jié)果,也就是LP5、LF5和GF5;
第5 級(jí)流水線:對(duì)A、B兩路視頻源的LP4~LP0數(shù)據(jù)流,各層進(jìn)行“絕對(duì)值最大策略”融合,得到融合數(shù)據(jù)流LF4~LF0,并分別進(jìn)入時(shí)延;
第6 級(jí)流水線:將視頻流GF5進(jìn)行高斯上采樣,并對(duì)得到的視頻流進(jìn)行時(shí)延6;LF4和進(jìn)行時(shí)延6 的數(shù)據(jù)流相加,得到視頻流GF4;
第7 級(jí)流水線:重復(fù)第6 級(jí)流水線操作4 次,最終得到視頻流GF0;GF0即為兩路視頻融合輸出結(jié)果。
在流水線處理過程中,每一級(jí)流水線進(jìn)行的操作不同,導(dǎo)致每級(jí)流水線耗時(shí)不同,需要進(jìn)行流水線時(shí)延補(bǔ)償,以便同時(shí)進(jìn)入下級(jí)流水操作。即圖2 中出現(xiàn)的時(shí)延1 到時(shí)延10。本文中的時(shí)延補(bǔ)償是通過FPGA 片上BRAM 實(shí)現(xiàn)的,通過控制數(shù)據(jù)流進(jìn)出BRAM 的不同深度來實(shí)現(xiàn)不同時(shí)延補(bǔ)償。
完成流水線設(shè)計(jì)后,算法并行架構(gòu)固定,優(yōu)化設(shè)計(jì)只存在每級(jí)流水線內(nèi)。從圖2 可以看出,并行設(shè)計(jì)優(yōu)化的重點(diǎn)是高斯降采樣和高斯上采樣兩個(gè)操作。這兩個(gè)采樣操作的重點(diǎn)即為5×5 大小窗口高斯濾波的優(yōu)化。
該濾波處理需要滿足緩存5 行數(shù)據(jù),通過行buffer 來實(shí)現(xiàn)緩存;濾波窗口5×5 大小通過window 及其相關(guān)操作來實(shí)現(xiàn)濾波核的填充和更新;高斯濾波運(yùn)算進(jìn)行完全并行處理,5×5 大小窗口的window 拆分成25 個(gè)獨(dú)立寄存器,同時(shí)獨(dú)立完成25 路算術(shù)運(yùn)算,實(shí)現(xiàn)高斯卷積。滿足每采集一個(gè)新的像素點(diǎn)的同時(shí)完成一個(gè)濾波結(jié)果像素點(diǎn)的輸出。
本文所述算法對(duì)于Xilinx 7 系列及以上FPGA芯片均可適用。算法在Xilinx Vivado HLS 2019.1環(huán)境下完成C 代碼、并行流水線、硬件資源分配以及RTL 級(jí)代碼轉(zhuǎn)化的設(shè)計(jì),最終生成一個(gè)帶有AXI4-Stream 接口的IP(intellectual property)核。輸入的兩路視頻源分別為電視視頻1 080 P@60 Hz、熱像視頻1 280×1 024@60 Hz,在Xilinx Vivado 2019.1環(huán)境下視頻轉(zhuǎn)化為AXI4-Stream 格式,通過仿射變換完成熱像視頻到電視視頻的配準(zhǔn)。由于兩路視頻源位置固定,配準(zhǔn)參數(shù)只需計(jì)算一次,離線計(jì)算后,在上電初始化時(shí)直接寫入FPGA 仿射變換的IP 核中,經(jīng)過配準(zhǔn)后的兩路1 080 P 視頻進(jìn)入融合算法IP 核。本文算法在一片Xilinx Xc7k325t FPGA上實(shí)現(xiàn)視頻融合驗(yàn)證,融合效果如圖3 所示。
圖3(a)和圖3(b)分別為電視、熱像配準(zhǔn)后的視頻輸入圖像,圖3(c)為電視通道融合到熱像通道的結(jié)果,圖3(d)到圖3(f)分別是圖3(a)到圖3(c)綠色方框內(nèi)放大圖像??擅黠@看到電視通道很多細(xì)節(jié)信息成功融合到熱像通道,紅色虛線框區(qū)域融合效果突出。圖4 給出了不同場(chǎng)景下該并行方法的融合結(jié)果圖。
圖 3 FPGA 并行實(shí)現(xiàn)融合算法效果圖Fig.3 Effect diagram of fusion algorithm of parallel implementation on FPGA
圖 4 不同場(chǎng)景融合效果圖Fig.4 Fusion effect diagram of different scenarios
本文采用圖像的峰值信噪比PSNR、圖像結(jié)構(gòu)相似性SSIM 和拉普拉斯平均(LS)差值作為客觀評(píng)價(jià)標(biāo)準(zhǔn),LS 的計(jì)算公式為
式中:LS 的值越高,說明圖像越銳化,對(duì)比度越高。而原熱像圖像與融合圖像LS 的差值越大,說明融合提取細(xì)節(jié)信息越多,融合效果越好。評(píng)價(jià)標(biāo)準(zhǔn)PSNR 和SSIM 值越小,原熱像圖像與融合圖像之間差別就越大,提取電視通道信息越多。圖3和圖4 中不同場(chǎng)景圖像的評(píng)價(jià)結(jié)果如表1 所示。
本文優(yōu)化方法在確保融合效果的前提下,通過并行化設(shè)計(jì)和資源優(yōu)化,極大降低了算法運(yùn)行時(shí)間。該算法在不同硬件平臺(tái)上,采用不同加速方式處理一幀兩路位寬為8 位、分辨率為1 920×1 080像素視頻融合,具體情況如表2 所示。
表 1 不同場(chǎng)景本文融合方法客觀評(píng)價(jià)結(jié)果Table 1 Objective evaluation results of proposed fusion method in different scenarios
從表2 可知,實(shí)現(xiàn)兩路高清視頻拉普拉斯金字塔融合,前兩種硬件平臺(tái)運(yùn)算時(shí)間太久,無法滿足工程化實(shí)時(shí)處理的要求;Jetson TX2 GPU 加速平臺(tái)可滿足小于40 幀頻的1 080 P 視頻實(shí)時(shí)處理;而本文優(yōu)化方法可實(shí)現(xiàn)小于95 幀頻的1 080 P 視頻實(shí)時(shí)處理。在工程應(yīng)用中,表2 列出的TI TM320C6455和Nvidia Jetson TX2 加速處理平臺(tái)在加速處理時(shí),均需使用DDR 進(jìn)行數(shù)據(jù)緩存,導(dǎo)致視頻鏈路時(shí)間增加1~2 幀的延遲。而本文基于AXI4-Stream 視頻流格式的優(yōu)化方法,無需DDR 進(jìn)行數(shù)據(jù)緩存,視頻鏈路僅ms 級(jí)時(shí)延。
表 2 不同平臺(tái)拉普拉斯融合算法實(shí)施時(shí)間對(duì)比Table 2 Comparison of implementation time of Laplacian fusion algorithm on different platforms
本文實(shí)時(shí)優(yōu)化方法,處理一幀兩路8 位位寬1 080 P 視頻的時(shí)間為10.535 ms,小于16.67 ms,滿足1 080 P@60 Hz 視頻實(shí)時(shí)處理要求。該優(yōu)化方法處理時(shí)延僅70 多μs,平臺(tái)整個(gè)視頻鏈路處理時(shí)延不到1 μs,實(shí)現(xiàn)了極低時(shí)延圖像融合系統(tǒng)。根據(jù)FPGA 并行處理的特性可知,數(shù)據(jù)流時(shí)鐘越高,處理一幀圖像融合的時(shí)間越少,整個(gè)系統(tǒng)時(shí)延更低。
本文優(yōu)化算法IP 核FPGA 資源占用情況如表3 所示,可以看出FPGA 資源占用率較低,BRAM占用率最大,僅為27.75%,所以更高幀頻和更大分辨率的實(shí)時(shí)圖像融合處理亦可實(shí)現(xiàn)。
表 3 FPGA 資源占用分析Table 3 Resource occupation analysis of FPGA
本文介紹了一種高清或超高清多源視頻拉普拉斯金字塔圖像融合算法的實(shí)時(shí)優(yōu)化方法,主要闡述了算法實(shí)現(xiàn)的整體并行構(gòu)架設(shè)計(jì)和金字塔多級(jí)流水線結(jié)構(gòu)設(shè)計(jì),以及并行處理中的時(shí)延補(bǔ)償和優(yōu)化處理,最終在FPGA 板卡上實(shí)現(xiàn)了兩路1 080 P@60 Hz 高清視頻的實(shí)時(shí)融合,并給出了不同圖像質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)的結(jié)果。該優(yōu)化方法實(shí)時(shí)性強(qiáng),資源占用率低,隨著工藝技術(shù)的發(fā)展,F(xiàn)PGA 芯片性能不斷提升,硬件資源不斷擴(kuò)充,本文實(shí)現(xiàn)方法可為4 k 分辨率及更多超高清視頻融合的實(shí)時(shí)處理提供參考。