一種基于卷積神經網絡的雙目立體匹配方法
【專利摘要】本發(fā)明公開了一種基于卷積神經網絡的雙目立體匹配方法。本發(fā)明首先采用了兩個卷積神經子網絡對待匹配圖像小塊進行特征提取,通過卷積神經網絡的自動學習能力,能夠自動提取出健壯、多樣的特征,避免了傳統(tǒng)立體匹配方法的復雜的特征選擇和人工抽取特征的過程。然后將它們的輸出特征進行級聯(lián)送入到全連接層進行匹配代價計算,獲得了比傳統(tǒng)立體匹配方法更好的匹配代價,結合視差的后處理方法,可有效獲得高精度的視差圖,并具有較好的實時性。
【專利說明】
-種基于卷積神經網絡的雙目立體匹配方法
技術領域
[0001] 本發(fā)明設及雙目立體視覺圖像處理技術領域,尤其設及一種采用卷積神經網絡的 雙目立體匹配方法。
【背景技術】
[0002] 自上世紀80年代初,Marr創(chuàng)立了視覺計算理論框架W來,雙目立體視覺技術一直 是機器視覺領域的一個研究熱點,在航空測繪、醫(yī)學成像、虛擬現(xiàn)實和工業(yè)檢測等領域得到 了廣泛的研究。雙目立體視覺是基于視差原理并利用成像設備從不同位置獲得被測物體的 兩幅圖像,通過計算圖像對應點間的位置偏差,來獲取物體的=維幾何信息的方法。雙目立 體視覺算法主要包括圖像獲取、攝像機標定、圖像校正、立體匹配和=維重建等五個部分。 其中立體匹配是整個算法的核屯、部分,匹配產生的視差圖的優(yōu)劣直接影響到=維重建的效 果。目前,傳統(tǒng)的立體匹配的方法主要分為=大類:基于特征的匹配算法、基于局部的匹配 算法和基于全局的匹配算法?;谔卣鞯钠ヅ渌惴ǖ玫降氖窍∈璧囊暡顖D,要得到致密的 視差圖,必須通過插值得到?;诰植康钠ヅ渌惴ㄟ\算速度快,但在低紋理和深度不連續(xù)區(qū) 域匹配效果差?;谌值钠ヅ渌惴軌虻玫捷^高精度的匹配結果,但計算速度慢。
【發(fā)明內容】
[0003] 為了獲得高精度的致密視差圖和較好的實時性,本發(fā)明提供了一種基于卷積神經 網絡的雙目立體匹配方法。
[0004] 本發(fā)明的目的是通過W下技術方案來實現(xiàn)的:一種基于卷積神經網絡的雙目立體 匹配方法,包括W下步驟:
[0005] (1)圖像預處理。對帶有參考視差圖的立體圖像對的左圖和右圖分別做Z-score標 準化處理。
[0006] (2)構造訓練實例。從預處理后的左圖選取中屯、在p=(x,y)、大小為nXn的一小塊 圖像巧[X n如),從預處理后的右圖選取中屯、在q = (X - d,y)、大小為n X n的一小塊圖像 騎U (g),巧!-'X。(的和巧心,07)構成一個訓練實例:
[0007]
[000引對于左圖
每個知道參考視差值d的位置,抽取一個正確的訓練實例和一個錯誤的 訓練實例。
[0009] 為了獲得一個正確的訓練實例,將右小塊圖像巧的中屯、設置在:
[0010] q=(x-d+〇p〇s,y)
[0011 ]其中 Opos 在[-da1:aset_pos ,dataset_pos]中隨機取值,dataset_pos 為正整數(shù)。 [001^ 為了獲得一個錯誤的訓練實例,將右小塊圖像巧fxn(g)的中屯、設置化 [001;3] q=(x-d+〇neg,y)
[0014] Si=|=i〇neg$:[-dataset_neg_low, -dataset_neg_high] H!c[dataset_neg_low, dataset_neg_high]中隨機取值。dataset_neg_low 和 da1:aset_neg_hi 曲均為正整數(shù)。
[0015] (3)構造用于計算匹配代價的卷積神經網絡結構。首先構造兩個完全一樣的子網 絡,每個子網絡由兩個卷積層和一個全連接層,每層后面跟隨一個ReLU層。然后將兩個子網 絡的輸出級聯(lián)起來,接兩個全連接層,每層后面接一個ReLU層,最后一個全連接層跟隨一個 S i g m O i d轉移函數(shù)。對于每一個輸入代fx。(P),:/茄。(g從網絡的輸出表示為
[0016] (4)訓練網絡。根據步驟(2),每次構造N/2個正確的訓練實例和N/2個錯誤的訓練 實例,將其用于步驟(3)構造的網絡進行有監(jiān)督的反向傳播算法訓練,得到訓練網絡,N為訓 練集個數(shù)。
[0017] (5)求視差圖。從測試集中取一組立體圖像對,進行步驟(1)的預處理。運用步驟 (4)訓練出來的網絡,對于左圖中每一個位置p=(x,y),計算其與右圖在位置q=(x-d,y)的 匹配代價。。dV甘由d以n msp MAYVmsP_MAx表示可能的最大視差值),得到:
[001 引
[0019] 對于左圖中的每一個位置p = (x,y),上式中的匹配代價取最小時的位置d即為所 求視差D(P):
[0020]
[0021] (6)對視差圖進行后處理。具體包括W下子步驟:
[0022] (6.1)亞像素視差。根據步驟(5)求出的匹配代價構造一條二次曲線,取極值點得 到亞像素視差圖Dse(P):
[0023]
[0024] 其中d = D(p),C- = CcNN(p,d-l),C = CcNN(p,d),C+ = CcNN(p,d+l);
[0025] (6.2)對亞像素視差圖化E(P)進行中值濾波和雙線性濾波,得到最終的視差圖 Df inal (P )。
[00%] 進一步地,所述步驟1中,所述Z-Score標準化處理過程具體如下:
[0027]計算圖像X中所有像素值的均值Xaverage和標準差O :
[002引
[0029]
[0030] 其中,WXH為圖像X的大小。
[0031] 知八/值去化-化,得到新圖像X',其像素值為:
[0032]
[0033] 進一步地,所述步驟4中,所述訓練網絡的代價函數(shù)用二值交叉賭損失函數(shù):
[0034]
[0035] 其中,N為訓練集的個數(shù),yi為第i個樣例的標簽值,Pi為第i個樣例的預測值。
[0036] 進一步地,所述步驟4中,所述訓練網絡的代價函數(shù)中,當?shù)趇個實例是正確實例 時,標簽值為0;當?shù)趇個實例是錯誤實例時,標簽值為1。
[0037] 本發(fā)明的有益效果是:本發(fā)明首先采用了兩個卷積神經子網絡對待匹配圖像小塊 進行特征提取,通過卷積神經網絡的自動學習能力,能夠自動提取出健壯、多樣的特征,避 免了傳統(tǒng)立體匹配方法的復雜的特征選擇和人工抽取特征的過程。然后將它們的輸出特征 進行級聯(lián)送入到全連接層進行匹配代價計算,獲得了比傳統(tǒng)立體匹配方法更好的匹配代 價,結合一些視差的后處理方法,有效的獲得了高精度的視差圖,并具有較好的實時性。
【附圖說明】
[0038] 圖1為構造訓練實例的示意圖;
[0039] 圖2為用于計算待匹配點的匹配代價的卷積神經網絡結構示意圖;
[0040] 圖3為二次曲線求極值點的示意圖。
【具體實施方式】
[0041] W下結合附圖和實施實例對本發(fā)明作進一步說明。
[0042] 本發(fā)明提供的一種基于卷積神經網絡的雙目立體匹配方法,包括W下步驟:
[0043] (1)圖像預處理。對10組帶有參考視差圖的立體圖像對的左圖和右圖分別做Z- SCOre標準化處理:分別計算圖像中所有像素值的均值Xaverage和標準差0,比如對于圖像X做 預處理:
[0046] 對每個像素值進行歸一化,得到新圖像,其像素值為:
[0044]
[0045]
[0047]
[004引(2)構造訓練實例。從預處理后的左圖選取中屯、在p=(x,y)、大小為9X9的一小塊 圖像的x9(的,從預處理后的右圖選取中屯、在q=(x-d,y)、大小為9X9的一小塊圖像
]成一個訓練實例,如圖1所示:
[0050] 對于每一個知道參考視差值d的位置,我們抽取一個正確的訓練實例和一個錯誤 的訓練實例。為了獲得一個正確的訓練實例,將右小塊圖像巧知向)的中屯、設置在:
[0051] q = (x-d+Opos ,y)
[0052 ]其中Opos是在[-0.5,0.5 ]中隨機取值。
[0053] 為了獲得一個錯誤的訓練實例,將右小塊圖像巧.fxn(q)的中屯、設置在:
[0054] q=(x-d+〇neg,y)
[0055] 其中Oneg是在[-1.5,-1引或[1.5,1引中隨機取值。
[0056] (3)構造用于計算匹配代價的卷積神經網絡結構。首先構造兩個完全一樣的子網 絡,每個子網絡由兩個卷積層和一個全連接層,每層后面跟隨一個ReLU層。卷積核的大小為 3X3,,每一層有32個卷積核,全連接層有200個單元。然后將兩個子網絡的輸出級聯(lián)起來, 得到一個長度為400的向量。接著連接兩個全連接層,每層后面接一個ReLU層,每個全連接 層有300個單元。最后連接只有一個單元的全連接層,跟隨一個sigmoid轉移函數(shù)。經過 S i gmo i d處理的輸出就是網絡的輸出結果。如圖2所示:對于每一個輸入(:巧X。(?)).巧fxn (g)>, 網絡的輸出表示為:
[0化7]
[005引(4)訓練網絡。根據步驟(2),每次構造64個正確的訓練實例和64個錯誤的訓練實 例,其對應的輸出Ylabel= [yiabel(l),yiabel(2),…,yiabel(128),],其中第i個訓練實例的標簽 應滿足W下條件:
[0化<
[0060] 將其用于步驟(3)構造的網絡進行有監(jiān)督的反向傳播算法訓練,用二值交叉賭損 失函數(shù)計算損失代價為:
[0061]
[0062] 其中yi為第i個樣例對應的輸出值。
[0063] (5)求視差圖。從測試集中取一對圖像,進行步驟(1)的預處理。運用步驟(4)訓練 出來的網絡,對于左圖中每一個位置P = (x,y),計算其與右圖在位置q=(x-d,y)的匹配代 價,其中d G (0,30)(30表示可能的最大視差值),得到:
[0064]
[0065] 對于左圖中的每一個位置p = (x,y),將上式中的匹配代價取最小時的位置d即為 所求視差D(P):
[0066]
[0067] (6)對視差圖進行后處理。具體包括W下子步驟:
[0068] (6.1)亞像素視差。根據步驟(5)求出的匹配代價構造一條二次曲線,如圖3所示, 取極值點可Pi W像素視差Dsf (n):
[0069]
[0070] 其中d = D(p)
,C- = CcNN(p,d-l),C = CcNN(p,d),C+ = CcNN(p,d+l)。
[0071] (6.2)對視差圖Dse(P)進行中值濾波和雙線性濾波,得到最終的視差圖Dfinai(p)。
[0072] W上所述僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明保護范圍并不局限于此。任何本 領域的技術人員在本發(fā)明公開的技術范圍內,均可對其進行適當?shù)母淖兓蜃兓?,而運種改 變或變化都應涵蓋在本發(fā)明的保護范圍之內。
【主權項】
1. 一種基于卷積神經網絡的雙目立體匹配方法,其特征在于,包括以下步驟: (1) 圖像預處理。對帶有參考視差圖的立體圖像對的左圖和右圖分別做z-sc〇re標準化 處理。 (2) 構造訓練實例。從預處理后的左圖選取中心在p =( X,y )、大小為η X η的一小塊圖像 ,從預處理后的右圖選取中心在q = ( X - d,y )、大小為η X η的一小塊圖像 #χη(9),^χ"(ρ)和Μχ,,Ο?)構成一個訓練實例:對于左圖每個知道參考視差值d的位置,抽取一個正確的訓練實例和一個錯誤的訓練 實例。 為了獲得一個正確的訓練實例,將右小塊圖像巧(9)的中心設置在: Q = (X-d+〇p〇s, y) 其中 〇p〇s 在[-dataset_pos, dataset_pos ]中隨機取值,dataset_pos 為正整數(shù)。 為了獲得一個錯誤的訓練實例,將右小塊圖像%1U (q〇的中心設置在: q= (x-d+〇neg,y) 其中 〇neg 在[_dataset_neg_low,-dataset_neg_high]或[dataset_neg_low,dataset_ neg_high]中隨機取值。dataset_neg_low 和 dataset_neg_high 均為正整數(shù)。 (3) 構造用于計算匹配代價的卷積神經網絡結構。首先構造兩個完全一樣的子網絡,每 個子網絡由兩個卷積層和一個全連接層,每層后面跟隨一個ReLU層。然后將兩個子網絡的 輸出級聯(lián)起來,接兩個全連接層,每層后面接一個ReLU層,最后一個全連接層跟隨一個 s i g m 〇 i d轉移函數(shù)。對于每一個輸入〈JUpXyUi?)》,網絡的輸出表示為 s(^5^xn(:p), ((6))) u (4) 訓練網絡。根據步驟(2),每次構造N/2個正確的訓練實例和N/2個錯誤的訓練實例, 將其用于步驟(3)構造的網絡進行有監(jiān)督的反向傳播算法訓練,得到訓練網絡,N為訓練集 個數(shù)。 (5) 求視差圖。從測試集中取一組立體圖像對,進行步驟(1)的預處理。運用步驟(4)訓 練出來的網絡,對于左圖中每一個位置P=(x,y),計算其與右圖在位置q=(x_d,y)的匹配 代價&顯(?,(1),其中(1£(〇,〇13?_獻乂)(013?_獻乂表示可能的最大視差值),得到 :對于左圖中的每一個位置P=(x,y),上式中的匹配代價取最小時的位置d即為所求視 差D(p):(6) 對視差圖進行后處理。具體包括以下子步驟: (6.1)亞像素視差。根據步驟(5)求出的匹配代價構造一條二次曲線,取極值點得到亞 像素視差圖Dse(p):其中d = D(p),C_=Cc_(p,d-l),C = Cc_(p,d),C+ = Cc_(p,d+l); (6.2)對亞像素視差圖0兄(?)進行中值濾波和雙線性濾波,得到最終的視差圖&_1(?)。2. 根據權利要求1所述的一種基于卷積神經網絡的雙目立體匹配方法,其特征在于,所 述步驟1中,所述Z-score標準化處理過程具體如下: 計算圖像X中所有像素值的均值xave3rage3和標準差σ:其中,WXH為圖像X的大小。 對每個像素值進行歸一化,得到新圖像f,其像素值為:3. 根據權利要求1所述的一種基于卷積神經網絡的雙目立體匹配方法,其特征在于,所 述步驟4中,所述訓練網絡的代價函數(shù)用二值交叉熵損失函數(shù):其中,N為訓練集的個數(shù),yi為第i個樣例的標簽值,Pl為第i個樣例的預測值。4. 根據權利要求1所述的一種基于卷積神經網絡的雙目立體匹配方法,其特征在于,所 述步驟4中,所述訓練網絡的代價函數(shù)中,當?shù)趇個實例是正確實例時,標簽值為0;當?shù)趇個 實例是錯誤實例時,標簽值為1。
【文檔編號】G06N3/08GK105956597SQ201610296770
【公開日】2016年9月21日
【申請日】2016年5月4日
【發(fā)明人】劉云海, 白鵬
【申請人】浙江大學