李勇,王磊,錢罕林
(新疆輕工職業(yè)技術(shù)學(xué)院信息與軟件分院,新疆烏魯木齊830021)
近年來視頻處理技術(shù)日新月異,以全景式、沉浸式用戶體驗為對象的視頻技術(shù)開發(fā)已成為研究熱點。FPGA器件以高性能、高可靠性、高運行速度、低設(shè)計周期、低成本和設(shè)計靈活等已成為視頻圖像處理的優(yōu)先選項。目前實時全景攝像機已充分融入網(wǎng)絡(luò)傳輸、云計算和大數(shù)據(jù)等新興技術(shù),發(fā)展迅猛。本次設(shè)計以FPGA為平臺,采用SIFT算法,對系統(tǒng)采取優(yōu)化設(shè)計,提出一種拼接全景視頻圖像的改進方法,旨在探索彌補在拼接中的實時性低的不足。設(shè)計中借助ARM平臺來輔助進行算法換算及圖像信號的壓縮和網(wǎng)絡(luò)傳輸,將圖像拼接參數(shù)送達FPGA最小系統(tǒng)處理最終呈現(xiàn)出實時全景圖像。文中重點探究FPGA平臺中的全景圖像的拼接模塊部分。
尺度不變特征轉(zhuǎn)換(ScaleInvariantfeaturetransform,SIFT)算法是由David G.Lowe創(chuàng)立的,它有以下幾個基本步驟:
SIFT算法中對圖像的尺度構(gòu)建是通過高斯算子的差分算子DOG算子實現(xiàn)的,G(x,y,σ)為高斯算子,D(x,y,σ)為差分算子。σ是尺度因子,它的較大值表示視頻圖像的整體輪廓特點,它的較小值顯示圖像的局部細(xì)微特點。
由上一步可以逐漸構(gòu)建高斯金字塔M組每組N層,在除第1層和第N層以外的各層像素點的鄰域最值點位極值點,也叫關(guān)鍵點。在關(guān)鍵點確定以后,需要除去低對比度點。對比度由表示,由極值點X的尺度空間函數(shù)D(X)的泰勒展開求導(dǎo),導(dǎo)數(shù)為0得,一般情況下出去的第對比度點是的極值點
因旋轉(zhuǎn)圖像的不變性原則,關(guān)鍵點的確立需要貫以方向性描述。通常為保證畫面配準(zhǔn)精確度的需要,關(guān)鍵點的方向應(yīng)用直方圖法計算。統(tǒng)計區(qū)域為關(guān)鍵點的鄰域圓,半徑為1.5σ。將該圓區(qū)域均勻劃分為36個扇圓,鄰域點對關(guān)鍵點方向的參與度與二者距離成高斯遞減,同時以超過直方圖內(nèi)80%的方向統(tǒng)計值作為其輔方向。
關(guān)鍵點同向坐標(biāo)下,切離出16×16鄰域子區(qū)域,每部分再均分為8個扇圓,根據(jù)直方圖估量不同區(qū)域?qū)ο蟮臋?quán)重。再由直方圖計算統(tǒng)計各鄰域子區(qū)域與關(guān)鍵點的距離得出128維向量。通過完成對所有關(guān)鍵點的128維向量生成,最后由相似度檢測函數(shù)得出圖像相似度,以實現(xiàn)圖像配準(zhǔn)。
如圖1所示為FPGA最小系統(tǒng)內(nèi)主要功能整體模塊設(shè)計框圖。FPGA最小系統(tǒng)主要接受圖像配準(zhǔn)參數(shù)信號和視頻碼流,同時根據(jù)此參數(shù)將多路視頻信號進行拼接處理形成拼接后視頻碼流。系統(tǒng)內(nèi)的拼接功能模塊主要依據(jù)配準(zhǔn)參數(shù)估量圖像的裁剪、縮放和移位等狀態(tài)參數(shù);DDR2 SDRAM模塊為進行32bits數(shù)據(jù)的存取工作;視頻拼接模塊主要進行圖像平移和縮放,由輸出顯示模塊來顯示輸出,同時涉及后端視頻信號的壓縮和網(wǎng)絡(luò)通信傳輸。
圖1 FPGA內(nèi)部各主要功能關(guān)系模塊框圖
圖像配準(zhǔn)參數(shù)接收模塊先變換收到的串行信號為并行信號,得到寬12 bit的配準(zhǔn)信號,在配準(zhǔn)信號前置有寬4 bit的配準(zhǔn)標(biāo)記。由不同的配準(zhǔn)標(biāo)志解析得到如通道垂直和水平平移及縮放參數(shù),如圖2 RTL級框圖所示,spi_transmit_start信號起作用時為配準(zhǔn)參數(shù)實際工作階段,來完成以上處理,并從receive_finish端回復(fù)發(fā)送處理完成。
圖像配準(zhǔn)參數(shù)計算模塊主要用來處理得出圖像平移及裁剪參數(shù),而縮放參數(shù)是借助ARM系統(tǒng)實現(xiàn)的,以上都是以SIFT算法為依據(jù)的。通道1-5針對參照基,由絕對位移的最高位判定相對于通道0的移動,將最大或最小絕對位移的通道的上沿作為圖像通道0-5整體的上沿。由RTL級框圖,CH0_vertical_move-CH5_vertical_move表示輸出通道0-5寬12 bit的相對水平位移參數(shù)信號,CH0_horizontal-CH5_horizontal則表示輸出通道0-5寬12 bit的相對垂直位移參數(shù)信號。在圖像拼接時為了保證實時性,需對圖像冗余部分進行裁,CH0_top-CH5_top為垂直裁剪的起點。
模塊使用雙線性差值算法屬于逆向映射法,DDR2 SDRAM存放原始圖像,異步FIFO完成緩存用來存放待處理的數(shù)據(jù)。設(shè)計出2組RAM,每組含8×1 024 bit的RAM一個和8×512RAMbit的兩個,前者寄存亮度值Y,后者寄存色差值Cb和Cr。圖像縮放采取先垂直再水平的方式設(shè)計,采用狀態(tài)機實現(xiàn)對RAM的讀寫,新像素值通過圖像內(nèi)插法采集垂直和水平狀態(tài)縮放機傳輸出的像素值對應(yīng)權(quán)值計算。如圖3的RTL級框圖data_weight為像素點對應(yīng)的權(quán)值。
模塊由傳輸時序?qū)ο袼仃嚵羞M行填充實現(xiàn)平移,如圖3的RTL框圖所示,參考信號傳輸時序和平移參數(shù),視頻圖像產(chǎn)生同步信號(幀)vs、同步信號(行)hs和有效信號de。CH0width-CH5width為裁剪后通道0~5的圖像寬度。在各通道讀請求信號CH0_rdreq-CH5_rdreq發(fā)出邀請兩周期后在CH0_ycber-CH5_ycber輸入有效數(shù)據(jù),處理后由ycber端輸出并送入下一模塊。
圖2 圖像拼接模塊子模塊RTL級頂層框圖
圖3 模塊功能仿真波形圖
視頻拼接模塊功能仿真包含有對參數(shù)接收模塊、參數(shù)計算模塊、縮放和平移模塊以及與ARM的接口模塊等的仿真。
Spi_transmit_start信號起作用后,參數(shù)接收模塊開始工作。receive_finish信號呈1時此接收工作完成。接下來,圖像拼接計算模塊依據(jù)此參數(shù)結(jié)果快速計算平移和裁剪參數(shù)。視頻圖像縮放模塊在縮放時在像素點和權(quán)重值輸入的3個時鐘以后得出新的像素。根據(jù)拼接參數(shù)完成0~5路圖像的平移。
CH0_rdreg-CH5_rdreg六路讀申請信號時序與平移參數(shù)的準(zhǔn)確協(xié)作保證了視頻圖像的平滑輸出,然后送入ARM系統(tǒng)。
圖4 實時全景視頻拼接在板調(diào)試結(jié)果
如圖4所示為在板調(diào)試結(jié)果畫面,全景視頻圖像經(jīng)由Quartus II EDA綜合的sof文件被載入FPGA芯片實現(xiàn)在板調(diào)試后顯示圖像整體拼接效果達到預(yù)期。
本次設(shè)計成功實現(xiàn)了一種FPGA與ARM的協(xié)同配合的方法,基于SIFT算法,由ARM計算圖像配準(zhǔn)參數(shù),再由FPGA根據(jù)參數(shù)完成縮放、平移等拼接處理,快速有效地實現(xiàn)了對全景視頻圖像的拼接。因為多端全景攝像機的結(jié)構(gòu)固定,其產(chǎn)生的系列圖像相對穩(wěn)固,基于此特點而對畫面拼接前的配準(zhǔn)過程進行了簡化,以精簡算法和轉(zhuǎn)變工作方式為突破進行了一種新的嘗試,有一定的應(yīng)用研究價值和借鑒意義。
[1]貢鎮(zhèn).基于FPGA的實時視頻圖像采集與顯示系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(13):46-48.
[2]陳全兵.基于FPGA的高清實時全景視頻拼接的研究與設(shè)計[D].成都:電子科技大學(xué),2015.
[3]馮雁軍,周清海,孫偉昶,等.FPGA平臺的實時全景視頻系統(tǒng)設(shè)計[J].電子產(chǎn)品世界,2013(2):72-74.
[4]張雄輝,鄭力新,周凱汀.基于區(qū)域劃分的快速圖像插值算法[J].微型機與應(yīng)用,2013:38-40.
[5]陳全兵,習(xí)友寶.基于雙線性內(nèi)插算法的多路視頻的縮放設(shè)計[J].電視技術(shù),2015,39(1):43-46.
[6]Donald G.Bailey.Digital for embedded image processing on FPGA[M].原魁,何文浩,肖晗.北京:電子工業(yè)出版社,2013.
[7]Meyer-baese U.Digital signal processing with field programmable gate arrays,third edition[M].劉凌,譯.北京:清華大學(xué)出版社,2012.
[8]Richard E.Woods,Steven L.Eddins.Digital Image Processing Using MATLAB[M].北京:電子工業(yè)出版社,2012.
[9]何賓,陶丹,彭勃.高實時性F-SIFT圖像拼接算法[J].紅外與激光工程,2013,42(2):440-444.
[10]崔得龍,弓云峰,左敬龍.基于改進SIFT的圖像拼接算法[J].電子設(shè)計工程,2013,21(2):34-37.
[11]黨建武,宗巖,王陽萍.基于SIFT特征檢測的圖像拼接優(yōu)化算法研究[J].計算機應(yīng)用研究,2012,29(1):329-332.
[12]譚杰,王殊軼.基于Halcon的圖像拼接算法研究[J].微電子學(xué)與計算機,2011,28(12):184-187.
[13]宋佳乾,汪西原.基于改進SIFT特征點匹配的圖像拼接算法[J].計算機測量與控制,2015,23(2):512-515.
[14]熊苗苗,王鵬.基于SIFT算法的圖像拼接技術(shù)[J].數(shù)字技術(shù)與應(yīng)用,2016(11):129-130.
[15]楊磊,任龍.基于FPGA的大視場圖像實時拼接技術(shù)的研究與實現(xiàn)[J].紅外與激光工程,2015,44(6):1929-1935.
[16]張洋,李慶忠.一種多攝像機全景視頻圖像快速拼接算法[J].光電子·激光,2012,23(9):1821-1826.
[17]黃沄,羅明偉,張鵬.一種含有常數(shù)項的新超混沌系統(tǒng)及其FPGA實現(xiàn)[J].重慶師范大學(xué)學(xué)報:自然科學(xué)版,2015(1):116-120.
[18]陳軍.基于FPGA的FFT變換分析與電路設(shè)計實現(xiàn) [J].工業(yè)儀表與自動化裝置,2016(1):40-42.