摘 要:雙目立體視覺(jué)系統(tǒng)的原理在于模仿人類(lèi)的雙眼,通過(guò)一定的立體匹配算法計(jì)算出場(chǎng)景中各物體的深度信息,以完成三維重構(gòu)、測(cè)距等功能。早期的立體視覺(jué)研究主要集中在算法優(yōu)化上,各種各樣的立體匹配算法被提出來(lái)。就目前最新的立體匹配算法而言,其效果已經(jīng)可以媲美理想的場(chǎng)景深度。本文主要就雙目立體視覺(jué)原理和實(shí)時(shí)立體視覺(jué)系統(tǒng)結(jié)構(gòu)進(jìn)行詳細(xì)分析,然后結(jié)合實(shí)際對(duì)實(shí)時(shí)立體視覺(jué)系統(tǒng)的模塊設(shè)計(jì)詳細(xì)探究。
關(guān)鍵詞:雙目立體視覺(jué)系統(tǒng);系統(tǒng)設(shè)計(jì);方法
隨著視頻技術(shù)的發(fā)展,使用硬件實(shí)現(xiàn)實(shí)時(shí)的雙目立體視覺(jué)系統(tǒng)也有了越來(lái)越多的研究,但是其硬件實(shí)現(xiàn)卻一直存在計(jì)算精度和資源消耗這對(duì)矛盾,復(fù)雜的算法勢(shì)必需要消耗更多的硬件資源,有些較新的算法甚至根本不適合使用硬件來(lái)實(shí)現(xiàn)。
1雙目立體視覺(jué)原理和實(shí)時(shí)立體視覺(jué)系統(tǒng)結(jié)構(gòu)分析
1.1雙目立體視覺(jué)原理分析
雙目立體視覺(jué)系統(tǒng)以人類(lèi)的視覺(jué)系統(tǒng)為基礎(chǔ),通過(guò)雙目攝像機(jī)獲取雙目圖像,以各種不同的算法來(lái)計(jì)算出場(chǎng)景的深度信息,再通過(guò)對(duì)這些深度信息進(jìn)行三維重構(gòu),以實(shí)現(xiàn)從二維空間到三維空間的轉(zhuǎn)換。
1.2實(shí)時(shí)立體視覺(jué)系統(tǒng)結(jié)構(gòu)分析
1.2.1camera_in模塊
此模塊為基于PE1005S攝像頭的采集模塊。當(dāng)基于不同的攝像頭模組時(shí),可模塊可以通過(guò)簡(jiǎn)單修改以配置不同的攝像頭,如ov9710、ov7740等。
1.2.2video_det模塊
此模塊功能為檢測(cè)所采集圖像的實(shí)時(shí)分辨率,檢測(cè)到的分辨率會(huì)實(shí)時(shí)保存下來(lái),可以通過(guò)PLB總線進(jìn)行訪問(wèn)。有了這個(gè)模塊,就可以根據(jù)檢測(cè)出來(lái)的分辨率來(lái)控制數(shù)據(jù)在DDR中的存放以及正確地顯示圖像。
1.2.3xsvi_in_ddr模塊
此模塊將從兩路XSVI接口傳送過(guò)來(lái)的數(shù)據(jù)通過(guò)兩個(gè)FIFO進(jìn)行緩存,然后通過(guò)兩個(gè)獨(dú)立的寫(xiě)時(shí)序狀態(tài)機(jī)模塊生成獨(dú)立的MCB接口時(shí)序,最后由主控制電路controller進(jìn)行仲裁和控制等并通過(guò)一個(gè)MCB接口寫(xiě)到DDR中。由于在大部分情況下,系統(tǒng)中DDR的寫(xiě)入時(shí)鐘頻率都與攝像頭數(shù)據(jù)時(shí)鐘頻率不同,故所使用的FIFO只能是異步的,這樣數(shù)據(jù)才不會(huì)錯(cuò)亂。
1.2.4ddr_to_xsvi模塊
此模塊預(yù)先通過(guò)讀時(shí)序狀態(tài)機(jī)模塊將DDR里的數(shù)據(jù)緩存在FIFO里,然后根據(jù)外部來(lái)的數(shù)據(jù)請(qǐng)求信號(hào)將數(shù)據(jù)從FIFO里讀出來(lái),以XSVI接口傳給下一個(gè)模塊。同樣,在大部分情況下,由于系統(tǒng)中DDR的讀取時(shí)鐘頻率都與顯示圖像的時(shí)鐘頻率不同,故所使用的FIFO只能是異步的。
1.2.5video_gen模塊
此模塊在PLB總線來(lái)的控制下可以生成多種標(biāo)準(zhǔn)格式的視頻信號(hào),如VGA(640×480)、SVGA(1024×768)、SXGA(1280×1024)、UXGA(1600×1200)、720P和1080P等。另外,在整個(gè)系統(tǒng)的分布調(diào)試階段,此模塊還可以在未與實(shí)際視頻數(shù)據(jù)連接的情況下生成指定格式的測(cè)試彩條,以對(duì)顯示部分的各模塊進(jìn)行測(cè)試。
1.2.6dvi_out模塊
此模塊將XSVI接口的圖像數(shù)據(jù)信號(hào)轉(zhuǎn)換成DVI接口的信號(hào)。由于圖像的時(shí)序部分已經(jīng)有video_gen模塊完成了,此模塊的功能只是簡(jiǎn)單的數(shù)據(jù)格式轉(zhuǎn)換已經(jīng)同步。
1.2.7depth模塊
此模塊是整個(gè)系統(tǒng)的核心部分,所有的立體視覺(jué)算法都將在這個(gè)模塊中進(jìn)行。從數(shù)據(jù)流動(dòng)的順序主要包括代價(jià)初始化、代價(jià)融合、動(dòng)態(tài)規(guī)劃三個(gè)模塊。其中,代價(jià)初始化通過(guò)census轉(zhuǎn)換和SAD兩種方法生成用于后續(xù)匹配運(yùn)算的兩種初始代價(jià),代價(jià)融合將兩種初始代價(jià)按一定的比例融合起來(lái),動(dòng)態(tài)規(guī)劃用來(lái)尋找匹配點(diǎn)。另外,為了使生成的深度圖更加準(zhǔn)確,系統(tǒng)中還使用了圖像矯正來(lái)處理由于攝像頭組安裝不規(guī)范和鏡頭畸變?cè)斐蓤D像數(shù)據(jù)不匹配,背景去除和中值濾波用來(lái)優(yōu)化生成的深度圖。
2實(shí)時(shí)立體視覺(jué)系統(tǒng)的模塊設(shè)計(jì)探究
圖像處理系統(tǒng)平臺(tái)構(gòu)成。圖像處理系統(tǒng)平臺(tái)是雙目立體視覺(jué)系統(tǒng)的基礎(chǔ),也可以說(shuō)是所有圖像處理算法驗(yàn)證的基礎(chǔ)。因此在驗(yàn)證雙目立體視覺(jué)系統(tǒng)的性能之前必須先搭建好完善的圖像處理系統(tǒng)平臺(tái),主要包括圖像采集、圖像存取、圖像顯示三部分。例如圖像顯示模塊,圖像顯示模塊主要由分辨率生成模塊video_gen和DVI時(shí)序模塊dvi_out組成[4]。video_gen模塊用來(lái)生成不同分辨率的視頻所需要的標(biāo)準(zhǔn)時(shí)序,由兩個(gè)計(jì)數(shù)器和兩個(gè)狀態(tài)機(jī)組成,行計(jì)數(shù)器和行狀態(tài)機(jī)用來(lái)生成行同步時(shí)序,而場(chǎng)計(jì)數(shù)器和場(chǎng)狀態(tài)機(jī)用來(lái)生成場(chǎng)同步時(shí)序。
實(shí)時(shí)立體視覺(jué)模塊,雙目立體視覺(jué)模塊主要由disparity_rd和disparity_wr兩個(gè)模塊組成。disparity_rd模塊通過(guò)一個(gè)MCB接口輪流地從內(nèi)存控制器中讀取出左右兩幅圖像以及背景圖像,并將它們分別緩存在三個(gè)異步FIFO中,然后由一個(gè)控制電路使它們完全同步地輸出給disparity_wr模塊。而disparity_wr模塊則先將輸入進(jìn)來(lái)的三路數(shù)據(jù)送到stereo_matching模塊計(jì)算深度圖,然后在控制電路的配合下將生成的disparity通過(guò)一個(gè)MCB口存入內(nèi)存控制器中。由于整個(gè)系統(tǒng)考慮了模塊化設(shè)計(jì),本模塊中使用的mcb_rd和mcb_wr與圖像存取模塊中的是完全相同的,大大節(jié)約了開(kāi)發(fā)時(shí)間。
其他輔助模塊,如圖像矯正,首先,CoordGen模塊根據(jù)提供的矯正矩陣計(jì)算出對(duì)應(yīng)的坐標(biāo)存到CoordFifo中,然后Controller模塊根據(jù)坐標(biāo)的整數(shù)部分控制RdDataCtr模塊從內(nèi)存中讀出所需像素點(diǎn)存到兩個(gè)DataRam中,最后CorrectCtrl模塊根據(jù)坐標(biāo)的小數(shù)部分對(duì)取出來(lái)的數(shù)據(jù)進(jìn)行運(yùn)算并放到DataFifo中等待讀取,圖像矯正過(guò)程就完成了。其中,坐標(biāo)保留小數(shù)部分和一次讀取內(nèi)存的兩段數(shù)據(jù)是為了進(jìn)行插值算法,使矯正后圖像不會(huì)出現(xiàn)鋸齒,而矯正矩陣則是通過(guò)Matlab在實(shí)驗(yàn)階段計(jì)算出來(lái)的。
3結(jié)語(yǔ)
綜上所述,此次主要分析了大量國(guó)內(nèi)外有關(guān)雙目立體視覺(jué)系統(tǒng)的算法以及各種不同的實(shí)現(xiàn)方案,詳細(xì)描述了所設(shè)計(jì)的雙目立體視覺(jué)系統(tǒng)中各個(gè)模塊的實(shí)現(xiàn)方式。在這些相應(yīng)分析下就能有助于設(shè)計(jì)目標(biāo)的實(shí)現(xiàn)。
參考文獻(xiàn):
[1]薄雪峰,全海英,劉志成,譚國(guó)慶,何玉.被動(dòng)式立體視覺(jué)研究進(jìn)展[J].北京生物醫(yī)學(xué)工程.2013(05):1-2.
[2]Guivant.J,Nebot.E,Baiker.S.Autonomous navigation and map building using laser range sensors in outdoor application[J].Journal of Robotic Systems,2014,17(10):565-583
[3]周清海等.基于FPGA的多通道全景SoC設(shè)計(jì)與實(shí)現(xiàn)[D].深圳:深圳大學(xué),2013:2-4.
[4]韓超,鄧甲昊,鄒金慧,韓敏.基于差分均值背景提取和矩陣分區(qū)目標(biāo)檢測(cè)算法的研究[J].北京理工大學(xué)學(xué)報(bào),2015,32(12):1247-1257.
作者簡(jiǎn)介:
姓名:張為,性別:男,籍貫:安徽,出生日期:89/09/27,湖北工業(yè)大學(xué)研究生,現(xiàn)任旭予騰貿(mào)易(上海)有限公司,職務(wù):設(shè)備工程師。