本發明涉及計算機視覺與圖像處理領域,特別涉及一種立體匹配方法及系統。
背景技術:
立體匹配是計算機視覺領域的重要組成部分,也是許多3d應用的核心部分。目前,立體匹配方法主要分為局部匹配方法、全局匹配方法以及半全局匹配方法等三類。其中,局部匹配方法復雜度低,運算量小,但匹配效果較差;全局的匹配方法可以獲得非常好的匹配效果,但復雜度太高,不能做到實時處理;而半全局的匹配方法其匹配效果介于局部算法和全局算法之間,但其運算量仍然很大,難以應用到實時性要求較高的地方。因此,綜合考慮匹配效果和實時性,許多應用選擇了折中的算法。
近幾年,一種基于非局部的立體匹配算法被提出來。該方法在代價聚集的過程采用最小生成樹的方式進行濾波,每一個像素都利用了圖像中其他所有像素進行代價的聚集,但其運算量接近局部的方法,因此受到廣泛的關注。該方法在圖像紋理比較豐富的區域能夠獲得比較好的效果,但是,該方法計算復雜、耗時長、耗內存,且在紋理較弱的區域以及室外實際場景中卻難以取得理想的效果。因此,如何提升該立體匹配算法的匹配效果,是本領域技術人員需要解決的技術問題。
技術實現要素:
本發明的目的是提供一種立體匹配方法及系統,能夠有效地解決弱紋理區域誤匹配的問題,并在室外場景中也能取得較好的匹配效果,同時,計算量較小,實時性好。
為解決上述技術問題,本發明提供一種立體匹配方法,所述方法包括:
步驟s10、獲取參考圖像以及目標圖像,并確定聚合區域的視差區域;
步驟s11、將所述參考圖像以及所述目標圖像均等分為n*n個區域,得到參考分塊圖像以及目標分塊圖像;
步驟s12、根據所述參考分塊圖像以及所述目標分塊圖像,利用分塊變換算法,將所述參考圖像變換為聚合參考圖像,所述目標圖像變換為聚合目標圖像;
步驟s13、分別計算所述聚合參考圖像以及所述聚合目標圖像的census特征,并進行立體匹配,計算得到所述聚合參考圖像的census特征與所述聚合目標圖像的census特征的匹配代價值;
步驟s14、分別計算各所述參考分塊圖像與對應的相同分塊位置的所述目標分塊圖像的區域代價聚合;
步驟s15、比較所述匹配代價值與各所述區域代價聚合,若存在所述匹配代價值大于區域代價聚合,則重新分割區域代價聚合小于所述匹配代價值的區域代價聚合對應的參考分塊圖像以及目標分塊圖像并計算分割后的區域代價聚合,直到所述匹配代價值均小于各區域代價聚合;
步驟s16、計算所述匹配代價值均小于各區域代價聚合時各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合,并利用wta方法得到第一視差圖像。
可選的,步驟s12包括:
制作第一空圖像和第二空圖像,其中,所述第一空圖像中每個像素點與所述參考圖像的像素點一一對應,所述第二空圖像中每個像素點與所述目標圖像的像素點一一對應;
計算每一個所述參考分塊圖像的像素值之和,并賦值給所述第一空圖像中對應的像素點中,得到聚合參考圖像;
計算每一個所述目標分塊圖像的像素值之和,并賦值給所述第二空圖像中對應的像素點中,得到聚合目標圖像。
可選的,重新分割區域代價聚合小于所述匹配代價值的區域代價聚合對應的參考分塊圖像以及目標分塊圖像,包括:
分別判斷代價聚合小于所述匹配代價值的區域代價聚合對應的各參考分塊圖像以及各目標分塊圖像的像素平均值和中間像素值的大小;
當參考分塊圖像或目標分塊圖像的像素平均值小于中間像素值,則按照估計視差進行區域擴大,當參考分塊圖像或目標分塊圖像的像素平均值大于中間像素值,則按照估計視差進行區域縮小。
可選的,計算所述匹配代價值均小于各區域代價聚合時各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合,包括:
確定像素的視差區域[dmin,dmax];
以估計視差d為基準,對所述參考圖像的每一個像素點p(x,y),在所述目標圖像上確定對應的像素點p(x-d,y);其中,d∈[dmin,dmax];
計算像素點p(x,y)與像素點p(x-d,y)之間對應的census特征的漢明距離,得到像素的代價聚合cd(p);
計算各參考分塊圖像中相鄰節點的邊權重,并根據所述邊權重得到四連通的無向圖;
利用boruvka算法對所述無向圖進行處理,得到最小生成樹;
將所述最小生成樹轉換為具有根節點和葉節點的樹形結構,并對所述樹形結構從葉節點到根節點進行濾波得到向上代價聚集;
根據所述向上代價聚集,對所述樹形結構從根節點到葉節點進行濾波得到各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合。
可選的,本方案還包括:
將所述參考圖像作為新的目標圖像,將所述目標圖像作為新的參考圖像,并根據所述新的目標圖像以及所述新的參考圖像,執行所述步驟s11至所述步驟s16得到第二視差圖像;
利用所述第一視差圖像和所述第二視差圖像進行視差求精,得到最終視差圖像。
可選的,利用所述第一視差圖像和所述第二視差圖像進行視差求精,得到最終視差圖像,包括:
對所述第一視差圖像和所述第二視差圖像進行左右一致性檢測確定視差穩定點;
利用公式
根據所述新的代價集合
本發明還提供一種立體匹配系統,包括:
獲取模塊,用于獲取參考圖像以及目標圖像,并確定聚合區域的視差區域;
劃分模塊,用于將所述參考圖像以及所述目標圖像均等分為n*n個區域,得到參考分塊圖像以及目標分塊圖像;
聚合模塊,用于根據所述參考分塊圖像以及所述目標分塊圖像,利用分塊變換算法,將所述參考圖像變換為聚合參考圖像,所述目標圖像變換為聚合目標圖像;
匹配代價計算模塊,用于分別計算所述聚合參考圖像以及所述聚合目標圖像的census特征,并進行立體匹配,計算得到所述聚合參考圖像的census特征與所述聚合目標圖像的census特征的匹配代價值;
區域代價聚合模塊,用于分別計算各所述參考分塊圖像與對應的相同分塊位置的所述目標分塊圖像的區域代價聚合;
匹配模塊,用于比較所述匹配代價值與各所述區域代價聚合,若存在所述匹配代價值大于區域代價聚合,則重新分割區域代價聚合小于所述匹配代價值的區域代價聚合對應的參考分塊圖像以及目標分塊圖像并計算分割后的區域代價聚合,直到所述匹配代價值均小于各區域代價聚合;
視差圖像獲取模塊,用于計算所述匹配代價值均小于各區域代價聚合時各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合,并利用wta方法得到第一視差圖像。
可選的,所述聚合模塊,包括:
空圖像制作單元,用于制作第一空圖像和第二空圖像,其中,所述第一空圖像中每個像素點與所述參考圖像的像素點一一對應,所述第二空圖像中每個像素點與所述目標圖像的像素點一一對應;
聚合參考圖像單元,用于計算每一個所述參考分塊圖像的像素值之和,并賦值給所述第一空圖像中對應的像素點中,得到聚合參考圖像;
聚合目標圖像單元,用于計算每一個所述目標分塊圖像的像素值之和,并賦值給所述第二空圖像中對應的像素點中,得到聚合目標圖像。
可選的,所述匹配模塊,包括:
判斷單元,用于分別判斷代價聚合小于所述匹配代價值的區域代價聚合對應的各參考分塊圖像以及各目標分塊圖像的像素平均值和中間像素值的大小;
重新劃分單元,用于當參考分塊圖像或目標分塊圖像的像素平均值小于中間像素值,則按照估計視差進行區域擴大,當參考分塊圖像或目標分塊圖像的像素平均值大于中間像素值,則按照估計視差進行區域縮小。
可選的,本方案還包括:
視差求精模塊,用于將所述參考圖像作為新的目標圖像,將所述目標圖像作為新的參考圖像,并根據所述新的目標圖像以及所述新的參考圖像計算得到第二視差圖像;利用所述第一視差圖像和所述第二視差圖像進行視差求精,得到最終視差圖像。
可見,該方法利用聚合圖像進行匹配,加快匹配速度;在基于聚合圖像的匹配基礎之上對匹配塊的像素進行精準匹配,匹配精度高,計算量小,同時,解決了弱紋理區域誤匹配的問題;本發明還提供一種立體匹配系統,具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發明實施例所提供的立體匹配方法的流程圖;
圖2為本發明實施例所提供的立體匹配系統的結構框圖。
具體實施方式
本發明的核心是提供一種立體匹配方法及系統,能夠有效地解決弱紋理區域誤匹配的問題,并在室外場景中也能取得較好的匹配效果,同時,計算量較小,實時性好。
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參考圖1,圖1為本發明實施例所提供的立體匹配方法的流程圖;該方法可以包括:該方法可以包括:
步驟s10、獲取參考圖像以及目標圖像,并確定聚合區域的視差區域;
具體的,這里的參考圖像和目標圖像為經過畸變校正后的圖像。稠密的立體匹配算法主要關注匹配問題,因此在匹配之前需要將兩幅圖像中的像素校正到同一水平線上,即參考圖像和目標圖像為經過畸變校正后的圖像,從而可以保證匹配準確性和可靠性。
這里可以將左圖像作為參考圖像對應的右圖像作為目標圖像;也可以是將右圖像作為參考圖像對應的左圖像作為目標圖像。即本實施例并不對參考圖像以及目標圖像具體選擇方式進行限定。通常情況下以左圖像作為參考圖像對應的右圖像作為目標圖像。
確定聚合區域的視差區域可以用
步驟s11、將參考圖像以及目標圖像均等分為n*n個區域,得到參考分塊圖像以及目標分塊圖像;
步驟s12、根據參考分塊圖像以及目標分塊圖像,利用分塊變換算法,將參考圖像變換為聚合參考圖像,目標圖像變換為聚合目標圖像;
具體的,該步驟即將參考圖像基于分塊變換成聚合參考圖像,將目標圖像基于分塊變換成聚合目標圖像。具體過程可以如下:
制作第一空圖像和第二空圖像,其中,第一空圖像中每個像素點與參考圖像的像素點一一對應,第二空圖像中每個像素點與目標圖像的像素點一一對應;
計算每一個參考分塊圖像的像素值之和,并賦值給第一空圖像中對應的像素點中,得到聚合參考圖像;
計算每一個目標分塊圖像的像素值之和,并賦值給第二空圖像中對應的像素點中,得到聚合目標圖像。
具體的,制作兩張空圖像:第一空圖像和第二空圖像,第一空圖像和第二空圖像的尺寸與參考圖像和目標圖像一致,例如為n*n,本實施例并不對圖像的具體尺寸進行限定。第一空圖像的每個像素點與參考圖像中的像素點成一一對應關系,第二空圖像的每個像素點與目標圖像中的像素點成一一對應關系。計算參考圖像的每一個分塊s(即每一個參考分塊圖像)的像素值之和:
通過上述獲得聚合參考圖像以及聚合目標圖像的方式,即利用像素之和作為圖像聚合指標,簡單方便,計算量小。可以提高立體匹配的速度。
步驟s13、分別計算聚合參考圖像以及聚合目標圖像的census特征,并進行立體匹配,計算得到聚合參考圖像的census特征與聚合目標圖像的census特征的匹配代價值;
其中,本實施例并不限定匹配代價值的獲取方式。由于加權census特征比一般的顏色梯度特征更有效,因此本實施例可以采用census特征計算聚合圖像(包括聚合參考圖像以及聚合目標圖像)的特征。
具體的,該步驟具體可以是計算聚合參考圖像和聚合目標圖像的census特征,同時對聚合參考圖像census特征和聚合目標圖像census特征進行立體匹配,計算聚合參考圖像census特征和聚合目標圖像census特征的匹配代價cc=|i(s)-i(c)|。
步驟s14、分別計算各參考分塊圖像與對應的相同分塊位置的目標分塊圖像的區域代價聚合η;
步驟s15、比較匹配代價值與各區域代價聚合,若存在匹配代價值大于區域代價聚合,則重新分割區域代價聚合小于匹配代價值的區域代價聚合對應的參考分塊圖像以及目標分塊圖像并計算分割后的區域代價聚合,直到匹配代價值均小于各區域代價聚合;
具體的,若存在匹配代價值cc大于區域代價聚合η,則重新分割參考圖像和目標圖像中對應的區域,否則,則認為該區域的聚合代價匹配完成(即結束該參考分塊圖像和對應的目標分塊圖像之間的匹配)。即每一個參考分塊圖像與對應的相同分塊位置的目標分塊圖像都要進行對應的比較,若比較結果為匹配代價值cc大于該參考分塊圖像和目標分塊圖像對應的區域代價聚合η時,將該參考分塊圖像和目標分塊圖像重新分割,至到該參考分塊圖像和目標分塊圖像對應的區域代價聚合η大于匹配代價值cc。
本實施例并不對具體的重新分割規則進行限定。具體的,重新分割規則可以如下:
當需要重新分割的參考分塊圖像以及對應的目標分塊圖像的像素平均值小于中間像素值,則按照估計視差進行區域擴大,當參考分塊圖像或目標分塊圖像的像素平均值大于中間像素值,則按照估計視差進行區域縮小。即需要重新分割的參考分塊圖像以及對應的目標分塊圖像的像素平均值小于中間像素值,則按照估計視差
步驟s16、計算匹配代價值均小于各區域代價聚合時各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合,并利用wta方法得到第一視差圖像。
具體的,本實施例并不限定具體的每個像素的代價聚合的具體方式。具體可以如下:
確定像素的視差區域[dmin,dmax];
以估計視差d為基準,對參考圖像的每一個像素點p(x,y),在目標圖像上確定對應的像素點p(x-d,y);其中,d∈[dmin,dmax];
具體的,對于參考圖像中的分塊s(其中分塊的意思即第s個參考分塊圖像)在目標圖像中的匹配分塊c之間進行估計稠密匹配,即估計兩個分塊中的像素點的一一匹配的對應關系。具體為:以估計視差取值d為基準,d∈[dmin,dmax],對參考圖像的每一個像素點p(x,y),在目標圖像上找到對應的像素點p(x-d,y)。
計算像素點p(x,y)與像素點p(x-d,y)之間對應的census特征的漢明距離,得到像素的代價聚合cd(p);
計算各參考分塊圖像中相鄰節點的邊權重,并根據邊權重得到四連通的無向圖;
其中,本實施例在生成最小生成樹時,圖像像素的排列方式可以看作是8連通或者4連通的鄰接圖,本實施例中可以任意進行選取,并不對此進行限定。進一步為了減小運算量,優選的可以采用4連通的連接方式。
具體的,將圖像看作四連通的無向圖,圖中的節點為各個像素點,相鄰節點r和s之間邊的權重為像素間各通道顏色值的最大差異,計算公式如下:
利用boruvka算法對無向圖進行處理,得到最小生成樹;
具體的,將得到的無向圖利用boruvka算法(最小生成樹算法)生成最小生成樹;其中,樹中任意兩個節點間的距離dis(p,q)為連接兩個節點間路勁權重之和,兩個節點的相似度s(p,q)為
將最小生成樹轉換為具有根節點和葉節點的樹形結構,并對樹形結構從葉節點到根節點進行濾波得到向上代價聚集;
根據向上代價聚集,對樹形結構從根節點到葉節點進行濾波得到各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合。
其中,為了保證濾波效果可以進行兩次濾波,具體過程可以是:將最小生成樹轉換為具有根節點和葉節點的樹形結構,并對樹形結構從葉節點到根節點進行濾波得到向上代價聚集;根據向上代價聚集,對樹形結構從根節點到葉節點進行濾波得到參考圖像的像素代價聚集。
具體的,最小生成樹轉換為具有父節點(即根節點)和子節點(即葉節點)的樹形結構。對樹形結構進行兩次濾波,第一次從葉節點到根節點濾波,得到向上代價聚集
其中,p(vc)表示節點vc的父節點,cd(v)表示像素點v的代價聚集,s(v,vc)表示像素點v和vc之間的相似度權重,
本實施例中兩次濾波保證了每一個像素都能以全圖的像素作為支撐區域,并且聚集代價只需要計算一次,顯著降低了算法的運算量。
具體的,通過上述的計算每個像素的代價聚合的方法,在基于聚合圖像的匹配基礎之上對匹配塊的像素進行精準匹配,匹配精度高,計算量小,同時,解決了弱紋理區域誤匹配的問題。
進一步,利用wta方法得到第一視差圖像。具體的,根據wta(winnertakeall)原則,對每一個像素點選取最終代價最小的視差值作為最終的視差值,得到第一視差圖像。進一步還可以對其進行快速中值濾波得到濾波后的第一視差圖像,這里的第一視差圖像可以用d(p)表示。
基于上述技術方案,本發明實施例提的立體匹配方法,該方法利用聚合圖像進行匹配,加快匹配速度;在基于聚合圖像的匹配基礎之上對匹配塊的像素進行精準匹配,匹配精度高,計算量小,同時,解決了弱紋理區域誤匹配的問題。
基于上述技術方案,該方法還可以包括:
將參考圖像作為新的目標圖像,將目標圖像作為新的參考圖像,并根據新的目標圖像以及新的參考圖像,執行步驟s11至步驟s16得到第二視差圖像;
利用第一視差圖像和第二視差圖像進行視差求精,得到最終視差圖像。
具體的,視差求精的過程。即本實施例還可以包括將參考圖像作為新的目標圖像,將目標圖像作為新的參考圖像,并根據新的目標圖像以及新的參考圖像,執行步驟s11至步驟s16得到第二視差圖像;利用第一視差圖像和第二視差圖像進行視差求精,得到最終視差圖像。
其中,交換參考圖像和目標圖像,即將上述實施例中參考圖像和目標圖像進行交換。將參考圖像作為新的目標圖像,將目標圖像作為新的參考圖像,并根據新的目標圖像以及新的參考圖像。例如當上述實施例中左圖像作為參考圖像對應的右圖像作為目標圖像時,交換后的結果即左圖像作為目標圖像對應的右圖像作為參考圖像。這里的第二視差圖像可以用dr(p)表示。
可選的,利用第一視差圖像和第二視差圖像進行視差求精,得到最終視差圖像可以包括:
對第一視差圖像和第二視差圖像進行左右一致性檢測確定視差穩定點;
利用公式
根據新的代價集合
基于上述技術方案,本發明實施例提的立體匹配方法,該方法利用聚合圖像進行匹配,加快匹配速度;在基于聚合圖像的匹配基礎之上對匹配塊的像素進行精準匹配,匹配精度高,計算量小,同時,解決了弱紋理區域誤匹配的問題,并在室外場景中也能取得較好的匹配效果。同時運算量也沒有大幅增加,可以獲得較好的匹配效果。
下面對本發明實施例提供的立體匹配系統進行介紹,下文描述的立體匹配系統與上文描述的立體匹配方法可相互對應參照。
請參考圖2,圖2為本發明實施例所提供的立體匹配系統的結構框圖;該系統可以包括:
獲取模塊100,用于獲取參考圖像以及目標圖像,并確定聚合區域的視差區域;
劃分模塊200,用于將參考圖像以及目標圖像均等分為n*n個區域,得到參考分塊圖像以及目標分塊圖像;
聚合模塊300,用于根據參考分塊圖像以及目標分塊圖像,利用分塊變換算法,將參考圖像變換為聚合參考圖像,目標圖像變換為聚合目標圖像;
匹配代價計算模塊400,用于分別計算聚合參考圖像以及聚合目標圖像的census特征,并進行立體匹配,計算得到聚合參考圖像的census特征與聚合目標圖像的census特征的匹配代價值;
區域代價聚合模塊500,用于分別計算各參考分塊圖像與對應的相同分塊位置的目標分塊圖像的區域代價聚合;
匹配模塊600,用于比較匹配代價值與各區域代價聚合,若存在匹配代價值大于區域代價聚合,則重新分割區域代價聚合小于匹配代價值的區域代價聚合對應的參考分塊圖像以及目標分塊圖像并計算分割后的區域代價聚合,直到匹配代價值均小于各區域代價聚合;
視差圖像獲取模塊700,用于計算匹配代價值均小于各區域代價聚合時各參考分塊圖像與對應目標分塊圖像中每個像素的代價聚合,并利用wta方法得到第一視差圖像。
基于上述實施例,聚合模塊300可以包括:
空圖像制作單元,用于制作第一空圖像和第二空圖像,其中,第一空圖像中每個像素點與參考圖像的像素點一一對應,第二空圖像中每個像素點與目標圖像的像素點一一對應;
聚合參考圖像單元,用于計算每一個參考分塊圖像的像素值之和,并賦值給第一空圖像中對應的像素點中,得到聚合參考圖像;
聚合目標圖像單元,用于計算每一個目標分塊圖像的像素值之和,并賦值給第二空圖像中對應的像素點中,得到聚合目標圖像。
基于上述實施例,匹配模塊600可以包括:
判斷單元,用于分別判斷代價聚合小于匹配代價值的區域代價聚合對應的各參考分塊圖像以及各目標分塊圖像的像素平均值和中間像素值的大小;
重新劃分單元,用于當參考分塊圖像或目標分塊圖像的像素平均值小于中間像素值,則按照估計視差進行區域擴大,當參考分塊圖像或目標分塊圖像的像素平均值大于中間像素值,則按照估計視差進行區域縮小。
基于上述任意實施例,該系統還可以包括:
視差求精模塊,用于將參考圖像作為新的目標圖像,將目標圖像作為新的參考圖像,并根據新的目標圖像以及新的參考圖像計算得到第二視差圖像;利用第一視差圖像和第二視差圖像進行視差求精,得到最終視差圖像。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發明所提供的一種立體匹配方法及系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護范圍內。