文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2011)01-0045-04
虛擬現(xiàn)實(shí)技術(shù)可分為兩類[1],一類是基于三維圖形生成的虛擬場(chǎng)景技術(shù),,另一類則是基于實(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)算法
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é)合FPGA硬件的可實(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),。FPGA提供了可替代的視頻處理平臺(tái),,F(xiàn)PGA支持高效并發(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,,以此類推,最后第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)用的要求,。
參考文獻(xiàn)
[1] YoshioOnoe,Kazumasa Yamazawa,,Haruo Takemura,,et al. Telepresence by real-time view-dependent image generation from omnidirectional video streams[J].Computer Vision and Image Understanding,1998,,71(2):154-165.
[2] 吳自新.全景視覺(jué)系統(tǒng)設(shè)計(jì)與圖像處理技術(shù)研究[D].哈爾濱工程大學(xué),,2006.
[3] Niall Winters,,José Gaspar,Gerard Lacey,,et al.Omni-Directional vision for robot navigation.IEEE Workshop on Omnidirectional Vision(OMNIVIS'00),,2000.
[4] NAGAHARA H,YAGI Y,,YACHIDA M.Wide field of view head mounted display for tele-presence with an omnidirectional image sensor[J].Conference on Computer Vision and Pattern Recognition Workshop,,2003(7).
[5] BOVIK A C.Handbook of image and video processing[M]. Beijing:Publishing House of Electronics Industry,2006.
[6] WANG Q,,WARD R K.A new orientation-adaptive interpolation method[J].IEEE Transaction on Image Processing,,2007,16(4):889-900.
[7] ALLEBACH J,,WONG P W.Edge-directed interpolation[A]. ICIP-1996.Proceedings of IEEE International Conference on Image Processing[C].Lausanne Switzerland:IEEE Press,,1996:707-710.