賴明珠, 李 劍, 劉玉斌
(1.海南師范大學數學與統計學院, 海口 570000; 2.杭州海康機器人技術有限公司, 杭州 310052; 3.哈爾濱工業大學機器人與系統國家重點實驗室, 哈爾濱 150080)
三維顯示技術由于能夠提高使用者對視頻信息的直觀、真實感受,從而帶來沉浸式的體驗而備受關注[1]。該技術正逐漸被廣泛應用到電視、游戲、虛擬現實、增強現實、醫療圖像等視頻顯示和人機交互領域,具有巨大的市場需求和商業價值。隨著技術的進步,裸眼3D技術正步入人們的視野,它能夠讓人擺脫穿戴設備的束縛,獲得更自由、廣闊的觀看視角,體驗更自然、真實的虛擬世界。然而,裸眼3D顯示內容的生成需要獲取大量不同視點下的圖像信息,制作復雜、成本高,并且給數據的采集、處理和輸送帶來極大的困難,這些因素限制了裸眼3D技術的應用和發展[2]。在3D視頻制作的多種方式中,虛擬視點繪制的方法僅需要利用有限數量的圖像和深度信息生成繪制3D視頻所需的視點圖像,大幅度降低了制作成本、提高了靈活性,但卻需要更復雜的算法來改善圖像質量,更為關鍵的技術難點是如何采取有效的方法來提高獲取深度信息的精度。因此,研究高精度、高效的雙目立體匹配算法來獲取高質量的深度信息,是實現低成本3D裸眼顯示的必要途徑,其成果對裸眼3D技術的推廣具有深遠意義。
立體匹配算法包括全局匹配算法、局部匹配算法和半全局匹配算法[3-4]。其中,全局匹配算法是依據全局能量函數的最優化來獲取全局最優視差[5],該方法的特點是增加了相鄰像素點間的平滑約束[6],因此能夠得到更高精度的視差計算結果,但算法的復雜性給計算單元帶來了巨大負擔,無論是動態規劃方法還是圖割法都無法滿足高實時性需求[7-10]。局部立體匹配算法是基于窗口匹配代價最小來進行匹配計算,該算法具有一定的局限性,為了提高其對光照等因素的抗干擾性、改善邊緣容易模糊等缺陷[11-13],學者們提出了很多改進的方法,但由于局部立體匹配算法僅考慮局部的最優化,雖然相對全局匹配算法計算量小、運算效率高,但匹配的錯誤率較高[14-15]。半全局立體匹配算法綜合了全局匹配算法和局部匹配算法特點,不僅具備較高精度的視差計算結果,同時具備較高的運算速度[16],在該方法基礎上采用優化算法來進一步提高深度信息的精度,是實現裸眼3D顯示實時性和真實性的可行途徑[17]。
為此,面向立體匹配技術以及視差優化方法,依據雙目相機獲取的圖像信息構建立體匹配單元,以獲取高精度深度信息。首先,對半全局立體匹配技術進行解析,揭示遮擋、弱紋理、重復紋理、反光等因素對錯誤視差估計的影響規律;其次,對半全局立體匹配算法計算結果中的缺陷進行分析,建立缺陷與錯誤估計值、不穩定邊界值、空洞以及噪聲的關系;再次,基于以上結論設計基于一致性檢驗、中值濾波、多層次均值濾波和視差繪制算法的組合優化方法;最后,通過實驗對立體匹配單元和組合視差優化方法進行評估和性能驗證。
半全局立體匹配算法兼具全局立體匹配和局部立體匹配算法的特征,可兼顧處理速度和深度信息獲取精度[18],但其獲取的深度信息精度仍然不能夠滿足虛擬視點繪制的需求。因此,深入分析半全局立體匹配技術的局限性,有針對性的設計視差優化方法,是實現高質量虛擬視點繪制的技術基礎。
立體匹配方法是依據雙目相機獲取的圖像信息尋找對應點,并且根據匹配關系以及相機的空間坐標位置推導得到各個像素點的深度信息。如圖1所示,雙目相機獲取的圖像信息經過對齊處理后,其成像平面共處于同一平面,左右圖像的極線位于相同的圖像水平掃描線上,因此,兩幅圖像具有相同的縱坐標,此時橫坐標的差值即稱為視差。視差與深度的關系式為

(1)
式(1)中:B和f分別為雙目相機基線間的距離和焦距;Z和d分別為相應點的深度和視差。
由于遮擋、弱紋理、重復紋理以及反光等因素,使得立體匹配技術難以實施[19]。如圖2所示,造成遮擋的原因是相機取像的角度不同,導致不同角度下一部分像素獲取不到,從而在兩幅圖中難以實現對應像素的匹配。弱紋理體現在獲取圖像信息對象紋理特征不明顯,從而區域區分特征不顯著,由于匹配關系主要依賴于紋理特征,因此難以確定兩幅圖像的匹配關系。重復紋理是指圖像信息存在多處一樣的紋理特征,從而導致匹配時不能夠得到唯一結果。反光是由于光強導致紋理信息模糊,從而無法準確辨識紋理特征,進而影響匹配的準確性。以上因素導致了立體匹配不可避免地存在無法確定和出現錯誤的情況,必須對匹配結果進行估計和修正。

圖1 立體匹配基本原理Fig.1 Basic principle of stereo matching

圖2 立體匹配難點Fig.2 Difficulties in stereo matching
立體匹配算法的常規執行過程如圖3所示,首先在雙目相機獲取的兩幅圖中的等高線上尋找匹配的像素點,通過對每一對點在各自鄰域內計算匹配代價值的大小,取值最小者為匹配點。對應點即指代價函數值最小的一對像素點,代價函數通常用歐氏距離求解。為了改進對干擾因素的魯棒性,算法采用代價擴散策略,制定領域規則,擴展到對領域內所有的像素點進行計算,確定鄰域的形狀為正方形,則代價函數可以表示為

(2)
式(2)中:p和d分別為左圖像中的像素點及其視差;N(·)表示像素點的鄰域;pl和pr表示鄰域內的點;I(·)表示像素。

圖3 立體匹配的基本過程Fig.3 Basic process of stereo matching
雙目相機獲取的兩幅圖像在對齊的情況下,其對應點必然會在對應的極線上,因此對應點的搜索范圍為同一條掃描線。采用填加約束的方法來實現對視差具備連續和一致的特性的估計,通過定義能量函數來實現約束,該函數包含了數據項和平滑項,其表達式為


(3)
式(3)中:Cd(d)表示所有匹配代價值的和,體現了匹配程度;Cs(d)表示所有懲罰項的和,體現了平滑程度;λ(dp-dq)表示懲罰項,與dp和dq的差值成正比。
優化目標是使得能量函數取最小值,此時得到估計視差。由于雙目相機獲取的兩幅圖像的對應點在同一條掃描線上,半全局立匹配算法可將視差估計計算分解為多個一維線性問題進行計算,從而采用動態規劃策略來大幅提高算法的運行效率和計算速度。
半全局立體匹配算法的初步計算得到的視差圖依然普遍存在空洞和噪聲缺陷,物體的邊界處存在較大誤差。利用半全局立體匹配的視差估計結果主要存在以下局限性:
(1)錯誤估計值:弱紋理、重復紋理及反光等擾動因素造成了錯誤估計值現象,優化過程尚且不能夠對錯誤估計值進行修正。該現象直接導致了無法獲得匹配結果。
(2)不穩定邊界值:往往出現在前景和背景物體的交界處,表現為相鄰的視差值發生突變,優化函數中的平滑項對邊界處的值進行平滑,從而導致了不穩定現象。
(3)空洞:遮擋是導致空洞現象的主要因素,由于無法建立匹配關系,半全局立體匹配算法的處理之后會留下未處理的空洞區域。
(4)噪聲:導致噪聲產生因素較多,直接因素是匹配關系之間存在偏差,必須采用有效的濾波方法進行處理。
在深入分析半全局立體匹配算法視差估計局限性基礎上,采取相應的視差優化方法,提高立體匹配深度估計的精度和魯棒性。
半全局立體匹配初步處理的得到的視差信息存在較多的缺陷,如果直接用于繪制基于深度的圖像渲染(depth-image-based rendering,DIBR)的虛擬視點,會造成生成的圖像質量較差的后果。為了有針對性的去除錯誤估計值、識別不穩定邊界值、彌補空洞、過濾噪聲,設計組合視差優化方法。如圖4所示,該方法分為一致性檢驗、中值濾波、多層次均值濾波、視差繪制4個步驟,依次有針對性地對半全局立體匹配算法的不足進行修正和彌補。
一致性檢驗通過設置嚴格的檢驗條件,對計算錯誤的點進行剔除。中值濾波可以將明顯的離群點過濾掉,來消除不穩定邊界值。多層次均值濾波能夠抑制結果中的噪聲,同時防止邊界處被過度平滑。視差繪制則將濾波后殘存的空洞進行填補。
針對總體能量函數優化過程中出現的視差優化錯誤計算點,尤其在重復或空白紋理區域,首先應該進行一致性檢驗,而這就要求匹配點滿足以下條件:

(4)

圖4 視差優化方案框架Fig.4 Parallax optimization scheme framework
式(4)中:dl、dr分別代表以左、右圖像為參考計算得到的視差;ql和qr代表一對正確匹配點;匹配像素點的橫坐標由xl和xr所表示;ε代表匹配代價閾值。ε越小則表明約束越嚴格,一致性檢驗則通過式(4)中迭代約束驗證實現左右視差圖優化,對不滿足約束的優化結果作為空洞無效值進行再次填充。檢驗后的效果如圖4(b)所示。
盡管一致性檢驗可以消除明顯計算錯誤,但檢驗過程存在復雜噪聲耦合,往往導致檢驗結果存在誤差,如圖4(b)紅框標識,稱作椒鹽噪聲。針對椒鹽噪聲的處理通常采用中值濾波技術以有效消除離群點,避免圖像模糊:

(5)
式(5)中:N(d)代表鄰域數據集合;n代表集合量級大小。
實驗過程發現鄰域大小嚴格影響椒鹽噪聲過濾效果,過大或過小將造成圖像邊緣污染或失真。多次實驗驗證表明5×5像素鄰域框可合理消除噪聲。針對一致性檢驗優化空洞無效值添加多層均值濾波以進行平滑處理,有效減小空洞取值范圍,實現過程如下:

(6)
rc+1=rc/2
(7)
式中:當前和下一時刻的濾波半徑分別由rc和rc+1所表示;坐標(i,j)處的視差值由dij表示。
為防止圖像過度平滑,多層均值濾波以單次逐步縮小鄰域框大小進行反復迭代實現,其效果如圖4(c)和圖4(d)所示。圖4(c)中綠框標識表示濾波后的空洞變化效果,圖4(d)中藍框標識代表較大無效空洞殘存,通常由于遮擋造成,針對該項處理,通常采用差值方法進行視差繪制:

(8)

通過該方法,可以有效處理無效空洞殘存,平滑填補銜接,高效完成視差優化。其效果如圖4(e)所示。
盡管視差優化可以有效過濾視差圖中的原始噪聲,但組合視差優化策略采用多層濾波技術將導致復雜計算非實時性問題,研究視差優化快速計算法,以大幅降低算法計算復雜度,有效提升處理速度。
傳統中值濾波算法需要對窗口全部像素值進行反復排序,計算冗余,極大增加了時間成本,如圖5所示。而快速中值濾波方法重點在于濾波元素值隨著窗口滑移實現迭代更新,操作過程在執行單行掃描結束后再轉至下一行運算,窗口像素值通常只變動一行或者一列,可以有效避免冗余計算。
傳統均值濾波算法同樣需要對窗口全部像素值進行反復均值迭代,計算冗余,大大增加了計算復雜度。而快速均值濾波采用積分圖表征方法僅采集窗口四個頂點元素,實現單次加減運算即可,其原理如圖6所示。

圖5 中值濾波原理Fig.5 Median filtering principle

圖6 積分圖Fig.6 Integral diagram
窗口元素之和可由式(9)所得:
Is=Ilt+Irb-Ilb-Irt
(9)
式(9)中:Is表示利用積分圖求得的窗口內所有元素的和;Ilt和Irb對應積分圖中左上、右下的值;Ilb和Irt對應左下、右上的值。
積分圖的構建由圖像積分圖S和圖像有效值掩模積分圖N兩個子積分圖構成,其中圖像有效值掩模積分圖N由元素0和1組成,分別表征對應像素值無效和有效,那么最終的均值(AVR)計算公式為

(10)
式(10)中:Slt、Srb、Slb、Srt和Nlt、Nrb、Nlb、Nrt分別對應積分圖S和積分圖N中窗口4個頂點處的像素值。

圖7 立體匹配模塊視差估計結果Fig.7 Parallax estimation result of stereo matching module
為了進行立體匹配技術普適性評價和視差優化方案有效性驗證,現綜合考慮了不同場景和不同設備因素,整合開源Middlebury雙目圖像數據集,包含多組視差圖片和對應視差真值,以合理估計視差并進行相應對比驗證。
實驗分別選取了均方根誤差和誤匹配像素比率作為視差圖精度評估指標,同時采用視差估值與視差真值進行計算比對。其中均方根誤差反映了所有視差值的誤差總和,表征視差圖整體精度;誤匹配像素比率反映了不同誤差水平的分布,表征不同誤差水平的像素數目占總體數目的比率,展現的是誤差的局部特征。
均方根誤差(RMS)計算公式為

(11)
誤匹配像素比率(BADδd)計算公式為

(12)
式(12)中:δd表示誤差容忍閾值;1(·)表示二進制函數,真值為1,反之為0;BADδd代表誤匹配像素比率。
由式(11)和式(12)可知,均方根誤差和誤匹配像素比率隨著視差圖計算精度的增高而降低,前者通過誤差總和表征整體誤差分布特征,后者通過不同誤差容忍閾值設定間接表征局部誤差分布特征。
實驗通過輸出的視差圖精度結果來評估立體匹配模塊總體性能,其視差估計結果如圖7所示,圖7中各行分別為輸入彩圖、視差真值和估計視差圖。結果表明,對于不同場景和不同設備下的數據情況,立體匹配技術都能夠對視差進行良好的估計,較之真值視差圖,僅有部分細小物體或邊界處估值存在較大差異,此外視差圖經過優化后相對較為平滑,且對于空洞誤差進行了合理填補,滿足虛擬試點圖像繪制要求。
實驗過程分別對均方根誤差和不同閾值進行了定量分析驗證,其中閾值選擇不同的誤匹配像素比率,依次為閾值0.5、閾值1.0、閾值2.0及閾值4.0。為方便描述,依次標記為RMSE、BadRate0.5、BadRate1.0、BadRate2.0和BadRate4.0。此外,采用Middlebury數據集中的Barn1、Barn2、Bull、Map、Poster、Sawtooth、Tsukuba、Venus、Cones和Teddy這10組數據來模擬對應10組場景,并分別對各組數據進行上述指標計算,分別得到視差估值與真值間誤差,最終得到均方根誤差統計直方圖分布,如圖8所示。

圖8 RMSE統計直方圖Fig.8 RMSE statistical histogram
從圖8中可以得到,均方根誤差平均值為2.23個像素單位,均方根誤差最大值和最小值分別為5.8個像素單位和0.5個像素單位。此外,在10組場景中,有8組場景下的均方根誤差較為平均。盡管第四組和第十組均方根誤差較大,這可能是由于數據集的噪聲耦合或者場景物體較小難以辨識導致,整體結果可以說明模塊具有普適性,有效達到匹配精度。
考慮視差圖估計誤差分布情況,采用誤匹配像素比率進行直觀描述,實驗過程選擇閾值分別為0.5、1.0、2.0和4.0個像素單位。其結果如圖9所示。
從圖9中可以得到,不同閾值條件下對應的誤匹配像素比率平均值為12.2%、6.3%、4.8%、3.5%,由此可知,隨著像素單位的增大,誤匹配像素比率平均值越小,大于4.0個像素單位的視差誤差只有極少部分,而大多數視差誤差都集中于0.5個像素單位以下,這充分表明立體匹配具有較高的估計精度。

圖9 誤匹配像素比率Fig.9 Mismatched pixel ratio
綜合以上實驗分析,針對不同場景下輸出的視差,所研究的立體匹配模塊技術可以有效抑制原始噪聲,提高估值魯棒性,估值精度得到大幅提升,為后續的虛擬試點圖像繪制要求提供了支撐。
針對組合視差優化方案性能驗證,實驗通過對RMSE、BadRate0.5、BadRate1.0、BadRate2.0和BadRate4.0這5個指標分別進行單步優化計算,進而比較各指標優化前后相對應變化來驗證所提出的組合視差優化方案有效性。
實驗分別考慮了4組場景Barn1、Bull、Poster和Venus,針對不同場景數據進行單步優化操作,其優化前后視差估值均方根誤差變化結果如圖10所示。

圖10 視差優化后均方根誤差變化Fig.10 Variation of RMSE after parallax optimization
由圖10可得,單步視差優化后的視差估值均方根誤差呈下降趨勢,且通過中值濾波處理和多層次均值濾波處理之后的結果尤為明顯,下降最為突出。

圖11 視差優化后誤匹配像素比率變化Fig.11 Change of mismatched pixel ratio after parallax optimization
圖11展示了4個場景下閾值分別為0.5、1.0、2.0和4.0條件下的單步優化操作前后的誤匹配像素比率變化。結果顯示,視差優化操作不同程度上降低了誤匹配像素比率,下降幅度比較突出的為閾值0.5,這充分說明視差優化取得了良好的效果,使得整體誤差集中分布于零點附近,大幅降低了整體誤差。
為了展現視差優化過程中各步對均方根誤差的影響,視差優化單步優化后均方根誤差縮減比率,如表1所示。由表1可得,經過視差優化操作,有效降低了均方根誤差,其比例均值可達40.91%。
此外,考慮閾值1.0在視差優化步驟中的變化規律,視差優化單步優化后閾值1.0值被詳細列出,如表2所示。從表2中可得,經過視差優化操作,有效降低了閾值1.0值,其比例均值可達23.78%。

表1 視差優化步驟對RMSE的影響

表2 視差優化步驟對BadRate1.0的影響
綜合上述實驗,結合均方根誤差和誤匹配像素比率兩個指標實現視差優化計算和定量分析,實驗結果表明視差優化方案可以有效降低誤差水平,實現視差圖的修復與優化,大幅提升立體匹配模塊性能,充分驗證了所提方案的有效性。
面向基于虛擬視點法的裸眼3D技術需求,綜合分析立體匹配技術的難點,采用半全局立體匹配技術實現對視差的高效估計,并且設計了包括一致性檢驗、中值濾波、多層次均值濾波和視差繪制方法的組合優化方法,來進一步提高視差的精度。通過實驗對理論和方法的有效性進行評估,得到的結論如下。
(1)該方法能夠有效地去除視差估計結果中的噪聲,并且可以有效地彌補由于遮擋等問題造成的空洞,從而提高視差的精度。實驗定量分析結果顯示,該優化方法使視差的均方根誤差下降40%左右,像素錯誤匹配比率下降20%以上。
(2)基于半全局立體匹配算法和組合優化方法的立體匹配單元能夠高效、穩定的獲取高精度深度信息、從而為虛擬視點的繪制提供技術保障。該技術為降低裸眼3D實施成本、推廣裸眼3D技術廣泛應用具有重要意義。