專利名稱::一種基于fpga的實時立體視覺實現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及機器視覺領(lǐng)域,尤其涉及一種基于FPGA的實時立體視覺實現(xiàn)方法。
背景技術(shù):
:立體視覺系統(tǒng)的主要任務(wù)是獲取場景三維信息,在移動機器人、目標跟蹤、三維重建等領(lǐng)域得到了廣泛應(yīng)用。在立體視覺系統(tǒng)中,立體匹配是關(guān)鍵核心。一般來說,室外無人車以及月球車等移動機器人所處的場景通常缺乏規(guī)則的點、線等特征,并且由于場景的不確定性和光照等因素的影響,特征提取往往不穩(wěn)定,且只能得到稀疏的視差圖,必須經(jīng)過插值才能得到致密的視差圖進而重建場景。因此,實時立體視覺系統(tǒng)中更傾向于采用區(qū)域匹配算法。另外,應(yīng)用于無人車導(dǎo)航系統(tǒng)的立體視覺還需要滿足實時性、魯棒性等要求。實時性即要求算法運算速度快,能在車輛移動過程中及時獲取場景信息,以便車輛做出行進、避障等決策。區(qū)域匹配算法通常運算量較大,以NXN大小的灰度圖像,相關(guān)窗口尺寸為wXw,視差搜索范圍D為例,直接計算的復(fù)雜度為0(N2w2D)。通過一定的優(yōu)化技巧雖然可以減小冗余計算,復(fù)雜度可降至0(N2D),但對于通用處理器而言,仍舊無法滿足實時性要求,因此需要采用硬件加速技術(shù)或設(shè)計專用硬件電路。魯棒性要求主要源于無人車的行駛環(huán)境復(fù)雜,路面、光照等條件均有較大的不確定性,立體視覺算法在各種條件下都要保持有效。對于立體匹配實時性的研究,已有大量學(xué)者提出了解決方案,其中最著名的NASA火星車使用RAD6000計算機,最高頻率為25MHz,完成一次256X256圖對的匹配需30s。與指令系統(tǒng)相比,F(xiàn)PGA硬件系統(tǒng)雖然沒有通用處理器編程方便,但可以充分利用并行性計算體系結(jié)構(gòu)及合理的流水線設(shè)計,把算法直接映射到結(jié)構(gòu)上,大大提高系統(tǒng)的運算速度與精度。因而近年來越來越多的研究選擇用FPGA開發(fā)實時立體視覺系統(tǒng)。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種基于FPGA的實時立體視覺實現(xiàn)方法?;贔PGA的實時立體視覺實現(xiàn)方法包括如下步驟1)建立一個以FPGA為運算處理核心的立體視覺系統(tǒng),立體相機的左右視圖通過SERDES接口輸入;系統(tǒng)包括6塊1024KX8比特容量的外部SRAM,其中每2個SRAM組成一組乒乓緩存,實現(xiàn)左右視圖以及視差圖無縫傳輸和流水處理;Nand-FlashROM芯片用于存放系統(tǒng)離線標定得到的校正參數(shù),上電初始化過程中將校正參數(shù)從FlashROM中拷貝到SDRAM中以提高參數(shù)輸入的速率,實時完成圖像校正;系統(tǒng)以太網(wǎng)作為上行視差輸出和下行校正參數(shù)輸入的接口,實現(xiàn)千兆/百兆數(shù)據(jù)傳輸與長距離傳輸;系統(tǒng)預(yù)留2路并口10,通過FIFO與外設(shè)連接,用于檢測結(jié)果、輸出中間數(shù)據(jù)或擴展功能使用;2)采用FPGA芯片內(nèi)部集成的多個硬核乘加器,在立體視覺系統(tǒng)工作時,通過下式實時完成多像素并行圖像校正處理,其中7(M,V)為校正后圖像在(u,ν)坐標上的灰度值,I(ui;Vi)為原始圖像上4個相鄰像素點的灰度值,A(Ui,Vi)為相應(yīng)的校正系數(shù);3)構(gòu)建一個窗口大小為9X9的寄存器組,每個寄存器組存儲相應(yīng)窗口位置的像素灰度值,通過比較窗口內(nèi)除了中心外所有寄存器的灰度值與中心寄存器的灰度值,得到對應(yīng)中心點像素的Census變換后的80比特編碼流,Census變換公式如下(3)其中pl、p2為兩個不同像素點的灰度值,表示比特串聯(lián),2n+l與2m+l為Census變換窗口的寬與高,2n+l、2m+l均為9;4)用下式求得兩個對應(yīng)Census變換得到的80比特編碼流之間的漢明距離,并以9X9相關(guān)窗口內(nèi)所有像素的漢明距離和作為匹配代價,進行相關(guān)匹配,其中(;、(;分別表示左右視圖求得的Census變換編碼,d表示視差搜索范圍,2n+l與2m+l為相關(guān)匹配窗口的寬與高,d為64,2n+l、2m+l均為9;5)采用金字塔結(jié)構(gòu),將視差搜索范圍W,d_l]內(nèi)每一個窗口求得的漢明距離和劃分為4個一組,在一個時鐘周期內(nèi)求出每一組中的最小值;再將篩選得到的漢明距離和最小值重新分組,在下一個時鐘周期進行比較,如此循環(huán)對于視差范圍d的搜索,只用l0g4d個時鐘周期就能得到唯一的漢明距離和最小值;,6)移位寄存器組緩存輸出不同視差的匹配代價,以立體相機中左圖為基準的匹配采用串行比較結(jié)構(gòu),以立體相機中右圖為基準的匹配采用并行比較結(jié)構(gòu),實現(xiàn)相關(guān)匹配和左右一致性校驗,有效降低誤匹配率。所述的圖像校正、Census變換以及Census變換后的80比特編碼流為它們所涉及到的數(shù)據(jù)在進行下一步運算時均存儲于數(shù)據(jù)緩存模塊,對于寬度為N個像素的圖像和高度為w的窗口,數(shù)據(jù)緩存模塊采用至少NX(w+1)個數(shù)據(jù)空間的簡單雙口RAM,具有一個讀數(shù)據(jù)端口和一個寫數(shù)據(jù)端口,并設(shè)讀地址指針和寫地址指針,數(shù)據(jù)緩沖模塊按列讀出,按行寫入,通過控制讀寫地址確保讀無讀寫沖突,當w行內(nèi)所有窗口操作都完成并且新的一行也寫入后,拋棄最早的一行數(shù)據(jù)。所述的Census變換為在窗口滑動時,像素逐個輸入后經(jīng)過串并轉(zhuǎn)換得到一個新窗口列,再將新窗口列數(shù)據(jù)送入與Census窗口大小相同的移位寄存器組,同時移出寄存器內(nèi)最早的一列數(shù)據(jù),串并轉(zhuǎn)換中移位寄存器數(shù)量同窗口高度,輸入數(shù)據(jù)間隔為整幅圖像的寬度,窗口移位寄存器組與Census窗口大小相同,抽頭間隔同窗口寬度。所述的相關(guān)匹配為數(shù)據(jù)延遲、漢明距離計算和最優(yōu)匹配搜索三個部分,相關(guān)匹配選取左視圖作為基準,右視圖在相應(yīng)基線上的視差搜索范圍內(nèi)進行逐一開窗匹配,左圖數(shù)據(jù)延遲d拍;漢明距離計算由匹配單元實現(xiàn),其數(shù)量由視差搜索范圍決定,當有新的一列漢明距離生成后對其進行更新,相應(yīng)的值等于原窗口值減去移出窗口的列漢明距離,再加上新移入窗口的列漢明距離。所述的左右一致性校驗是通過有規(guī)律的緩存輸出不同視差的匹配代價,在不造成冗余計算和額外開銷的情況下有效降低誤匹配率,以左圖為基準時,不同視差的匹配代價在連續(xù)時鐘周期輸出,采用二叉樹形串行比較結(jié)構(gòu);以右圖為基準時,不同視差的匹配代價在同一時鐘周期輸出,采用并行比較結(jié)構(gòu),在一次相關(guān)匹配中就可求得兩個基準系的視差值,再對左右圖基準視差值進行比較,如果相同則為有效視差,否則為無效視差。本發(fā)明實現(xiàn)了一種基于FPGA的實時立體視覺系統(tǒng),包括硬件結(jié)構(gòu)和模塊實現(xiàn)兩大部分。該硬件架構(gòu)合理,能夠滿足高速運算和高速傳輸圖像的要求,具備多種通用接口和富余的硬件資源,可以進一步擴展加強。同時Census立體匹配是一種非參數(shù)化的匹配方法,對亮度不均、增益等情況更為魯棒,提高了系統(tǒng)的精度。與傳統(tǒng)的通用處理器相比,本系統(tǒng)充分利用并行計算及合理的流水線設(shè)計,把算法直接映射到結(jié)構(gòu)上,大大提高了系統(tǒng)的運算速度,滿足高分辨率、高精度和高速的要求,可以適用于自主車輛導(dǎo)航等領(lǐng)域。圖1是基于FPGA的立體視覺系統(tǒng)的硬件結(jié)構(gòu)框圖;圖2是基于FPGA的實時立體視覺實現(xiàn)方法的頂層算法框圖;圖3是Census變換窗口的更新方法;圖4是數(shù)據(jù)緩存模塊讀寫示意;圖5是相關(guān)匹配結(jié)構(gòu)及左右一致性校驗示意圖;圖6是相關(guān)匹配的最終實現(xiàn)結(jié)構(gòu)框圖;圖7(a)是Middlebury標準測試集art圖對中的左視圖;圖7(b)是Middlebury標準測試集art圖對中的右視圖;圖8是基于FPGA的實時立體視覺實現(xiàn)方法對art圖對的視差求取結(jié)果。具體實施例方式基于FPGA的實時立體視覺實現(xiàn)方法包括如下步驟1)建立一個以FPGA為運算處理核心的立體視覺系統(tǒng),硬件結(jié)構(gòu)如圖1所示系統(tǒng)選擇一片Xilinx公司的Virtex-5系列FPGA作為處理核心;立體相機的左右視圖通過SERDES接口輸入,可以適應(yīng)任何高速、高清相機的要求;系統(tǒng)包括6塊1024KX8比特容量的外部SRAM,可以存儲1024X1024的高分辨率圖像,其中每2個SRAM組成一組乒乓緩存,實現(xiàn)左右視圖以及視差圖無縫傳輸和流水處理;Nand-FlashROM芯片用于存放系統(tǒng)離線標定得到的校正參數(shù),為了解決Flash芯片在讀取速度上的瓶頸問題,上電初始化過程中將校正參數(shù)從FlashROM中拷貝到SDRAM中以提高參數(shù)輸入的速率,實時完成圖像校正;系統(tǒng)以太網(wǎng)作為上行視差輸出和下行校正參數(shù)輸入的接口,實現(xiàn)千兆/百兆數(shù)據(jù)傳輸與長距離傳輸;系統(tǒng)預(yù)留2路并口10,通過FIFO與外設(shè)連接,用于檢測結(jié)果、輸出中間數(shù)據(jù)或擴展功能使用;2)圖2顯示了基于FPGA的實時立體視覺實現(xiàn)方法的頂層算法框圖。首先采用FPGA芯片內(nèi)部集成的多個硬核乘加器,在立體視覺系統(tǒng)工作時,通過下式實時完成多像素并行圖像校正處理,I(u,v)=∑A{Ui,Vi)'I{Ui,Vi)(1)其中丨(Μ,τ0為校正后圖像在(u,ν)坐標上的灰度值,I(Ui,Vi)為原始圖像上4個相鄰像素點的灰度值,A(Ui,Vi)為相應(yīng)的校正系數(shù);如式1所示,對每一個像素點的校正計算是一個4像素乘累加過程。在Virtex-5系列芯片內(nèi)部集成了一定數(shù)量的硬核乘加器(DSP48E),每一個硬核乘加器可配置成獨立的25X18乘法器兼3輸入的48位加法器/減法器。系統(tǒng)的圖像校正模塊由多個硬核乘加器構(gòu)成,可實現(xiàn)多像素并行校正處理。所述的校正系數(shù)根據(jù)張正友提出的二維模板定標的方法(Zhang,Ζ.Y.,F(xiàn)lexibleCameraCalibrationbyViewingaPlanefromUnknownOrientations,IEEEICCV,1999(666-673))在離線情況下標定攝像機求得,每一點的校正系數(shù)包括4個校正像素的χ、y軸坐標和4個插值系數(shù);所有這些參數(shù)均存儲于實時立體視覺系統(tǒng)的Nand-flashROM中,在上電初始化的過程中轉(zhuǎn)存入SDRAM中,系統(tǒng)根據(jù)需要讀出這些參數(shù),實時完成圖像校正。3)構(gòu)建一個窗口大小為9X9的寄存器組,每個寄存器組存儲相應(yīng)窗口位置的像素灰度值,通過比較窗口內(nèi)除了中心外所有寄存器的灰度值與中心寄存器的灰度值,得到對應(yīng)中心點像素的Census變換后的80比特編碼流,Census變換公式如下Γ0pl<ρ2ξ(ρ!,ρ2)=\^(2)C(x,y)=,0{ξ{Ι{χ,γ\Ι{χ+,γ+])))(3)i=~nj=-m其中pl、p2為兩個不同像素點的灰度值,表示比特串聯(lián),2n+l與2m+l為Census變換窗口的寬與高,2n+l、2m+l均為9;圖3示意了Census變換窗口的更新方法。所述的Census變換為在窗口滑動時,像素逐個輸入后經(jīng)過串并轉(zhuǎn)換得到一個新窗口列,再將新窗口列數(shù)據(jù)送入與Census窗口大小相同的移位寄存器組,同時移出寄存器內(nèi)最早的一列數(shù)據(jù),串并轉(zhuǎn)換中移位寄存器數(shù)量同窗口高度,輸入數(shù)據(jù)間隔為整幅圖像的寬度,窗口移位寄存器組與Census窗口大小相同,抽頭間隔同窗口寬度。所述的圖像校正、Census變換以及Census變換后的80比特編碼流為它們都涉及窗口操作,某個像素數(shù)據(jù)在運算處理后仍需要暫存,必須在包含該像素的所有窗口處理都完成后才能拋棄,否則會重復(fù)的從外部RAM中讀取同一像素數(shù)據(jù),大大降低了系統(tǒng)的速度。在本發(fā)明中,以上過程中所涉及到的數(shù)據(jù)均存儲于數(shù)據(jù)緩存模塊,對于寬度為N個像素的圖像和高度為w的窗口,數(shù)據(jù)緩存模塊采用至少NX(w+1)個數(shù)據(jù)空間的簡單雙口RAM,如圖4所示,具有一個讀數(shù)據(jù)端口和一個寫數(shù)據(jù)端口,并設(shè)讀地址指針和寫地址指針,數(shù)據(jù)緩沖模塊按列讀出,按行寫入,通過控制讀寫地址確保讀無讀寫沖突,當w行內(nèi)所有窗口操作都完成并且新的一行也寫入后,拋棄最早的一行數(shù)據(jù)。4)用下式求得兩個對應(yīng)Census變換得到的80比特編碼流之間的漢明距離,并以9X9相關(guān)窗口內(nèi)所有像素的漢明距離和作為匹配代價,進行相關(guān)匹配,其中Ci、(;分別表示左右視圖求得的Census變換編碼,d表示視差搜索范圍,2n+l與2m+l為相關(guān)匹配窗口的寬與高,d為64,2n+l、2m+l均為9;漢明距離即兩個比特串中不相同的比特數(shù),可以先對比特串進行異或運算,再計算異或結(jié)果中“1”的數(shù)目。這些運算都非常適合在FPGA上實現(xiàn),通過并行和流水等邏輯設(shè)計技巧,可以大大提高算法的運算速度。所述的相關(guān)匹配為數(shù)據(jù)延遲、漢明距離計算和最優(yōu)匹配搜索三個部分,相關(guān)匹配選取左視圖作為基準,右視圖在相應(yīng)基線上的視差搜索范圍內(nèi)進行逐一開窗匹配,左圖數(shù)據(jù)延遲d拍;漢明距離計算由匹配單元實現(xiàn),其數(shù)量由視差搜索范圍決定;對窗口漢明距離和的更新,采用的是滾動窗口的辦法,類似于Census變換窗口的更新方法當有新的一列漢明距離生成后對其進行更新,相應(yīng)的值等于原窗口值減去移出窗口的列漢明距離,再加上新移入窗口的列漢明距離。5)采用金字塔結(jié)構(gòu),將視差搜索范圍內(nèi)每一個窗口求得的漢明距離和劃分為4個一組,在一個時鐘周期內(nèi)求出每一組中的最小值;再將篩選得到的漢明距離和最小值重新分組,在下一個時鐘周期進行比較,如此循環(huán)對于視差范圍d的搜索,只用l0g4d個時鐘周期就能得到唯一的漢明距離和最小值;,6)移位寄存器組緩存輸出不同視差的匹配代價,以立體相機中左圖為基準的匹配采用串行比較結(jié)構(gòu),以立體相機中右圖為基準的匹配采用并行比較結(jié)構(gòu),實現(xiàn)相關(guān)匹配和左右一致性校驗,有效降低誤匹配率。圖5為相關(guān)匹配結(jié)構(gòu)及左右一致性校驗示意圖。圖中以每行前64個像素的匹配過程為例,位于同一豎直方向的像素對表示以右圖像素為基準(R-L)的匹配過程,其匹配代價在同一時鐘周期輸出,如圖灰色方框,因而采用并行比較結(jié)構(gòu);從圖中可以發(fā)現(xiàn)R-L匹配結(jié)構(gòu)中隱含了以左圖像為基準(L-R)的匹配過程,對同一左圖像素的匹配結(jié)構(gòu)是沿對角線方向進行的,如圖黑色方框,其匹配代價是在連續(xù)的時鐘周期輸出,因而在視差搜索過程中選用串行比較結(jié)構(gòu)。按照這種結(jié)構(gòu),在一次相關(guān)匹配中就可求得兩個基準系的視差值,再對左右圖基準視差值進行比較,如果相同則為有效視差,否則為無效視差。圖6是相關(guān)匹配的最終實現(xiàn)結(jié)構(gòu)框圖。所述的左右一致性校驗是通過有規(guī)律的緩存輸出不同視差的匹配代價,在不造成冗余計算和額外開銷的情況下有效降低誤匹配率,以左圖為基準時,不同視差的匹配代價在連續(xù)時鐘周期輸出,采用二叉樹形串行比較結(jié)構(gòu);以右圖為基準時,不同視差的匹配代價在同一時鐘周期輸出,采用并行比較結(jié)構(gòu),在一次相關(guān)匹配中就可求得兩個基準系的視差值,再對左右圖基準視差值進行比較,如果相同則為有效視差,否則為無效視差。實施例為了滿足自主車獲取三維數(shù)據(jù)的實時性和精度要求,目前該立體視覺實現(xiàn)方法采用分辨率為512X512的圖像,視差搜索范圍為64像素,采用9X9像素大小的Census變換窗口和9X9像素大小的相關(guān)匹配窗口;本發(fā)明的立體視覺實現(xiàn)方法運行于所述的基于FPGA的實時立體視覺系統(tǒng)之上,在系統(tǒng)時鐘為40MHz的情況下,可以達到每秒30幀以上的處理速度,超過了人眼能夠分辨的頻率,完全可以勝任視差實時求取和自主車的高速導(dǎo)航要求。由于設(shè)計采用了結(jié)構(gòu)化的實現(xiàn)方法,在硬件資源富余的條件下具備向更高分辨率圖像和更大視差搜索范圍升級的潛力。為了驗證本發(fā)明的視差處理效果,我們采用Middlebury標準測試集中的art圖對對立體視覺實現(xiàn)方法進行測試,圖7是Middlebury標準測試集art圖對。首先采用FPGA芯片內(nèi)部集成的多個硬核乘加器,實時完成整幅圖像的校正處理;構(gòu)建一個窗口大小為9X9的寄存器組存儲Census窗口內(nèi)的像素灰度值,通過比較窗口內(nèi)除了中心外的灰度值與中心的灰度值,得到對應(yīng)中心點像素的Census變換后的80比特編碼流;以9X9相關(guān)匹配窗口內(nèi)所有像素經(jīng)過Census變換得到的80比特編碼流的漢明距離和作為匹配代價,求出64像素視差搜索范圍內(nèi)的64組相關(guān)匹配代價;采用金字塔結(jié)構(gòu)求出視差搜索范圍W,63]內(nèi)唯一的漢明距離和最小值和視差值;最終緩存輸出不同視差的匹配代價,合理采用串行比較結(jié)構(gòu)和并行比較結(jié)構(gòu),實現(xiàn)左右一致性校驗,去除誤匹配點。圖8是基于FPGA的實時立體視覺實現(xiàn)方法對art圖對的視差求取結(jié)果,可以看出,通過本方法求得的視差圖比較準確,去除了大部分誤匹配點,能夠?qū)崟r的、精確的反映場景的三維深度信息。權(quán)利要求一種基于FPGA的實時立體視覺實現(xiàn)方法,其特征在于包括如下步驟1)建立一個以FPGA為運算處理核心的立體視覺系統(tǒng),立體相機的左右視圖通過SERDES接口輸入;系統(tǒng)包括6塊1024K×8比特容量的外部SRAM,其中每2個SRAM組成一組乒乓緩存,實現(xiàn)左右視圖以及視差圖無縫傳輸和流水處理;Nand-FlashROM芯片用于存放系統(tǒng)離線標定得到的校正參數(shù),上電初始化過程中將校正參數(shù)從FlashROM中拷貝到SDRAM中以提高參數(shù)輸入的速率,實時完成圖像校正;系統(tǒng)以太網(wǎng)作為上行視差輸出和下行校正參數(shù)輸入的接口,實現(xiàn)千兆/百兆數(shù)據(jù)傳輸與長距離傳輸;系統(tǒng)預(yù)留2路并口IO,通過FIFO與外設(shè)連接,用于檢測結(jié)果、輸出中間數(shù)據(jù)或擴展功能使用;2)采用FPGA芯片內(nèi)部集成的多個硬核乘加器,在立體視覺系統(tǒng)工作時,通過下式實時完成多像素并行圖像校正處理,<mrow><mover><mi>I</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>u</mi><mo>,</mo><mi>v</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><mi>A</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>·</mo><mi>I</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>i</mi></msub><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>其中為校正后圖像在(u,v)坐標上的灰度值,I(ui,vi)為原始圖像上4個相鄰像素點的灰度值,A(ui,vi)為相應(yīng)的校正系數(shù);3)構(gòu)建一個窗口大小為9×9的寄存器組,每個寄存器組存儲相應(yīng)窗口位置的像素灰度值,通過比較窗口內(nèi)除了中心外所有寄存器的灰度值與中心寄存器的灰度值,得到對應(yīng)中心點像素的Census變換后的80比特編碼流,Census變換公式如下<mrow><mi>ξ</mi><mrow><mo>(</mo><mi>p</mi><mn>1</mn><mo>,</mo><mi>p</mi><mn>2</mn><mo>)</mo></mrow><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mi>p</mi><mn>1</mn><mo>≤</mo><mi>p</mi><mn>2</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mi>p</mi><mn>1</mn><mo>></mo><mi>p</mi><mn>2</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow><mrow><mi>C</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>⊗</mo><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mi>n</mi><mo>,</mo><mi>j</mi><mo>=</mo><mo>-</mo><mi>m</mi></mrow><mrow><mi>i</mi><mo>=</mo><mi>n</mi><mo>,</mo><mi>j</mi><mo>=</mo><mi>m</mi></mrow></munderover><mrow><mo>(</mo><mi>ξ</mi><mrow><mo>(</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>I</mi><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>i</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>其中p1、p2為兩個不同像素點的灰度值,表示比特串聯(lián),2n+1與2m+1為Census變換窗口的寬與高,2n+1、2m+1均為9;4)用下式求得兩個對應(yīng)Census變換得到的80比特編碼流之間的漢明距離,并以9×9相關(guān)窗口內(nèi)所有像素的漢明距離和作為匹配代價,進行相關(guān)匹配,<mrow><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mo>-</mo><mi>n</mi></mrow><mi>n</mi></munderover><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mo>-</mo><mi>m</mi></mrow><mi>m</mi></munderover><mi>Ham</mi><mi>min</mi><mi>g</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>l</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>i</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msub><mi>C</mi><mi>r</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>i</mi><mo>+</mo><mi>d</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>其中Cl、Cr分別表示左右視圖求得的Census變換編碼,d表示視差搜索范圍,2n+1與2m+1為相關(guān)匹配窗口的寬與高,d為64,2n+1、2m+1均為9;5)采用金字塔結(jié)構(gòu),將視差搜索范圍內(nèi)每一個窗口求得的漢明距離和劃分為4個一組,在一個時鐘周期內(nèi)求出每一組中的最小值;再將篩選得到的漢明距離和最小值重新分組,在下一個時鐘周期進行比較,如此循環(huán)對于視差范圍d的搜索,只用log4d個時鐘周期就能得到唯一的漢明距離和最小值;,6)移位寄存器組緩存輸出不同視差的匹配代價,以立體相機中左圖為基準的匹配采用串行比較結(jié)構(gòu),以立體相機中右圖為基準的匹配采用并行比較結(jié)構(gòu),實現(xiàn)相關(guān)匹配和左右一致性校驗,有效降低誤匹配率。FSA00000139182600012.tif,FSA00000139182600015.tif2.根據(jù)權(quán)利要求1所述的一種基于FPGA的實時立體視覺實現(xiàn)方法,其特征在于所述的圖像校正、Census變換以及Census變換后的80比特編碼流為它們所涉及到的數(shù)據(jù)在進行下一步運算時均存儲于數(shù)據(jù)緩存模塊,對于寬度為N個像素的圖像和高度為w的窗口,數(shù)據(jù)緩存模塊采用至少NX(w+1)個數(shù)據(jù)空間的簡單雙口RAM,具有一個讀數(shù)據(jù)端口和一個寫數(shù)據(jù)端口,并設(shè)讀地址指針和寫地址指針,數(shù)據(jù)緩沖模塊按列讀出,按行寫入,通過控制讀寫地址確保讀無讀寫沖突,當w行內(nèi)所有窗口操作都完成并且新的一行也寫入后,拋棄最早的一行數(shù)據(jù)。3.根據(jù)權(quán)利要求1所述的一種基于FPGA的實時立體視覺實現(xiàn)方法,其特征在于所述的Census變換為在窗口滑動時,像素逐個輸入后經(jīng)過串并轉(zhuǎn)換得到一個新窗口列,再將新窗口列數(shù)據(jù)送入與Census窗口大小相同的移位寄存器組,同時移出寄存器內(nèi)最早的一列數(shù)據(jù),串并轉(zhuǎn)換中移位寄存器數(shù)量同窗口高度,輸入數(shù)據(jù)間隔為整幅圖像的寬度,窗口移位寄存器組與Census窗口大小相同,抽頭間隔同窗口寬度。4.根據(jù)權(quán)利要求1所述的一種基于FPGA的實時立體視覺實現(xiàn)方法,其特征在于所述的相關(guān)匹配為數(shù)據(jù)延遲、漢明距離計算和最優(yōu)匹配搜索三個部分,相關(guān)匹配選取左視圖作為基準,右視圖在相應(yīng)基線上的視差搜索范圍內(nèi)進行逐一開窗匹配,左圖數(shù)據(jù)延遲d拍;漢明距離計算由匹配單元實現(xiàn),其數(shù)量由視差搜索范圍決定,當有新的一列漢明距離生成后對其進行更新,相應(yīng)的值等于原窗口值減去移出窗口的列漢明距離,再加上新移入窗口的列漢明距離。5.根據(jù)權(quán)利要求1所述的一種基于FPGA的實時立體視覺實現(xiàn)方法,其特征在于所述的左右一致性校驗是通過有規(guī)律的緩存輸出不同視差的匹配代價,在不造成冗余計算和額外開銷的情況下有效降低誤匹配率,以左圖為基準時,不同視差的匹配代價在連續(xù)時鐘周期輸出,采用二叉樹形串行比較結(jié)構(gòu);以右圖為基準時,不同視差的匹配代價在同一時鐘周期輸出,采用并行比較結(jié)構(gòu),在一次相關(guān)匹配中就可求得兩個基準系的視差值,再對左右圖基準視差值進行比較,如果相同則為有效視差,否則為無效視差。全文摘要本發(fā)明公開了一種基于FPGA的實時立體視覺實現(xiàn)方法。該實現(xiàn)方法運行于以FPGA為核心處理單元的立體視覺系統(tǒng),其硬件架構(gòu)合理,能夠滿足高速運算和高速傳輸圖像的要求,具備多種通用接口和富余的硬件資源,可以進一步擴展加強。同時基于Census變換的立體匹配算法是一種非參數(shù)化的匹配方法,對亮度不均、增益等情況更為魯棒,提高了系統(tǒng)的精度。本發(fā)明在FPGA架構(gòu)上采用了合理的硬件結(jié)構(gòu),同時通過巧妙的邏輯設(shè)計實現(xiàn)了Census立體匹配方法,提高了立體視覺實現(xiàn)的精度和速度。與傳統(tǒng)的基于通用處理器的方法相比,本發(fā)明充分利用并行計算及合理的流水線設(shè)計,把算法直接映射到結(jié)構(gòu)上,大大提高了系統(tǒng)的運算速度,滿足高分辨率、高精度和高速的要求,可以適用于自主車輛導(dǎo)航等領(lǐng)域。文檔編號G06T1/00GK101841730SQ20101018586公開日2010年9月22日申請日期2010年5月28日優(yōu)先權(quán)日2010年5月28日發(fā)明者丁菁汀,劉濟林,王心煥申請人:浙江大學(xué)