王 源,孫啟湲+
(1.天津理工大學 天津市先進機電系統設計與智能控制重點實驗室,天津 300384;2.天津理工大學 機電工程國家級實驗教學示范中心,天津 300384)
將立體匹配技術應用于智能視頻監(jiān)控系統面臨的挑戰(zhàn)主要包括:①實時性要求高;②戶外環(huán)境下左右相機曝光不一致引起誤匹配;③遮擋引起誤匹配;④噪聲引起誤匹配;⑤低紋理區(qū)域和重復紋理區(qū)域匹配容易引起歧義。
目前能夠獲得稠密視差圖的立體匹配算法主要分為全局算法[1]、局部算法[2]和半全局算法[3]。局部算法以局部窗口為支撐區(qū)域進行代價聚合以加強單像素的視差可信度。局部算法適于并行計算,算法復雜度低,適合實時系統。祝世平等對Census變換進行了改進[4],加入了噪聲容限閾值并且使用了自適應十字交叉區(qū)域作為變換窗口,提高了Census變換算法在不連續(xù)區(qū)域和噪聲干擾區(qū)域的匹配精度。
本文針對智能視頻監(jiān)控系統的特點,提出了一種基于改進AD-Census算法(absolute difference-census)和引導濾波[5]的立體匹配算法。算法分為5個步驟:①預處理:采用適當的預處理降低噪聲和光照影響;②代價計算:提出一種設有噪聲容限并且引入了梯度信息的AD-Census算法計算匹配代價以減小噪聲和光照的影響;③代價聚合:采用兩級本地自適應引導濾波算法快速進行代價聚合以提高算法的實時性;④視差選擇:使用WTA(winner takes all)算法快速進行視差選擇;⑤視差提精:提出一種多步提精方法進行視差優(yōu)化。
預處理的目的是有效減少噪聲和光照變化的影響。首先對匹配圖像和參考圖像進行高斯濾波以減少噪聲影響,接著對兩幅圖像直方圖均衡化以減少光照的影響。
本節(jié)對傳統的AD-Census變換進行改進。在AD(absolute difference)算法中引入梯度信息,并對Census變換設置閾值。帶有截斷的強度差的絕對值用CTADC表示,帶有截斷的梯度值差的絕對值用CTADG表示,帶有截斷和設有閾值的Census變換用CTCensus表示。下面分別計算3種匹配代價以及總的匹配代價C(p,d)。
傳統的AD方法直接計算左圖像與右圖像在對應視差像素灰度值之差的絕對值。梯度信息在代價匹配中能夠對視差圖的邊界具有很好的保持作用[6],能夠避免光照變化引起的影響。AD算法以及引入梯度信息后的AD算法計算得到的匹配代價CADC(p,d)和CADG(p,d)可表示為

(1)

(2)
(3)
(4)
Census變換依次編碼中心像素強度值與鄰域像素強度值相對大小,完成對像素本地結構的描述。實質是將像素點的鄰域結構信息分類后以二進制碼流的形式表現出來。由于Census變換僅比較像素強度相對大小,因此對噪點和光照變化具有魯棒性。然而缺點也非常明顯:①過度依賴中心像素強度值。在智能視頻監(jiān)控系統中,圖像通常有大量噪點,這對Census變換是一種挑戰(zhàn);②由于采用固定窗口,在無紋理區(qū)域或紋理重復區(qū)域容易造成錯誤的匹配;針對上述問題,結合智能視頻監(jiān)控系統中立體圖像對的特點,本文提出一種設有噪聲容限并且易于并行的改進Census變換計算匹配代價。使用9×7大小的窗口編碼像素的本地結構信息,形成一串128位的信息串。改進的Census變換可表示為

(5)
式中:TCensus(x,y)代表通過Census變換在像素點(x,y)處計算得到的128位二進制串;運算符號?代表Census變換是逐像素進行的;MI(x,y)表示I(x,y)在3×3鄰域內的平均值。I(xN,yN)表示矩形窗口內的鄰域像素灰度值;N(x,y)表示像素點(x,y)的大小為9×7像素的鄰域;ξ(MI(x,y),I(xN,yN))由式(6)計算

(6)
式中:α是噪聲容限值,其大小正比于中心像素灰度值
(7)
式中:β為容忍比例,在實際情況中一般取50;[ ]表示就近取整算子。由Census變換產生的匹配代價CCensus(p,d)由漢明公式計算
CCensus(p,d)=Hamming[Tref(p),Tmat(p+(d,0)T)]
(8)
最終的匹配代價由上述3種匹配代價組合而成。一些實驗表明采用指數混合的方式比直接相加的混合方式有更好的性能[6],因此總的匹配代價計算公式如下

(9)
代價聚合占用AD-Census立體匹配算法超過70%的運算時間,因此降低代價聚合算法的計算復雜度對實時系統來說非常重要。局部算法代價聚合基于灰度視差一致性假設。具有相同或相近灰度值的連續(xù)像素最有可能是同一個結構的表面,具有相同的視差。基于這種假設,基于局部算法的代價聚合的主要目標是選擇合適的支撐區(qū)域以及對區(qū)域內像素分配合適的權重。本文采用一種兩級本地自適應引導濾波[7]完成代價聚合,它是對傳統引導濾波聚合的改進。兩級本地自適應引導濾波器權重核函數可表示為
(10)

兩級本地自適應引導濾波是傳統引導濾波的更廣泛的形式,它使用局部自適應矩形窗口代替默認的固定大小的方形窗口。當|ωi|=|ωj|時,即所有核窗口擁有固定大小時,兩級本地自適應引導濾波就退化為了傳統引導濾波。兩級本地自適應引導濾波繼承了引導濾波的優(yōu)點,可以很好地保持視差圖邊緣,并且計算復雜度僅為O(N),這對實時性要求較高的系統很有幫助。此外由于采用了可變窗口,在邊緣的處理上有更高的精度。P(435,251)為圖1中的參考圖像classroom2中像素坐標為(435,251)的一點。圖2(a)顯示了P點經過代價計算后得到的每個視差上的初始代價,橫坐標每一點代表不同的視差值,縱坐標表示相應視差值上的匹配代價。如果直接選擇代價值最小的視差作為P點最終的視差,由圖中可以看出最小值并不明顯,這可能導致錯誤的匹配結果。這是由于單像素具有不穩(wěn)定性,容易受噪聲干擾。圖2(b)顯示了聚合后P點的代價值。可以看出,經過兩級本地自適應引導濾波后的匹配代價表現出了良好的正則性,最小匹配代價具有更高的可信度。

圖1 本文立體匹配算法步驟

圖2 classroom2中P(435,251)點原始匹配代價與聚合后匹配代價
經過兩級本地自適應引導濾波后,視差空間圖像經過簡單的WTA算法獲得初始視差值
(11)
經過視差選擇獲得的初始視差圖包含很多錯誤的視差。本文針對智能視頻監(jiān)控圖像噪聲較多的特點,提出一種多步提精的方法,流程如圖3所示。

圖3 多步提精流程
1.5.1 區(qū)分誤匹配點和穩(wěn)定點

(12)

1.5.2 誤匹配點分類
我們采用文獻[8]中使用的方法區(qū)分遮擋點和非遮擋誤匹配點。如圖4所示,在同一極線上,Cbm(p,d)表示參考圖像視差為d時對應的匹配圖像視差,如果Cbm(p,d)與匹配圖像真實視差沒有交點,則p點標記為遮擋點,否則標記為非遮擋誤匹配點。非遮擋點可通過計算誤匹配點連通域大小進一步區(qū)分為非遮擋誤匹配點和非遮擋誤匹配區(qū)域。

圖4 區(qū)分遮擋點與非遮擋點
1.5.3 置信傳播
遮擋點一般是被前景遮擋的點,在參考圖像中通常位于邊緣左側且視差小于右側邊緣。因此對于遮擋點的置信傳播,應當沿著極線向視差較小的左側區(qū)域進行。另外根據視差一致性假設,同一連通域顏色相似的像素具有相似的視差。對左側極線上每個置信點計算顏色相似度
(13)
式中:I(p)和I(pp)分別代表誤匹配點和置信點灰度值。當ηp>τp時停止向左尋找置信點。并且p點視差更新為
(14)
非遮擋誤匹配點和非遮擋誤匹配區(qū)域主要是由噪聲、光照變化和無紋理區(qū)域引起的。對于非遮擋誤匹配點,采用帶有置信掩模的聯合雙邊濾波更新視差值。對于非遮擋誤匹配區(qū)域,首先進行區(qū)域分割并擴展至置信區(qū)域,接著對分割區(qū)域進行區(qū)域投票,獲得最高票數的視差值更新為區(qū)域視差值。
最后對整個視差圖進行加權中值濾波平滑視差圖。經過視差提精后,遮擋區(qū)域,無紋理區(qū)域和其它誤匹配區(qū)域的錯誤視差被周圍正確視差插值估計。
為了驗證算法的有效性,在配備了型號為Inter(R)Core(TM)i5-2450主頻為2.5 GHz的CPU以及型號為NVIDIA GeForce GT 630M顯卡的平臺上使用OpenCV2.4.9+CUDA+VS2013編程實現了本文算法。測試圖像對為Middlebury立體匹配算法標準測試平臺提供的標準立體圖像對[9]。算法的部分參數設置如下:λADG=10,λADC=10,λCensus=30,τADG=255,τADC=255,τCensus=64,τch=1,τp=0.03,τPKRH=0.9,τPKRL=0.8。
實驗分兩組進行:
第一組實驗的目的是測試本文算法在光照變化和噪聲干擾下匹配的效果。使用的圖像對是Middlebury標準立體圖像對2014數據集[9]中的classroom2和classroom2E以及它們分別加入SNR=20 dB(signal-noise ratio)椒鹽噪聲的圖像對,其中classroom2E是一組參考圖像和匹配圖像曝光不一致的立體圖像對。圖像對大小為1/4全尺寸。視差深度范圍為160。實驗結果如圖5所示。其中純黑色、純白色都表示錯誤的匹配。從圖5可以看出AD-Census算法對光照變化非常敏感,當左右圖像曝光不一致時,產生的視差圖誤匹配點很多,形成大片的誤匹配區(qū)域;椒鹽噪點的影響相對較小,誤匹配點主要以點狀出現,僅在上部出現大片誤匹配區(qū)域。本文算法在曝光不同時表現了良好的性能,在遮擋區(qū)域和視差不連續(xù)區(qū)域均顯著減少了誤匹配視差;在加入椒鹽噪點的圖像中也獲得了比AD-Census算法更少誤匹配點的視差圖。在未加入曝光變化和噪聲的圖像對中,本文算法效果接近AD-Census算法,僅在下方部位出現小片誤匹配區(qū)域。通過本組實驗可以看出,本文算法在加入第二組實驗測試了MiddleBury立體匹配評估(版本3)所需的15對標準圖像對[9]并對視差結果進行了評估。

圖5 實驗一獲得的視差圖
圖像對大小為1/4全尺寸。圖6給出了其中4對圖像對的視差結果。從中可以看出本文算法在低紋理區(qū)域和深度不連續(xù)區(qū)域均表現出了較高的準確性。表1列出了其中4對視差圖的誤匹配率(誤差超過1%即視為誤匹配像素)。表格中nonocc、all分別表示非遮擋區(qū)域誤匹配率和總體像素誤匹配率。Djembe測試圖視差變化大,層次豐富,各個鼓使得視差不連續(xù)區(qū)域較多,遮擋區(qū)域增加,降低了匹配精度;DjembeL測試圖不僅視差相對變化較大,而且由于曝光不同造成匹配誤差增大,因此匹配精度最低;AustraliaP測試圖視差平坦,紋理豐富,匹配精度最高,衣架支撐區(qū)域較小以及植物部分重復紋理過多造成誤匹配增加。Bicycle2測試圖地面和墻面紋理較少,自行車使得深度不連續(xù)區(qū)域增加,輻條支撐區(qū)域較小,使得誤匹配相對較大。表1還展示其它幾種立體匹配算法(包括SGBM(semi-global matching)算法和LPS[10]算法)的評估結果,從表中數據可以看出本文算法獲得的視差圖中DjembeL立體圖像對獲得了最好的效果,精度遠遠高于其它兩種算法。這是因為DjembeL立體圖像對參考圖像和匹配圖像光照存在差異,本文算法在預處理中使用了直方圖均衡化以及在匹配代價計算時引入梯度信息,消除了部分光照影下。總體來看,本文算法在精度方面具有一定的優(yōu)勢。

圖6 實驗二獲得的部分視差圖

表1 算法誤匹配率
在實時性方面,在實驗二中記錄了全部15對立體圖像對進行GPU加速后的立體匹配用時。根據每對圖像的尺寸和計算時間,計算得到本文提出算法的速度大約為302 MDE/S(millions of disparities estimated/second)。以302 MDE/S的處理速度在監(jiān)控圖像大小為400×600像素、視差深度為60的系統中,每秒可處理的幀數為20.9幀;在圖像像素大小為720P(1080×720)、視差深度范圍為80的系統中,每秒可處理的幀數約為4.9幀。由于監(jiān)控系統可以隔幀或者定時采樣進行立體匹配,因此提出的算法基本可以滿足一般監(jiān)控實時性的要求。
綜上所述,無論在精度還是在速度方面,本文算法都獲得良好的效果。特別是在參考圖像和匹配圖像曝光不一致或者噪聲較多的情況下,獲得的視差圖與其它幾種算法相比在精度方面具有明顯的優(yōu)勢。
立體匹配算法是實現智能視頻監(jiān)控系統深度感知的核心算法。本文針對智能監(jiān)控視頻系統中雙目攝像頭獲取的圖像對存在曝光不一致和噪聲大的特點,提出一種改進的AD-Census算法。在計算匹配代價階段,對Census變換引入噪聲容限以減小噪聲干擾,同時對AD算法引入梯度以減小曝光不一致帶來的影響;代價聚合階段,采用兩級自適應引導濾波算法提高了算法的實時性;視差提精階段,提出一種多步提精方法進行視差優(yōu)化,有效對遮擋區(qū)域和誤匹配區(qū)域進行了深度值估計;實驗結果表明,本文算法與傳統AD-Census算法相比在精度和速度方面都表現了一定優(yōu)勢,能夠初步滿足智能視頻監(jiān)控系統精度和實時性的要求。