新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 反射式全景視頻實(shí)時(shí)平面顯示技術(shù)的FPGA實(shí)現(xiàn)

反射式全景視頻實(shí)時(shí)平面顯示技術(shù)的FPGA實(shí)現(xiàn)

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

虛擬現(xiàn)實(shí)技術(shù)可分為兩類(lèi)[1],一類(lèi)是基于三維圖形生成的虛擬場(chǎng)景技術(shù),另一類(lèi)則是基于實(shí)景采集通過(guò)幾何變換獲得近似的真實(shí)場(chǎng)景。反射式全景傳感器非常適合于構(gòu)建實(shí)景采集的真實(shí)場(chǎng)景。在過(guò)去的十年中, 多種反射式全景傳感器相繼問(wèn)世[2]。反射式全景傳感器由攝像機(jī)和曲面反射鏡組成, 與普通攝像機(jī)不同的是,它可以一次性采集360°圓周內(nèi)的全部景象, 因此得到了廣泛應(yīng)用[3]。

目前,反射式全景技術(shù)的研究主要將注意力集中在幾何變換算法和鏡頭校正算法的改進(jìn),對(duì)采集和顯示的同步性問(wèn)題研究甚少,如文獻(xiàn)[1]和文獻(xiàn)[4]所做的工作是在圖形工作站實(shí)現(xiàn)的,便攜性差,無(wú)法適應(yīng)嵌入式多媒體應(yīng)用的要求。另一方面,實(shí)際應(yīng)用中往往要求展開(kāi)后的平面顯示圖像有較高的分辨率,而反射鏡體積的限制使成像分辨率有限,展開(kāi)后的圖像呈現(xiàn)有規(guī)律的和灰度階梯化現(xiàn)象。這就需要通過(guò)相應(yīng)的視頻后處理算法生成人眼能夠接受的圖像。上述兩個(gè)問(wèn)題給反射式全景視頻的實(shí)時(shí)平面顯示在嵌入式視頻處理平臺(tái)上的應(yīng)用帶來(lái)挑戰(zhàn)。

1 展開(kāi)算法及其存在的問(wèn)題

1.1 展開(kāi)算法

本文引用地址:http://butianyuan.cn/article/201706/349235.htm

1.2 失真現(xiàn)象的產(chǎn)生原因及解決

經(jīng)過(guò)變換展開(kāi)后的平面圖像,其坐標(biāo)變換是非線性采樣過(guò)程,即采樣點(diǎn)呈環(huán)狀分布,不同半徑的環(huán)狀采樣點(diǎn)數(shù)相同。如果以原圖像最大半徑的采樣點(diǎn)數(shù)作為基準(zhǔn)對(duì)整幅圖像進(jìn)行展開(kāi),則半徑越小放大倍數(shù)越高,從而導(dǎo)致原圖像中靠近圓心的部分展開(kāi)后存在明顯的鋸齒化和階梯化失真現(xiàn)象。具體地說(shuō),由于像素值的不連續(xù)性,直接放大圖像會(huì)使這種不連續(xù)性被放大。就是由于放大了圖像邊緣的鋸齒狀像素產(chǎn)生的;階梯失真的產(chǎn)生,則是由于不連續(xù)的圖像梯度邊緣像素值直接被復(fù)制放大,使原先并不明顯的梯度邊緣像素值被放大為肉眼能夠分辨的一個(gè)接一個(gè)的階梯。

2 算法的改進(jìn)和硬件實(shí)現(xiàn)

考慮到在平面圖像的放大研究中,為避免圖像失真,常采用經(jīng)典的雙線性插值和三次線性差值及其改進(jìn)算法[5~7]。而的展開(kāi)與平面圖像的放大存在不同,每個(gè)像素的鄰域位置不固定,是非線性的放大過(guò)程。因此經(jīng)典的差值算法及其改進(jìn)算法不能應(yīng)用于全景圖像的展開(kāi)。根據(jù)上述全景圖像展開(kāi)的特性,結(jié)合硬件的可實(shí)現(xiàn)性,提出算法如下:對(duì)展開(kāi)的圖像采用參數(shù)可變的高斯空間濾波,其基本思路是對(duì)展開(kāi)后的圖像根據(jù)鋸齒和階梯失真的程度,使用不同尺寸的高斯濾波窗進(jìn)行空間濾波。

3 硬件系統(tǒng)實(shí)現(xiàn)


實(shí)時(shí)反射式全景視頻處理要求高的處理能力。例如,NTSC制式視頻標(biāo)準(zhǔn)要求30幀/s,每幀約0.25 M像素,即每秒7.5 M像素流量;PAL制式視頻標(biāo)準(zhǔn)要求25幀/s,而每幀的像素?cái)?shù)卻更多,總的像素流量與NTSC制式基本相當(dāng)。而對(duì)每個(gè)像素的處理量取決于采用的具體算法。通常的方法是使用DSP處理器陣列或單片高端DSP完成??紤]到本算法的查找表操作,需要大量的存儲(chǔ)器資源,對(duì)于DSP處理器來(lái)說(shuō),由于成本和空間的限制,需要外接DRAM存儲(chǔ)器和復(fù)雜控制邏輯,而外接存儲(chǔ)器控制邏輯存在帶寬限制,使其成為DSP高速圖像處理的主要瓶頸之一。另外,考慮到今后更高分辨率顯示導(dǎo)致的更高的數(shù)據(jù)處理量,DSP的實(shí)現(xiàn)方案將更加難以實(shí)現(xiàn)。提供了可替代的視頻處理平臺(tái),支持高效并發(fā)數(shù)據(jù)流結(jié)構(gòu),這對(duì)于圖像處理算法的實(shí)時(shí)實(shí)現(xiàn)至關(guān)重要。此外FPGA內(nèi)部的嵌入式SRAM存儲(chǔ)器是查找表操作的理想選擇。

3.1 整體硬件系統(tǒng)設(shè)計(jì)

本系統(tǒng)實(shí)現(xiàn)平臺(tái)以Altera的FPGA芯片Cyclone II EP2C70F896C6為核心。系統(tǒng)的主要模塊結(jié)構(gòu)如圖2所示。

由于平面顯示器一次只能顯示90°場(chǎng)景,故將全景圖像分為四塊,待需要顯示時(shí)再通過(guò)展開(kāi)算法模塊進(jìn)行展開(kāi)計(jì)算并顯示。圖像展開(kāi)算法及VGA控制模塊為本系統(tǒng)中的核心模塊。由于圖像展開(kāi)時(shí)有效圖像信息占原圖的3/4,為了節(jié)省資源,本文對(duì)分塊之后的圖像篩選出有效圖像部分存入M4K存儲(chǔ)器中,利用VGA控制模塊產(chǎn)生的VGA行列掃描信號(hào)和正余弦查找表實(shí)時(shí)產(chǎn)生M4K存儲(chǔ)器讀地址,實(shí)現(xiàn)展開(kāi)算法。模塊結(jié)構(gòu)如圖3所示。

3.2 空間濾波器的硬件設(shè)計(jì)

圖4為二維圖像濾波器的結(jié)構(gòu)圖。輸入像素在Line Buffer中前移,產(chǎn)生延遲的一行。Buffer的深度依賴于每一行的像素?cái)?shù)。這些延遲的行的像素不斷輸入濾波器組。在每個(gè)濾波器節(jié)點(diǎn),像素被做特定的濾波操作,全部累加器的結(jié)果在地址樹(shù)疊加后產(chǎn)生濾波器輸出。

一般硬件執(zhí)行效率用累加次數(shù)來(lái)衡量。這樣,非對(duì)稱濾波器的復(fù)雜度就正比于m×m。m×m是卷積和的尺寸。噪聲抑制功能由m×m的高斯核實(shí)現(xiàn),這個(gè)核在圖像上按行滑動(dòng)。所謂參數(shù)可變的空間濾波器,即m×m的高斯核尺寸是可調(diào)節(jié)的。考慮到高斯函數(shù)的計(jì)算涉及三角函數(shù)運(yùn)算,每次尺寸改變時(shí)采用硬件計(jì)算生成新的高斯核的方法不妥,且隨著高斯核的尺寸增大計(jì)算時(shí)間也相應(yīng)增大。為了滿足時(shí)鐘同步的要求就必須提供最大高斯核計(jì)算所需的時(shí)間,作為每個(gè)高斯核計(jì)算的固定延時(shí),這樣做顯然在小尺寸的高斯核計(jì)算時(shí)間中存在大量的冗余等待時(shí)間,這對(duì)整個(gè)系統(tǒng)的實(shí)時(shí)性十分不利??紤]視頻圖像的尺寸是一定的,故采用查找表記錄高斯核序列,由于高斯核的尺寸相對(duì)于整幅圖像非常小,且其序列個(gè)數(shù)與圖像的行數(shù)呈正比,故占用的存儲(chǔ)空間也不大。這里將圖像劃分為12個(gè)橫向帶狀區(qū)域,最上方的帶狀區(qū)域采用3×3的高斯核,而下一行則在上一行的基礎(chǔ)上+2,以此類(lèi)推,最后第n帶狀區(qū)域所使用的高斯核的尺寸為2n+1=25。

4 實(shí)驗(yàn)

4.1 硬件系統(tǒng)實(shí)時(shí)性

本文中系統(tǒng)的延遲指視頻流進(jìn)入FPGA到VGA顯示的時(shí)間差,在系統(tǒng)中表現(xiàn)為A/D輸出數(shù)據(jù)管腳(iTD1_D)上出現(xiàn)的第一個(gè)數(shù)據(jù)和D/A輸入數(shù)據(jù)管腳(oVGA_R,oVGA_G,oVGA_B)上出現(xiàn)的第一個(gè)數(shù)據(jù)之間的時(shí)間差。

使用Quartus II中集成的SignalTap在線邏輯分析儀對(duì)系統(tǒng)延遲進(jìn)行測(cè)量。SignalTap的作用是在系統(tǒng)中添加一個(gè)與JTAG接口相連的模塊,將用戶關(guān)心的管腳數(shù)據(jù)波形通過(guò)JTAG接口上傳。由于FPGA芯片內(nèi)部SRAM的限制使SignalTap數(shù)據(jù)長(zhǎng)度有限,所以本文設(shè)計(jì)了一個(gè)計(jì)數(shù)器模塊對(duì)上述時(shí)間差中的系統(tǒng)時(shí)鐘(iTD1_CLK27,27 MHz)進(jìn)行計(jì)數(shù),從而計(jì)算得到系統(tǒng)延遲,以證明本系統(tǒng)的實(shí)時(shí)性。

由于開(kāi)機(jī)時(shí)間的誤差,所以每次計(jì)算所得的計(jì)數(shù)值都不相同。本文對(duì)展開(kāi)前、展開(kāi)后無(wú)濾波和展開(kāi)后濾波分別實(shí)驗(yàn)10次,對(duì)總共30次的實(shí)驗(yàn)結(jié)果進(jìn)行分析得到系統(tǒng)延遲。30次實(shí)驗(yàn)結(jié)果如表1所示。

分別取均值后得到展開(kāi)前數(shù)據(jù)延遲為2 417 159個(gè)系統(tǒng)時(shí)鐘,即系統(tǒng)延遲為89.254 ms;展開(kāi)后無(wú)濾波數(shù)據(jù)延遲為2 432 706個(gè)系統(tǒng)時(shí)鐘,即系統(tǒng)延遲為90.100 ms;展開(kāi)后濾波數(shù)據(jù)延遲為2 533 135個(gè)系統(tǒng)時(shí)鐘,即系統(tǒng)延遲為93.820 ms。其中展開(kāi)算法和濾波算法耗時(shí)分別為0.846 ms和3.720 ms。直觀觀察,顯示器顯示內(nèi)容的移動(dòng)和實(shí)際物體移動(dòng)基本同時(shí)進(jìn)行。

4.2 實(shí)際顯示效果

分別進(jìn)行直接展開(kāi)、參數(shù)固定和參數(shù)可變高斯空間濾波器處理后展開(kāi)說(shuō)明三者區(qū)別。
在圖5(b)中,展開(kāi)圖像下部鋸齒和階梯失真非常明顯;圖5(c)中雖然下部鋸齒被消除,但是上部圖像也變得模糊,圖像細(xì)節(jié)被嚴(yán)重破壞;圖5(d)中使用的參數(shù)可變高斯濾波器保持了圖像上部的細(xì)節(jié),同時(shí)消除了下部的鋸齒。

本文以ALTERA主流FPGA為開(kāi)發(fā)平臺(tái),實(shí)現(xiàn)了對(duì)反射式全景攝像機(jī)所得的視頻流的實(shí)時(shí)平面展開(kāi),并使用參數(shù)可變高斯濾波器對(duì)展開(kāi)后產(chǎn)生的鋸齒和階梯失真進(jìn)行了有效的抑制,同時(shí)保留了圖像的細(xì)節(jié)。本系統(tǒng)展開(kāi)算法耗時(shí)0.846 ms,濾波算法耗時(shí)3.720 ms,而VGA顯示64.4幀/s,平均每幀為15.528 ms,遠(yuǎn)遠(yuǎn)大于本系統(tǒng)算法總耗時(shí)4.566 ms。本系統(tǒng)可以在一幀的時(shí)間內(nèi)完成算法,能夠滿足絕大多數(shù)高速應(yīng)用的要求。



關(guān)鍵詞: 全景圖像 鋸齒失真 FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉