周武威,劉子濠,王 瓊,譚書倫,郭龍源,胡建斌
(1.湖南理工學院 a.信息科學與工程學院; b.機械工程學院; c.機器視覺與人工智能研究中心,湖南 岳陽 414006;2.廣西中煙工業有限責任公司,廣西 桂林 530000)
立體匹配在無人駕駛[1]、三維重建[2]、虛擬現實[3]等領域有著廣泛的應用。研究者提出了很多有效的立體匹配算法。基于擴展移動的算法是目前的研究方向之一。Boykov等[4]首先提出了擴展移動來求解立體匹配問題,擴展移動能同時改變大部分像素的標簽,很好地克服了陷入局部最小值的問題。針對擴展移動建模過程繁瑣的問題,Kolmogorov等[5]給出了一種通用的建模方法,簡化了擴展移動的建模過程。Li等[6]提出了一種多層超像素結構,利用該結構可以在無窮大的三維標簽集中進行高效地擴展移動。Taniai等[7]進一步提出了局部擴展移動的方法,該方法通過局部化和空間傳播2種方式,并有效結合了傾斜塊匹配項[8]和曲率平滑項[9],具有局部最優、適合并行化和基于導引濾波加速代價計算等優點。但以上算法在弱紋理區域的匹配效果欠佳。
Li等[10]提出了一種基于期望最大化[11]的方法,通過估計擴展移動立體匹配算法的參數,改善了在弱紋理區域的匹配效果。受文獻[10]的啟發,本文提出了一種基于期望最大化的局部擴展移動立體匹配算法,算法的創新點為:提出了傾斜塊匹配項和曲率平滑項的概率模型;基于期望最大化算法自適應地設置局部擴展移動算法的平滑權重。
首先介紹局部擴展移動立體匹配的費用函數,然后建立費用函數中傾斜塊匹配項和曲率平滑項的概率模型,并且基于期望最大化算法分別估計2個概率模型的參數。
對于左圖像I={i}和右圖像J={j}(本文將左圖像作為參考圖像),根據局部擴展移動立體匹配[7]的費用函數式(1),可以得到參考圖像中像素的視差平面fi=(ai,bi,ci)。
(1)

di=aix+biy+ci。
(2)
傾斜塊匹配項φi(fi)的定義為:
(3)
ρ(s|fi)=min(CCNN(s,s′),τCNN)。
(4)
函數CCNN(s,s′)[12]利用卷積神經網絡計算分別以s=(xs,ys)和s′=(xs,ys)-(aixs+biys+ci,0)為中心點的2個圖像塊之間的相似性,τCNN是常數,Wi是以i為中心的窗口,權重ωis實現了基于導引濾波[13]的自適應支持窗口[14],權重ωis的定義見文獻[7]。
曲率平滑項ψij(fi,fj)的定義為:
ψij(fi,fj)=max(wij,
(5)
(6)
di(fj)=ajxi+bjyi+cj。
(7)
1.2.1 建立概率模型
首先令:
(8)


(9)
式中:μ是指數分布的參數;R是均勻分布的參數。定義混合概率:
P(γi=1)=α,P(γi=0)=α′=1-α。
(10)
式中:α是在左圖和右圖中均可見的像素的比例。對γi求和得到如下邊緣概率:
(11)
1.2.2 基于期望最大化算法估計模型參數
給定參考圖像中像素的視差平面{fi},根據期望最大化算法,首先計算:
(12)
然后計算γi的條件概率:
(13)
接著計算對數概率的期望:


(14)
(15)
(16)
通過最大化式(14)可以得到α和μ的估計值。分別令式(14)對α和對μ的偏導為零,得式(15)和(16),式(15)中的|I|為參考圖像的像素個數。
1.3.1 建立概率模型
為參考圖像中的每個相鄰像素對g設置一個隱隨機變量θg,變量的值為2時表示相鄰像素對g是共面的,變量的值為1時表示像素對g是連續的,變量的值為0時表示g是不連續的。
為了簡化表達,令ψg(fg)=ψij(fi,fj)。曲率平滑項ψg(fg)的定義如下:
P(ψg(fg))=
(17)
式中:ν是指數分布的參數;L是均勻分布的參數;函數δ(ψg(fg))服從狄拉克分布,
(18)

(19)
定義如下混合概率:
P(θg=2)=β;P(θg=1)=β′;
P(θg=0)=β″=1-β-β′。
(20)
式中:β是共面像素對的比例;β′是連續像素對的比例;β″是不連續像素對的比例。
關于θg求和得如下邊緣概率:
P(ψg(fg))=
(21)
1.3.2 基于期望最大化算法估計模型參數
給定參考圖像中像素的視差平面{fi},根據期望最大化算法,首先計算:
(22)
式中:g′為連續或不連續的相鄰像素對。然后計算θg′的條件概率:
pg′?P(θg′=1|ψg′(fg′),β′,ν)=
(23)
接著計算對數概率的期望:
Eg′[logP(ψg′(fg′),θg′|β′,ν)]=
(1-pg′)logP(ψg′(fg′),θg′=0|β′,ν))。
(24)
通過最大化這個期望可以得到β′和ν的估計值,分別令式(24)對β′和對ν的偏導為零,得:
(25)
(26)
式中:G′為全體g′組成的集合;|G′|為g′的個數。


(27)

圖1 本文算法流程
本文基于計算機視覺開源庫OpenCV和局部擴展移動立體匹配算法的開源代碼實現所提算法,在Middlebury數據集[15]上進行實驗。Middlebury數據集是一個室內場景數據集,它的大部分算法采用原始圖像一半分辨率的圖像進行計算,本文也采用半分辨率圖像。實驗用計算機的CPU為Ryzen7 2700主頻3.2 GHz,內存為16 GB。

Middlbury數據集有多種評價標準,比如bad 2.0 nonocc標準和bad 4.0 nonocc標準。bad 2.0 nonocc標準下的誤匹配率,其含義是最終視差圖的非遮擋區域中,與真實視差的絕對差值大于2.0的像素的百分比。類似地,bad 4.0 nonocc標準下的誤匹配率,其含義是最終視差圖的非遮擋區域中,與真實視差的絕對差值大于4.0的像素的百分比。
本文算法的結果上傳至Middlbury在線評測網站后,部分圖像對在bad 2.0 nonocc標準下的誤匹配率和在bad 4.0 nonocc標準下的誤匹配率分別見表1和表2,本文算法的運行時間見表3。
如表1所示,相比于局部擴展移動立體匹配算法,本文算法在bad 2.0 nonocc標準下的誤匹配率減少了1%左右。如表2所示,對于圖像對Piano,本文算法在bad 4.0 nonocc標準下的誤匹配率減少了2.74%,對于圖像對PianoL和Playrm,本文算法在bad 4.0 nonocc標準下的誤匹配率減少了1%左右,對于圖像對Shelves和Vintge,本文算法在bad 4.0 nonocc標準下的誤匹配率僅減少了約0.03%,幾乎沒有變化。

表1 bad 2.0 nonocc標準下的誤匹配率 %

表2 bad 4.0 nonocc標準下的誤匹配率 %
如表3所示,本文算法的運行時間與局部擴展移動立體匹配算法的運行時間相當,為后者的1.05倍左右。

表3 運行時間 s
對于Piano圖像對和Playrm圖像對,本文的實驗結果如圖2所示。
本文算法誤匹配率減少的區域主要是弱紋理區域,比如圖2紅框中標明的墻壁、百葉窗等弱紋理區域。

左圖 局部擴展移動 本文算法 真實視差
綜上,相比于局部擴展移動立體匹配算法,本文算法在弱紋理區域的效果更好,而運行時間大體相當。
