孫延坤, 李彩林, 王佳文, 蘇本婭, 崔志婷
(山東理工大學(xué)建筑工程學(xué)院, 淄博 255000)
計(jì)算機(jī)技術(shù)經(jīng)過數(shù)十年的不斷發(fā)展,雙目立體視覺作為一種非接觸性的測量技術(shù),被廣泛運(yùn)用于航天航空、三維重建、機(jī)器人導(dǎo)航、安防監(jiān)控等領(lǐng)域[1-2]。雙目立體視覺關(guān)鍵技術(shù)之一即為立體匹配,由于影像中通常存在光照和紋理結(jié)構(gòu)變化的問題,利用傳統(tǒng)的立體匹配算法極易出現(xiàn)大量的誤匹配等問題,制約著后續(xù)應(yīng)用的范圍及精度。因此,對(duì)弱紋理區(qū)域和視差不連續(xù)區(qū)域匹配精度的研究受到廣大學(xué)者的青睞。雙目立體視覺獲取空間物體三維信息的流程主要包括圖像獲取、攝像機(jī)標(biāo)定、圖像矯正、立體校正、立體匹配、生成深度圖像[3],如圖1所示。
圖1 雙目立體視覺流程Fig.1 Binocular stereo vision process
Zahih等[4]為了提高算法精度,提出基于非參數(shù)變換的方法,同時(shí)克服了光照不同與幾何變化對(duì)灰度值的影響。Birchfield等[5]采用灰度絕對(duì)差(absolute difference,AD)作為匹配代價(jià),可以較好地反映像素點(diǎn)之間的灰度變化,不足之處在于該算法對(duì)光照變化產(chǎn)生的噪點(diǎn)十分敏感,魯棒性較差。李志等[6]提出一種彩色Census變換匹配算法,提高對(duì)不同光照變化的魯棒性,但是存在視差邊緣匹配不準(zhǔn)確的缺陷。Hirschmüller[7]提出一種介于局部算法與全局算法之間的半全局立體匹配(semi-global matching,SGM)算法。雙目立體像對(duì)采用基于互信息的匹配成本計(jì)算策略來提升匹配效率,通過優(yōu)化最小能量函數(shù)并且進(jìn)行多個(gè)方向代價(jià)聚合來提高計(jì)算精度,但復(fù)雜度較高。
綜合考慮上述算法的優(yōu)缺點(diǎn),針對(duì)弱紋理區(qū)域和視差不連續(xù)區(qū)域較難處理以及受噪聲和光照變化等復(fù)雜干擾因素的影響下極易產(chǎn)生誤匹配等問題,提出了利用局部匹配絕對(duì)誤差和(sum of absolute differences, SAD)算法在灰度信息及紋理豐富區(qū)域匹配速度快、計(jì)算效率高和Census變換對(duì)圖像輻射差異具有魯棒性的優(yōu)勢,將SAD和Census算法融合替代單一匹配代價(jià)來改進(jìn)傳統(tǒng)的立體匹配算法,同時(shí)采用簡單十字交叉方法進(jìn)行代價(jià)聚合,通過后處理優(yōu)化初始視差圖,進(jìn)而得到最終效果良好的視差圖。
以獲得的二維數(shù)字圖像為出發(fā)點(diǎn),獲取空間物體三維幾何信息的過程之中,相機(jī)標(biāo)定是十分重要的環(huán)節(jié)。采用簡單靈活得到廣泛使用的張正友平面攝像機(jī)標(biāo)定方法[8-9]。相機(jī)與標(biāo)準(zhǔn)的標(biāo)定板都允許在任意方向移動(dòng),利用不少于3個(gè)不同的視角圖像就可以獲取相機(jī)的內(nèi)外參數(shù),便于實(shí)現(xiàn)又可以得到相對(duì)較好的定標(biāo)精度。由于相機(jī)移動(dòng)以及外界環(huán)境的影響,相機(jī)無法避免獲取帶有畸變的影像,而對(duì)畸變的糾正主要是針對(duì)徑向畸變。雙目立體匹配利用Bouguet立體校正[10],在左右視圖中通過極線約束將尋找匹配點(diǎn)的搜索范圍從二維平面縮小到一維直線搜索,并且獲得嚴(yán)格水平行對(duì)準(zhǔn)的左右視圖。立體像對(duì)利用一定的相似性測度算法,一旦確定了匹配點(diǎn),即可獲得三角測量原理中的視差值,從而恢復(fù)真實(shí)客觀世界中該點(diǎn)的深度信息。現(xiàn)采用Scharstein等[11]的算法思想,如圖2所示,將立體校正后的立體像對(duì)通過匹配代價(jià)計(jì)算、代價(jià)聚合、視差選擇和視差優(yōu)化4個(gè)階段,即可以獲取匹配效果良好、錯(cuò)誤匹配少的高精度視差圖。
圖2 立體匹配流程Fig.2 Stereo matching process
SAD算法具有計(jì)算速度快和實(shí)時(shí)性能好的優(yōu)點(diǎn),其核心思想是把左右圖像中匹配點(diǎn)每個(gè)像素對(duì)應(yīng)數(shù)值之差的絕對(duì)值求和,并評(píng)估左右圖像塊之間的相似度。SAD算法計(jì)算公式為
(1)
式(1)中:IL(x,y)、IR(x,y)表示左右視圖中像點(diǎn)(x,y)位置的像素灰度值;d為視差值。用i、j遍歷匹配窗口中的每個(gè)像素,每進(jìn)行一次運(yùn)算d的數(shù)值會(huì)發(fā)生變化。匹配窗口的構(gòu)建如圖3所示,其中,PL為左目參考圖像,PR為右目待匹配圖像,并且左右視圖Y軸相等,在X軸存在水平位移。左視圖像PL和右視圖像PR分別以中心像素點(diǎn)(x0,y0)、(x0+d,y0)構(gòu)建尺寸大小為M×N的匹配窗口WL和待匹配窗口WR。然后,統(tǒng)計(jì)兩匹配窗口內(nèi)像素灰度,并求取WL與WR中所有像素差的絕對(duì)值。根據(jù)相似性度量函數(shù)在預(yù)先設(shè)置的視差范圍內(nèi),從若干可能選取的匹配窗口中尋找最佳的匹配窗口。若兩個(gè)子窗口計(jì)算所得SAD最小時(shí),即為最佳匹配窗口,則對(duì)應(yīng)的點(diǎn)為最佳匹配點(diǎn),此時(shí)當(dāng)前的d即為視差值[12]。
圖3 SAD匹配原理Fig.3 SAD matching principle
Census變換的核心思想是使用像素鄰域內(nèi)的局部灰度差異,用比特串來表示編碼后像素灰度變換信息。由于Census變換能夠更好地檢測出圖像中的紋理空間分布信息,因而具有更好的魯棒性和適用性。Census變換公式為
(2)
(3)
式中:C(p)為窗口中心像素p為基準(zhǔn)經(jīng)過變換后的一個(gè)比特串;I(p)、I(q)為像素p、q的灰度值;W(p)為窗口中心像素p為基準(zhǔn)的像素鄰域,若窗口中的某個(gè)像素q的灰度大于中心像素p,則將比特串的相應(yīng)位置標(biāo)記為1,否則將其設(shè)置為0[13];?為比特位的逐位連接運(yùn)算。對(duì)視差搜索范圍內(nèi)的每一個(gè)像素(x,y)的視差值,需要根據(jù)下式來計(jì)算相似性測度值。
(4)
式(4)中:CL(x,y)、CR(x,y-d)為經(jīng)過Census變換后得到的比特串;d為當(dāng)前搜索視差值,Hamming[CL(x,y),CR(x,y-d)]為兩比特串的漢明距離,漢明距越小,兩點(diǎn)之間相似度越高;n×n為匹配窗口大小。
設(shè)計(jì)了SAD和Census的融合策略,SAD與Census變換產(chǎn)生的初始匹配代價(jià)存在差異,為避免初始代價(jià)不一致導(dǎo)致視差圖準(zhǔn)確度不夠的問題的產(chǎn)生,所以須經(jīng)過處理后將兩者的初始代價(jià)進(jìn)行歸一化以生成視差空間。因此,定義式(6)的歸一化公式將兩者的數(shù)據(jù)統(tǒng)一歸一化到[0,1]區(qū)間上,然后,將歸一化后的數(shù)據(jù)進(jìn)行求和來生成新的匹配代價(jià)[14]。
C(p,d)=ρ[CCen(p,d),λCen]+
ρ[CSad(p,d),λSad]
(5)
(6)
式中:CCen(p,d)為經(jīng)過Census變換后的得到匹配代價(jià)值;CSad(p,d)為經(jīng)過SAD算法計(jì)算得到的匹配代價(jià)值;λCen、λSad分別為Census變換、SAD算法的影響參數(shù);ρ(c,λ)通過預(yù)先設(shè)置λCen和λSad可以將兩種類型的代價(jià)值控制在[0,1],因此代價(jià)不會(huì)由于某一項(xiàng)而引起較大的突變。與單一基于SAD或Census變換的算法相比,融合算法生成的視差圖更為準(zhǔn)確,因?yàn)镃ensus變換利用鄰域像素與中心像素對(duì)比的信息來代替原有的灰度,對(duì)于光照等因素引起的亮度偏差有較好的魯棒性,并且SAD算法針對(duì)窗口內(nèi)像素灰度值的匹配更加精確。結(jié)合兩者優(yōu)勢,融合匹配算法比單獨(dú)使用兩者時(shí)正確率得到提高,產(chǎn)生的誤匹配率更小,具有更好的魯棒性和抗噪性。
采用簡單的十字交叉區(qū)域[15]獲得中心像素的方法進(jìn)行代價(jià)聚合,十字交叉區(qū)域的結(jié)果不僅考慮中心像素與周圍像素的距離關(guān)系,而且可以用于視差圖像的后處理并且能夠提高代價(jià)聚合的效率。
算法將中心像素延伸到圖像邊緣的距離稱為臂長。如圖4所示,對(duì)中心像素進(jìn)行4個(gè)臂拓展延伸的下一點(diǎn)p1應(yīng)該滿足:
圖4 十字交叉原理Fig.4 Principle of cross
DC(p1,p)<τ1,DC[p1,p1+(1,0)]<τ1
(7)
DS(p1,p) (8) DC(p1,p)<τ2, 如果L2 (9) 式中:DC(p1,p)為p1和p像素點(diǎn)間的顏色差異,DS(p1,p)為p1和p像素點(diǎn)間的幾何距離。式(7)表明p1點(diǎn)與中心像素點(diǎn)p的顏色差異應(yīng)該小于給定閾值,且p1與p的下一個(gè)點(diǎn)之間的顏色差異也要小于閾值τ1,這確保了自適應(yīng)區(qū)域包含的點(diǎn)不會(huì)跨越圖像的邊緣。式(8)表明臂長要小于最大臂長,使其在給定的閾值范圍L1內(nèi)擴(kuò)張。式(9)則選擇較小的閾值τ2進(jìn)行限制,當(dāng)距中心像素的距離大于L2時(shí),可確保在無紋理和弱紋理區(qū)域中有足夠的信息,并且不會(huì)在強(qiáng)紋理區(qū)域中引入不同的顏色的其他像素。當(dāng)p1點(diǎn)違反上述任一條件時(shí),相應(yīng)的臂的擴(kuò)張結(jié)束。在中心像素的4個(gè)臂擴(kuò)展完成之后,每個(gè)像素q的水平臂在其垂直臂上形成一個(gè)自適應(yīng)區(qū)域。 計(jì)算初始匹配代價(jià)后,通過勝者為王策略[16](winner-takes-all,WTA)尋找最優(yōu)視差,從所有可能選擇的匹配代價(jià)中確定最小匹配代價(jià)的位置后而對(duì)應(yīng)的視差值即為最優(yōu)視差。由于立體匹配的左右視圖從不同的視角進(jìn)行拍攝,因而存在遮擋區(qū)域,即在一個(gè)圖像中存在而在另一圖像中不存在的區(qū)域。通過左右一致性檢測[17]后,對(duì)遮擋點(diǎn)進(jìn)行視差填充。由于圖片本身存在噪聲以及填充后的視差仍然存在很多獨(dú)立的噪聲,為了提高結(jié)果的準(zhǔn)確性,進(jìn)行中值濾波[18]濾除噪聲。經(jīng)過3種細(xì)化方法不但去除錯(cuò)誤的孤立點(diǎn)減少錯(cuò)誤匹配,同時(shí)還可以相對(duì)較好地保留圖像的邊緣信息。 設(shè)計(jì)了兩個(gè)實(shí)驗(yàn),利用標(biāo)定實(shí)驗(yàn)得到的標(biāo)定參數(shù)后,進(jìn)行立體校正可以獲取嚴(yán)格水平的左右視圖。利用不同算法對(duì)左右視圖進(jìn)行立體匹配對(duì)比實(shí)驗(yàn),同時(shí)也選取不同場景的數(shù)據(jù)集驗(yàn)證了所提算法的可行性和適用性。 選取普通雙目攝像頭進(jìn)行標(biāo)定實(shí)驗(yàn),左右攝像機(jī)間距約4.15 cm,圖像最大分辨率是640×480。在同一場景下利用固定攝像機(jī)移動(dòng)標(biāo)定板的方法采集8組圖像(圖5)進(jìn)行雙目攝像機(jī)標(biāo)定測試,相機(jī)標(biāo)定結(jié)果保存在計(jì)算機(jī)中,具體結(jié)果如表1所示。 表1 相機(jī)標(biāo)定結(jié)果Table 1 Camera calibration results 圖5 相機(jī)標(biāo)定圖片F(xiàn)ig.5 The image of camera calibration 根據(jù)相機(jī)標(biāo)定結(jié)果對(duì)拍攝的一個(gè)立體影像對(duì)進(jìn)行校正,取得了良好的效果。如圖6所示,圖6(a)是校正前的左右實(shí)拍圖,水杯的瓶蓋存在上下偏移的現(xiàn)象。圖6(b)是校正后的左右實(shí)拍圖,水杯的瓶蓋上下偏移現(xiàn)象消失,左右視圖只存在水平偏移現(xiàn)象。實(shí)驗(yàn)結(jié)果表明,經(jīng)過立體校正后,左右視圖的所有極線都相互平行,并且方向與圖像坐標(biāo)系的X軸相同,同時(shí)對(duì)應(yīng)點(diǎn)的縱坐標(biāo)也相同。 圖6 立體校正前后Fig.6 Before stereo correction 采用C++語言在Visual Studio 2013集成環(huán)境下編程實(shí)現(xiàn)SAD、Census、融合SAD和Census的立體匹配算法(簡稱SAD-CEN),采用操作系統(tǒng)為Win10 64位,處理器為AMD Ryzen 5 2600 Six-Core 3.4 GHz,運(yùn)行內(nèi)存8 GB的計(jì)算機(jī)進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)采用Middlebury[19]平臺(tái)提供的4組測試圖像Cones、Teddy、Tsukuba、Venus以及對(duì)應(yīng)真實(shí)的視差圖。分別采用SAD(匹配窗口大小為5×5)、Census以及本文提出的SAD-CEN算法(匹配窗口大小均為9×9)對(duì)4組測試圖像進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如圖7所示。 由圖7可以看出,與SAD和Census算法相比,采用SAD-CEN算法計(jì)算的視差圖具有明顯優(yōu)勢:①Cones視差圖的圓錐影像更接近真實(shí)視差圖,圓錐的邊緣表達(dá)更清晰,并且面具模型的輪廓更加圓潤;②Teddy視差圖中間橫放的木頭更符合原來的形狀,并且玩偶熊的右手上方和頭部區(qū)域能夠很好地分離,且相對(duì)于SAD算法,弱紋理區(qū)域更加平滑;③Tsukuba視差圖燈罩形狀以及燈桿與燈罩的連接處更符合真實(shí)視差圖,不但燈桿兩個(gè)長柄之間的縫隙清晰可見,而且桌子下面的匹配更準(zhǔn)確;④Venus視差圖的拐角邊緣準(zhǔn)確,并且獨(dú)立噪聲點(diǎn)比較少,更符合真實(shí)視差圖。綜上所述,融合SAD與Census的SAD-CEN考慮紋理空間分布信息,克服了SAD算法在大面積紋理缺乏區(qū)域的錯(cuò)誤匹配多的問題,融合算法平滑性較好,物體邊緣輪廓較清晰,匹配精度得到提高。 圖7 實(shí)驗(yàn)結(jié)果Fig.7 Experimental results 為了更好地評(píng)估3種算法生成視差圖的效果,將3種算法生成的效果圖分別與Middlebury平臺(tái)提供的真實(shí)視差圖進(jìn)行對(duì)比,兩者的視差閾值設(shè)置為1,如果兩者之間的差大于1,則認(rèn)為該點(diǎn)是匹配錯(cuò)誤點(diǎn)。通過不同的算法對(duì)4組圖像進(jìn)行測試,所有區(qū)域平均誤匹配率數(shù)據(jù)如圖8所示。 圖8 視差圖誤匹配率折線圖Fig.8 Line chart of disparity map mismatch rate 由圖8可知,SAD算法誤匹配率最高,Census算法次之,SAD-CEN算法誤匹配率最低。在Teddy與Tsukuba視差圖像中的表現(xiàn)尤為明顯:Teddy視差圖像中SAD-CEN算法的誤匹配率比SAD算法降低約10%;而Tsukuba視差圖像中SAD-CEN算法的誤匹配率比Census算法降低約8%。表明SAD-CEN生成的視差圖誤匹配率比單獨(dú)使用SAD和Census的生成視差圖誤匹配率有一定程度降低,匹配精度得到提高,匹配效果得到改善。 為了測試算法在復(fù)雜情況下生成視差圖的效果以及適用性,另外選取兩組影像數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。第1組數(shù)據(jù)為室外汽車行駛圖片,圖像分辨率為655×540,第2組數(shù)據(jù)為相機(jī)實(shí)際拍攝的影像,影像分辨率為290×230。采用SAD、Census和SAD-CEN算法進(jìn)行測試,實(shí)驗(yàn)結(jié)果如圖9所示。由圖9中第1組數(shù)據(jù)的實(shí)驗(yàn)結(jié)果可知,相比Census和SAD算法,采用SAD-CEN算法進(jìn)行立體匹配后的圖片,汽車輪廓更符合現(xiàn)實(shí),同時(shí)信號(hào)燈的末尾也可以在視差圖上清晰反映。由圖9中第2組數(shù)據(jù)的實(shí)驗(yàn)結(jié)果可知,SAD-CEN算法生成的視差圖在飲料瓶的邊緣及瓶子之間的間隔更加清晰。實(shí)驗(yàn)結(jié)果表明SAD-CEN算法生成的視差圖錯(cuò)誤匹配較少,驗(yàn)證了該算法在復(fù)雜情況下仍具有較好的適用性。 圖9 不同場景的實(shí)驗(yàn)結(jié)果Fig.9 Experimental results of different scenes 在求得攝像機(jī)內(nèi)外參數(shù),進(jìn)行立體校正的基礎(chǔ)上,針對(duì)立體匹配中弱紋理區(qū)域和深度不連續(xù)區(qū)域誤匹配率較高的問題,提出一種融合SAD和Census計(jì)算匹配代價(jià)的算法,同時(shí)采用簡單十字交叉的代價(jià)聚合方法不僅改善了視差圖生成效果而且提高了算法的準(zhǔn)確度。針對(duì)不同實(shí)驗(yàn)場景的測試仍可以生成效果較好的視差圖,進(jìn)一步驗(yàn)證了算法的適用性。立體匹配是計(jì)算機(jī)視覺中的關(guān)鍵技術(shù),對(duì)立體匹配算法的準(zhǔn)確性以及實(shí)時(shí)性改進(jìn)是未來研究工作的重點(diǎn)。2.4 視差計(jì)算與后處理
3 實(shí)驗(yàn)結(jié)果與分析
3.1 相機(jī)標(biāo)定實(shí)驗(yàn)
3.2 立體匹配實(shí)驗(yàn)
4 結(jié)論