本發(fā)明計算機視覺領域,特指一種基于色彩信息和圖割理論的立體匹配算法。
背景技術:
立體視覺是計算機視覺領域的一個至關重要的分支,廣泛應用于三維非接觸測量、建筑、機器人視覺、航空測繪和軍事應用等領域,以致成為了當今國際上熱門的課題之一。
立體視覺技術主要包括圖像采集、圖像預處理、相機標定、立體校正、立體匹配和三維重建幾個步驟。其中,立體匹配是立體視覺中核心部分,直接影響后續(xù)深度信息的估算和三維重建的效果。立體匹配旨在求得圖像對應像素的視差值,根據(jù)視差圖的疏密行,立體匹配算法可分為稀疏視差的匹配算法和稠密視差的匹配算法。稀疏的視差結果不利用后續(xù)的三維重建,因而在很多應用鄰域都要求匹配后能得到稠密的視差結果。稠密視差匹配算法主要包括基于區(qū)域立體匹配算法以及基于全局的立體匹配算法。例如,基于SAD區(qū)域立體匹配算法能滿足實時性的要求,但是該算法對噪聲比較敏感,同時大的匹配窗口會造成圖像細節(jié)信息的丟失,而且獲取的視差結果在弱紋理區(qū)域、視差不連續(xù)等特殊區(qū)域匹配精度不高;基于全局的立體匹配算法雖然整體匹配精度較高,但是算法實時性較低。因此,同時滿足匹配精度和算法實時性要求成為立體匹配算法的最大的難點。
針對上述問題,本發(fā)明提出了一種基于色彩信息和圖割理論的立體匹配方法。本方法首先在RGB顏色空間模型下,結合模板權值和SAD算法進行匹配,利用色差約束條件判定SAD的最優(yōu)匹配點,此種情況下的SAD初始匹配的精確度有所提高,抑制了噪聲的同時也保持了景物的細節(jié)信息;利用左右一致性校驗準則和中值濾波來進行遮擋過濾,提高了初始匹配遮擋區(qū)域的匹配精度;同時針對初始匹配弱紋理區(qū)域、視差不連續(xù)的匹配精度不高的問題,結合圖割算法構造能量網(wǎng)格圖和能量函數(shù)進行全局優(yōu)化求得高精度的視差結果。本發(fā)明方法改善了局部立體匹配算法精度不高和全局立體匹配算法實時性較弱的情況,提高了不連續(xù)區(qū)域等特殊區(qū)域的匹配精度,同時縮短了算法匹配的時間。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題在于:為了提高立體匹配視差圖的精度,并使其滿足實時性需求,提出一種基于色彩空間和圖割理論的立體匹配算法。
本發(fā)明技術方案具體包括如下步驟:
1、一種基于色彩信息和圖割理論的立體匹配改進算法,包括如下步驟:
步驟S1,在RGB色彩模型下,結合模板權值、色差約束條件以及SAD的局部匹配算法求得初始視差結果;
步驟S2,利用左右一致性校驗準則和中值濾波來進行遮擋過濾;
步驟S3,基于圖割理論的立體匹配改進算法進行全局優(yōu)化;
步驟S4,視差結果的后處理,利用雙邊濾波對視差進行濾波得到最終的視差結果。
作為本發(fā)明技術方案的進一步改進,所述步驟S1具體包括以下步驟:
S1.1在RGB色彩模型下,結合模板權值和SAD算法進行匹配;
模板權值矩陣W(x,y)滿足下式:
lnH(x,y)=[max(i,j)-max(|(x-i-1)|,|y-j-1|)]×lnw,
上式中i,j是像素鄰域窗口的半寬度,w是權值;
則結合模板權值和SAD算法的匹配代價為:
式中fQL(x,y)是左圖像的通道值,fQR(x,y)是右圖像的通道值,d表示像素點(x,y)的視差值,h和k分別表示在x和y方向上移動的位移;
當CRGB(x,y,d)最小時,左右圖像對對應的像素為最佳匹配,此時的視差記為:
dp=argminCRGB(x,y,d)(d∈D);
S1.2利用色差約束條件判定匹配過程中的最優(yōu)匹配點,所述色差約束條件為像素點紅綠通道、像素點綠藍通道和像素點紅藍通道的水平方向的色差梯度以及色差梯度的方向角。
作為本發(fā)明技術方案的進一步改進,所述步驟S2具體包括以下步驟:
S2.1遮擋檢測,其包括先分別左右圖像參考圖像,求得左右兩幅視差圖,若左圖像中的一個像素點p,其視差為d1,點p在右圖像中對應的視差為d2,當|d1-d2|>T時,則點p被標記為遮擋點,其中T為常數(shù)闕值;
S2.2遮擋過濾,對遮擋點重新賦值,即分別從水平向左和向右的方向找到第一個非遮擋點的視差值,記為pl、pr,則點p處的視差值被重新賦值成d(p):d(p)=min(d(pl,pr))。
作為本發(fā)明技術方案的進一步改進,所述步驟S3具體包括以下步驟:
S3.1構造α擴展下的能量網(wǎng)格圖;
S3.2對α擴展移動算法進行改進,將源點按照視差分布中的大概率視差值優(yōu)先設定,并設定一個閾值T,當時,算法整體結束,其中為當前能量函數(shù)值,E(f)為前一次能量函數(shù)值;
S3.3能量函數(shù)最小化,求得α擴展移動過程中最小割。
作為本發(fā)明技術方案的進一步改進,所述步驟S4具體包括以下步驟:假設濾波前圖像I的像素點p(x,y)的灰度值為Ip,濾波后的圖像為BI在該像素點的灰度值為BIp,則雙邊濾波的公式為:
其中,q(u,v)是以像素p為中心像素的領域像素點,領域像素集合記為S,Wp稱為歸一化因子,是空間濾波核函數(shù),是灰度核濾波函數(shù),和的表達式如下示:
式中,σs表示高斯函數(shù)的標準差,sr表示高斯函數(shù)的標準差。
與現(xiàn)有技術相比,本發(fā)明具有以下有益效果:
1、在RGB色彩模型下,結合模板權值和SAD局部算法進行匹配,當出現(xiàn)多個不同的視差結果時,利用色差約束條件判定最優(yōu)匹配點;
2、利用左右一致性校驗進行遮擋過濾,提高了初始匹配遮擋區(qū)域的匹配精度,遮擋過濾之后產(chǎn)生的水平條紋可以利用中值濾波來消除;
3、初始視差結果可作為圖割中能量函數(shù)的限制項,這樣很大程度上減少了能量網(wǎng)格圖中節(jié)點的數(shù)目,有利于算法的實施;
4、改進的α擴展移動算法中,將網(wǎng)格圖中源點的設置按視差大概率優(yōu)先設置以及設定算法結束的閾值,從而縮短的算法運行的時間,進一步滿足的實時性要求。
5、采用快速的雙邊濾波進行視差圖的后處理,提高了后處理的速度。
附圖說明
圖1是本實施例所述整體算法流程圖;
圖2是本實施例所述初始視差匹配算法流程圖;
圖3是本實施例所述Middlebury圖片庫中的Tsukuba、barn和teddy圖片和其對應的標準視差圖;
圖4是本實施例所述SAD局部立體匹配算法的視差結果;
圖5是本實施例所述網(wǎng)格圖;
圖6是本實施例所述原始的圖割算法的立體匹配處理結果;
圖7是本實施例所述本實施案例算法的處理結果;
圖8是本實施例所述本實施案例算法處理相機拍攝圖像的視差結果。
具體實施方式
以Middlebury網(wǎng)站上的圖片庫和相機拍攝的圖片為例,結合附圖對本發(fā)明做進一步詳細說明。
S1.在RGB色彩模型下,結合模板權值、色差約束條件以及SAD的局部匹配算法求得初始視差結果;
S1.1在RGB色彩模型下,結合模板權值和SAD算法進行匹配;
R、G、B是彩色圖像三個通道,fQL(x,y)(其中Q=R、G、B)是左圖像的通道值,fQR(x,y)(其中R、G、B∈Q)是右圖像的通道值。則在RGB色彩模型,任意相對應的像素點在左右圖像對中SAD匹配代價為:
式中,d表示像素點(x,y)的視差值;h和k分別表示在x和y方向上移動的位移。
為了抑制噪聲和視差圖能保持較好的輪廓細節(jié)信息,引入了模板權值對上述步驟的匹配方法進行改進,模板權值矩陣W(x,y)滿足如下公式:
lnH(x,y)=[max(i,j)-max(|(x-i-1)|,|y-j-1|)]×lnw (2)
則結合模板權值和SAD算法的匹配代價為:
式中i,j是像素鄰域窗口的半寬度,w是權值。調整寬口和權值來達到濾波效果和最大保持景物的細節(jié)信息。
當公式(3)最小時,左右圖像對對應的像素為最佳匹配,此時的視差記為:
dp=argminCRGB(x,y,d)(d∈D) (4)
S1.2利用色差約束條件判定匹配過程中的最優(yōu)匹配點。
在匹配窗口移動的過程中,會出現(xiàn)多個步驟S1.1中多個不同的dp時,依據(jù)左右匹配點應該有相同色差梯度的約束條件,可以利用匹配窗口內色差梯度大小和方向來確定最優(yōu)匹配點。則像素點紅綠通道的水平方向的色差梯度如公式(5)所示,色差梯度的方向角如公式(6)所示。
其中,式中,fR(x,y)、fG(x,y)和fB(x,y)分別表示像素點(x,y)的R、G和B三個顏色通道值。綠藍和紅藍的水平色差梯度定義以及方向角的定義也類似公式(5)和(6)。采用歐式距離判定左右圖像對應像素梯度的差異性。
依據(jù)圖像的三色通道信息,引入色差約束條件,使得匹配的效果更好。
S2.利用左右一致性校驗準則和中值濾波來進行遮擋過濾,提高了初始匹配遮擋區(qū)域的匹配精度;
本發(fā)明采用左右一致性校驗主要目的是實現(xiàn)遮擋檢測(LRC),遮擋是指只出現(xiàn)在一個圖像上,而不出現(xiàn)在另外一幅圖像上點。通過左右一致性校驗來提高初始視差的精度主要分為兩步,即遮擋檢測和遮擋過濾。第一步,遮擋檢測過程主要是先分別左右圖像參考圖像,求得左右兩幅視差圖。若左圖像中的一個像素點p,其視差為d1,點p在右圖像中對應的視差為d2,當|d1-d2|>T時,則點p被標記為遮擋點,其中T為常數(shù)闕值。第二步,遮擋過濾就是對遮擋點重新賦值的過程,即分別從水平向左和向右的方向找到第一個非遮擋點的視差值,記為pl、pr,則點p處的視差值被重新賦值成d(p):
d(p)=min(d(pl,pr)) (7)
一致性遮擋過濾的方法有助于提高遮擋區(qū)域的視差精度,但是通常會出現(xiàn)類似于動態(tài)規(guī)劃算法的水平條紋,本發(fā)明中采用中值濾波來消除水平條紋。S1步驟獲得的初始視差結果精度較高,且提高了遮擋區(qū)域的視差精度,高精度的初始視差結果有利用后期的全局優(yōu)化。初始視差結果的弱紋理區(qū)域和不連續(xù)區(qū)域的視差精度有待改善,基于圖割理論的全局優(yōu)化算法可以有效地解決此問題。
S3.基于圖割理論的立體匹配改進算法進行全局優(yōu)化;
基于圖割的立體匹配方法,就是將圖像中像素點看作是圖中的節(jié)點,圖像就映射成了帶權無向圖或是有向圖,采用標號視差,通過建立能量函數(shù)將立體匹配過程轉化成最小化能量函數(shù)過程,巧妙地構造網(wǎng)絡以及結合圖割理論,使得圖的最小割和能量函數(shù)的最小化具有一致性,最終獲得圖像對的視差。本發(fā)明采用的能量函數(shù)為:
E(f)=Edata(f)+Esmooth(f) (8)
其中,Edata(f)和Esmooth(f)可以表示為:
則能量函數(shù)也可以表示為:
其中,Edata(f)為數(shù)據(jù)項,用于度量視差值為fp時兩像素間的匹配程度,度量兩匹配點之間的相似度。p是像素集合P的元素,也就是圖像中像素點。fp就是像素點p對應于視差集合L中的視差值。經(jīng)過雙目立體校正之后,使得左右兩幅圖像只在x方向上有視差也就是視差集合L的內容,即當一幅圖像中的有像素點p,則其對應點在另外一幅圖像上p+fp位置處。Dp(fp)表示視差值為fp的像素點p的匹配代價,可表示為公式(12),其中,I(p)表示像素點p的灰度值,fp是像素點對應視差值,即fp對應于視差集合L中的視差值。
Dp(fp)=I1(p)-I2(p+fp)2 (12)
其中,Esmooth(f)用于判定待匹配像素與其領域像素的一致性程度,描述的是領域像素與中心像素之間的視差平滑程度。{p,q}∈N是圖片中相鄰的兩個像素點。V(p,q)(fp,fq)是相鄰像素之間的平滑模型,本發(fā)明采用Potts模型的平滑函數(shù),這種平滑項也叫邊界保留的平滑函數(shù),較好地避免物體邊緣和多紋理區(qū)域過度平滑的現(xiàn)象,Potts函數(shù)的表達式如下:
V(p,q)(fp,fq)=λ·D (13)
其中Ip表示的像素點p的灰度值,Iq表示的像素點q的灰度值,k=20,當fp=fq時,D=0;當fp≠fq時,D=1。
S3.1α擴展下的能量網(wǎng)格圖的構造;
巧妙地構造網(wǎng)格圖是利用圖割理論求解匹配視差的前提。為了能夠簡便地闡述立體匹配中網(wǎng)格圖構造的情況,本發(fā)明以給出了一個像素點相對較小的二維圖像的網(wǎng)格圖的為例,來說明α擴展下的能量網(wǎng)格圖的構造。圖5記為G=(V,E)。圖的頂點集合α和是源點和匯點,在立體匹配網(wǎng)格圖的構造當中,源點和匯點表示在求解能量時所分配的視差值;頂點P是像素點集合,記P={p/p=p,q,r,s,h,l,m,n,o(}在未添加輔助節(jié)點的情況下),其中,p,q,r,s,h,l,m,n,o分別為像素點。
在構造能量網(wǎng)格圖之前,先要構造公式(11)的能量函數(shù)。由S1和S2求得初始視差值之后,初始視差結果可作為圖割中能量函數(shù)的限制項,這樣很大程度上減少了能量網(wǎng)格圖中節(jié)點的數(shù)目,有利于算法的實施。
根據(jù)能量優(yōu)化過程中,視差標記值擴展移動方式的不同,構造的能量網(wǎng)格圖也會有所不同。每次優(yōu)化過程中僅改變一個像素點的視差標記值的標準移動很容易陷入局部最小值,這樣不利用能量函數(shù)的最小化。而本發(fā)明采用的Boykov的一次α擴展移動思想則是對那些視差標記值不為α的集合同時進行大規(guī)模的優(yōu)化,使圖像中一部分像素點的視差標記值重新標記為α,以此不斷循環(huán)最終求的全局最優(yōu)解。采用α擴展移動思想下的能量網(wǎng)格圖構造如圖5所示。
構造網(wǎng)格圖時,網(wǎng)格圖中的每條邊分配了一定的權值,網(wǎng)格圖中一般包括兩種邊,分別是t-連接邊和n-連接邊。t-連接邊為原始圖像中某像素點和終端相鏈接形成的邊,邊上的權值表示將終端節(jié)點代表的視差值賦給該像素時的懲罰量,此懲罰量等價于能量函數(shù)為公式(7)中的數(shù)據(jù)項。例如,網(wǎng)格圖中的像素點p與源點和匯點相連接的t-連接邊可表示為和n-連接邊為圖像中相鄰像素點相連接形成的邊。邊上的權值表示相鄰像素視差不一致是的懲罰量,此懲罰量等價于能量函數(shù)中平滑項。對于n-連接邊要分成兩種情況,如同圖5所示,當存在兩相鄰的像素點q和r,且它們的視差值相等時,即fq=fr時,則它們可直接通過n-連接邊e{q,r}連接;當存在兩相鄰的像素點p和q,當它們的是差值不相等時,即fp≠fq,則在它們之間增加一個輔助節(jié)點a{p,q},此時兩點p和q與輔助點a{p,q}形成輔助邊能量網(wǎng)格圖圖5中頂點和連接邊變?yōu)椋?/p>
相對應的鏈接邊的權值如表1所示。其中Pα表示視差值為α,即為源點標記視差值。
表1鏈接邊權值表
S3.2改進的α擴展移動算法;
傳統(tǒng)的α擴展移動算法中的源點α是以隨機順序開始的,本發(fā)明將源點α的設置順序改為以視差分布的大概率的視差值優(yōu)先設置。因為相對于小概率的視差標記值α,大概率的視差標記值α。在進行α擴展移動時對能量函數(shù)的變化影響更大些,從而能夠更加快速完成能量函數(shù)最小化。本發(fā)明包含的改進的具體步驟是:1)通過S1中的SSD算法和S2中的左右一致性校驗準則得到初始視差值;2)求得初始視差值的視差分布圖;3)將α按照視差分布中的大概率視差值優(yōu)先設定。
再者,傳統(tǒng)的α擴展移動算法是以(即此時的能量函數(shù)值小于前一次)作為算法繼續(xù)循環(huán)的條件。但當算法執(zhí)行至一定程度時,不僅能量函數(shù)的變化量很小,而且圖像像素的視差標記值的變動也是非常小的。本發(fā)明設定一個閾值T,當時,算法整體結束,以此縮短了算法運行的時間S3.3能量函數(shù)最小化;
在S3.2中的α擴展移動過程中,圖像像素的視差會被不斷重新標記,能量函數(shù)也不斷變化。圖割的立體匹配算法中的能量函數(shù)的最小化等價于求解網(wǎng)絡流中最小割問題。所以要通過能量函數(shù)獲得圖像對的最優(yōu)視差結果,關鍵在于求得α擴展移動過程中最小割。
以圖5為例,其切割為C,視差標記值fC是與切割C有關像素點的視差值。當切割C將像素點p與圖的源點α切割開時,則像素點p的視差值被標記為α;當切割C將像素點p與圖的匯點切割開時,像素點的視差值就保持原來的標記fp。用公式可以表示為:
推廣到像素點個數(shù)較多的情況,能量函數(shù)的最小化和最小割的等價公式為:
S4.視差結果的后處理;
通過S1、S2和S3處理之后,本發(fā)明還采用了一些視差的后處理步驟來提高視差精度。視差的后處理也是立體匹配步驟中的視差求精的體現(xiàn)。本發(fā)明采用的視差后處理主要是:首先利用S2中的左右一致性檢測中的RLC檢測和遮擋過濾對視差結果進行處理,從而改善了遮擋點的視差;再有,雙邊濾波器來進行視差圖像平滑處理。利用雙邊濾波對視差圖進行處理不僅達到了平滑的效果,也保持了圖像的邊緣信息。
假設濾波前圖像I的像素點p(x,y)的灰度值為Ip,濾波后的圖像為BI在該像素點的灰度值為BIp,則雙邊濾波的公式如(19)和(20)示。
其中,q(u,v)是以像素p為中心像素的領域像素點,領域像素集合記為S,Wp稱為歸一化因子,是空間濾波核函數(shù),是灰度核濾波函數(shù),和的表達式如下示:
式中,σs表示高斯函數(shù)的標準差;sr表示高斯函數(shù)的標準差。
圖6為原始的圖割的立體匹配算法處理結果,圖7為本實施案列算法的處理結果。從整體的錯誤視差的像素點百分比(bad-paixel-all,B)、無遮擋區(qū)域的錯誤視差的像素點百分比(bad-pixel-nonocc,)以及不連續(xù)D區(qū)域錯誤視差的像素點百分比(bad-pixel-discount,BD)三個方面進行誤差統(tǒng)計。計算B、以及BD公式分別為:
其中dC(x,y)為算法計算得到的視差值,dT(x,y)為真實的視差值,δd為容許的錯誤視差值的閾值。從視差圖評價指標對比表可以看出:本實施案例的立體匹配的視差圖的精確高于原始的圖割算法,在不連續(xù)等特殊區(qū)域的視差精確度也有所提高,同時算法的運行時間也有一定程度縮短。將本實施案列算法運用到相機拍攝的圖像對中,處理結果如圖8所示。
表2視差圖評價指標對比
本發(fā)明中提出的方法實際上可嵌入FPGA實現(xiàn),運用于監(jiān)控系統(tǒng)相機或攝像機中。
本領域技術人員將清楚本發(fā)明的范圍不限制于以上討論的示例,有可能對其進行若干改變和修改,而不脫離所附權利要求書限定的本發(fā)明的范圍。盡管己經(jīng)在附圖和說明書中詳細圖示和描述了本發(fā)明,但這樣的說明和描述僅是說明或示意性的,而非限制性的。本發(fā)明并不限于所公開的實施例。