關(guān)鍵詞:光電偵察;實(shí)時(shí)性;全景拼接;SOC
中圖法分類號:TP312 文獻(xiàn)標(biāo)識(shí)碼:A
1引言
在光電偵察領(lǐng)域,全景圖像拼接理論、技術(shù)和方法一直是研究重點(diǎn)[1~4],在軍事、安防等方面具有重大的價(jià)值及應(yīng)用前景。它將同一場景獲得的多幅局部圖像拼接為一副寬視角的圖像[5],解決了單目攝像機(jī)不能完整顯示廣角360°圖像的問題,提高了圖像信息采集的完整度,增加了關(guān)鍵信息捕獲的效率與質(zhì)量。
然而,現(xiàn)有的全景拼接方案大都采用軟件處理的方式[6],該方式存在存儲(chǔ)圖像分辨率不足、實(shí)時(shí)性得不到保障[7~8]、拼接延遲較大、無法在拼接的基礎(chǔ)上引入其他復(fù)雜的圖像處理算法等局限,為了滿足上述需求,提出并設(shè)計(jì)一種高實(shí)時(shí)性、靈活的軟硬件解決方案變得愈發(fā)迫切。
本文提出并實(shí)現(xiàn)的全景拼接技術(shù)依托ZynqUltraScale為硬件設(shè)計(jì)平臺(tái),采用FPGA邏輯與高速DDR4存儲(chǔ)模塊完成了圖像處理及復(fù)雜計(jì)算,延遲低,可實(shí)現(xiàn)任意拼接圖像大小以及任意拼接行列數(shù)的切換功能,具備廣闊的應(yīng)用前景。
2全景拼接技術(shù)系統(tǒng)框架
本文所述全景拼接技術(shù)采用“UltraScale+ZU9EG”邏輯芯片為主處理器,圖像輸入采用1K高清紅外相機(jī),并以HDMI作為拼接顯示,硬件平臺(tái)如圖1所示。
通過片上FPGA系統(tǒng)開發(fā),完成了全景拼接技術(shù)部署,分為三大部分,即圖像預(yù)處理模塊、全景拼接模塊和HDMI顯示模塊。
圖像預(yù)處理模塊完成電子變倍功能,級實(shí)現(xiàn)1K圖像的縮放顯示,采用的雙線性插值方法極大保留原始圖像的真實(shí)性;拼接模塊對datamover IP核進(jìn)行控制配置,分割圖像讀寫DDR的時(shí)序,保證拼接視頻的輸出連續(xù)性。HDMI輸出模塊運(yùn)用GTH IP核結(jié)合FPGA邏輯實(shí)現(xiàn)serdes總線協(xié)議編碼輸出,節(jié)約了硬件系統(tǒng)資源與空間。
3設(shè)計(jì)與實(shí)現(xiàn)
3.1預(yù)處理模塊
為實(shí)現(xiàn)不同拼接子單元大小的改變,本文采用雙線性插值算法對1K紅外圖像進(jìn)行電子變倍預(yù)處理,該算法充分利用源圖中虛擬點(diǎn)四周的四個(gè)像素點(diǎn)來共同決定目標(biāo)圖形中的一個(gè)像素值,實(shí)現(xiàn)在不損失視場前提下的圖像尺寸變化。其實(shí)現(xiàn)公式如下:
srcX=(dstX+0.5)×(srcwidth/dstwidth)-0.5(1)
srcY=(dstY+0.5)×(srcheight/dstheight)-0.5(2)
其中,srcX為源像素所在列數(shù);srcY為源像素所在行數(shù);dstX為目的像素所在列數(shù);dstY為目的像素所在行數(shù);srcwidth為源圖像列;srcheight為源圖像行;dstwidth為縮放后圖像總列;dstheight為縮放后圖像總行。最后通過verilog編碼完成該算法的通用SOCIP核,其對外接口如圖2所示。
接口類型采用主流圖像接口幀有效vs、數(shù)據(jù)有效de、以及數(shù)據(jù)data,并通過AXI_lite總線實(shí)現(xiàn)ARM核的縮放倍數(shù)調(diào)度,確定srcwidth、dstwidth、srcheight、dstheight數(shù)值,實(shí)現(xiàn)動(dòng)態(tài)縮放預(yù)處理功能。
3.2全景拼接模塊
傳統(tǒng)圖像拼接技術(shù)利用上位機(jī)完成各視場子圖像的拼接排序,延遲較高且GPU資源使用較高,無法滿足日益增長的圖像拼接需求。本文依托XILINX獨(dú)有的AXI總線及交互協(xié)議,采用多級緩存、同步數(shù)據(jù)復(fù)位、高分時(shí)復(fù)用以及巧妙地信號握手、格式重組,完成了全景拼接算法的模塊化設(shè)計(jì),邏輯框架如圖3所示。每個(gè)幀周期完成當(dāng)前幀與上一幀圖像的存儲(chǔ),并通過乒乓操作將上一幀的內(nèi)容輸出顯示,從視覺上實(shí)現(xiàn)了動(dòng)態(tài)拼接過程的刷新顯示,與傳統(tǒng)軟件方式實(shí)現(xiàn)的全景拼接相比,實(shí)時(shí)性有顯著提升。
其具體實(shí)現(xiàn)分為輸入與輸出兩塊,利用FPGA的并行計(jì)算特點(diǎn),通過乒乓讀寫實(shí)現(xiàn)逐幀刷新。以2行2列拼接顯示為例,第一步:線程一將幀號為1的行列圖像輸入FIFO2單元,通過FIFO2進(jìn)行相應(yīng)的跨時(shí)鐘域操作并將圖像行列參數(shù)轉(zhuǎn)換為DDR_CTR所需的AXI_STREAM總線,并通過datamover IP核傳遞至ARM端DDR4進(jìn)行緩存,將其存儲(chǔ)于輸入存儲(chǔ)空間的“1”位置,該IP核實(shí)現(xiàn)對少量外設(shè)寄存器的控制以及PL中斷PS,PS調(diào)用中斷服務(wù)程序響應(yīng)。實(shí)現(xiàn)PL主動(dòng)通知PS,協(xié)調(diào)工作,傳輸連續(xù)大量的數(shù)據(jù)到DDR4存儲(chǔ)器,控制邏輯在PL部分實(shí)現(xiàn),由于片內(nèi)沒有足夠的BLOCK RAM所以在DDR3存儲(chǔ)芯里面共享一部分空間作為顯存,PL獨(dú)立于處理器主動(dòng)地從DDR4存儲(chǔ)器取數(shù)并顯示。
以實(shí)現(xiàn)一個(gè)S2MM寫為例,將1幀圖像緩存于FIFO1單元以便后續(xù)乒乓輸入;線程二將FIFO2中預(yù)存的上一幀(這里命名為“4”)通過與幀1同樣的方式轉(zhuǎn)換為AXI_STREAM總線,并通過datamoverIP核傳遞至ARM端DDR4進(jìn)行緩存,將其存儲(chǔ)于輸入存儲(chǔ)空間的“4”位置;線程三將輸出存儲(chǔ)空間2?2的圖片以FIFO3為媒介輸出。第二步:將幀號為2的行列圖像依照幀號為1的圖像進(jìn)行流水并將其存儲(chǔ)于步驟一中的輸出緩存空間,此時(shí)讀出步驟一中的輸入緩存空間,視覺效果即可實(shí)現(xiàn)幀號1到幀號2圖像的依次輸出。步驟三、步驟四等后續(xù)的操作模仿以上兩步進(jìn)行乒乓操作,即可實(shí)現(xiàn)全景拼接程序流水。
3.3HDMI解碼模塊
傳統(tǒng)的HDMI輸出采用硬件編碼芯片實(shí)現(xiàn)數(shù)字信號的并串轉(zhuǎn)換,本文充分利用了異構(gòu)SOC的并行計(jì)算特點(diǎn),采用FPGA邏輯實(shí)現(xiàn)了HDMI差分格式數(shù)據(jù)輸出,該IP核充分利用“UltraScale+”芯片特有的GTH IP核,該IP實(shí)現(xiàn)了并行數(shù)據(jù)信號的串行化編碼,結(jié)合HDMI輸出格式編寫相關(guān)控制邏輯,至此完成了該通用SOCIP核的設(shè)計(jì)。
4測試結(jié)果與分析
采用該技術(shù)實(shí)現(xiàn)的6行24列快速周視(單幅133?220)全景效果圖如圖4所示。
經(jīng)測試,設(shè)計(jì)的拼接延遲為1幀、實(shí)現(xiàn)了全景態(tài)勢信息的動(dòng)態(tài)更新,并可通過上方控制指令完成拼接模式切換、起停拼接任務(wù)等調(diào)度。
5結(jié)論
本文介紹了一種基于SOC硬件平臺(tái)的全景拼接技術(shù),該技術(shù)實(shí)現(xiàn)包括圖像預(yù)處理、全景拼接、HDMI顯示等模塊,并依次詳述了各模塊的功能和實(shí)現(xiàn);充分利用處理器獨(dú)有的AXI交互總線,完成了ARM端DDR與FPGA之間的高速通信與拼接顯示讀寫調(diào)度。該技術(shù)不僅可支持任意拼接圖像大小,還可支持任意行列、實(shí)時(shí)拼接360°全景視頻的功能,圖像延遲僅1幀,具備優(yōu)異的靈活性。
該研究成果可快速移植應(yīng)用于SOC架構(gòu)的其他硬件平臺(tái),具有較高的設(shè)計(jì)參考和應(yīng)用推廣價(jià)值。
作者簡介:
吳岳(1994—),碩士,助理工程師,研究方向:FPGA圖像。