亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的立體匹配方法與流程

文檔序號:11231969閱讀:1708來源:國知局
一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的立體匹配方法與流程

本發(fā)明涉及計算機視覺的立體匹配與深度學(xué)習(xí)技術(shù)領(lǐng)域,具體講的是一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的雙視點圖像立體匹配方法。



背景技術(shù):

立體視覺匹配是計算機視覺和非接觸測量研究中最基本的關(guān)鍵問題之一,立體匹配的目標(biāo)是找出不同視角的圖像之間的對應(yīng)點關(guān)系,獲得視差圖,得到了視察圖之后,就可以很容易地得到原始圖像的深度信息和三維信息。因此,立體匹配問題普遍被視為立體視覺中最關(guān)鍵的問題。

視差圖的獲取是立體匹配問題的關(guān)鍵,關(guān)于計算像素點視差值的算法,根據(jù)采用圖像表示的基元不同,可以分為:區(qū)域立體匹配算法,基于特征的立體匹配算法,基于相位的立體匹配算法。根據(jù)采用優(yōu)化理論的方法不同,又可分為:局部立體匹配和全局立體匹配。

立體匹配問題作為立體視覺中最困難的問題,是因為有以下挑戰(zhàn):遮擋問題,也就是一張圖的某些區(qū)域因為遮擋原因,在另一個視角的圖中沒有對應(yīng)的匹配點。其次是弱紋理的問題,如果只從局部的角度計算,就會出現(xiàn)大量的匹配點。傳統(tǒng)的方法通過全局能量代價函數(shù)來檢測遮擋,利用增大窗口的方法處理弱紋理的問題,但是效果有限[2]

近幾年,深度學(xué)習(xí)在計算機視覺方面獲得了重大進展,在圖像分類,物體檢測,視覺顯著性檢測等很多傳統(tǒng)計算機圖像與視覺方面的問題取得了巨大成功[4]。其中,最為典型的是卷積神經(jīng)網(wǎng)絡(luò)cnn,它通過卷積和池化操作提取了目標(biāo)特征,并降低了特征分辨率,減少了計算量[1]。將池化的結(jié)果通過激活函數(shù),將線性的卷積操作與非線性的激活函數(shù)結(jié)合,使得網(wǎng)絡(luò)可以模擬出更為復(fù)雜多樣的映射關(guān)系,使網(wǎng)絡(luò)獲得很好的特征提取的能力。

參考文獻

[1]krizhevsky,alex,ilyasutskever,andgeoffreye.hinton."imagenetclassificationwithdeepconvolutionalneuralnetworks."advancesinneuralinformationprocessingsystems.2012.

[2]klaus,andreas,mariosormann,andkonradkarner."segment-basedstereomatchingusingbeliefpropagationandaself-adaptingdissimilaritymeasure."patternrecognition,2006.icpr2006.18thinternationalconferenceon.vol.3.ieee,2006.

[3]arewereadyforautonomousdriving?thekittivisionbenchmarksuite,[online].available:

http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo

[4]lecun,yann,yoshuabengio,andgeoffreyhinton."deeplearning."nature521.7553(2015):436-444.



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是鑒于立體匹配問題在三維重建,機器人導(dǎo)航,三維場景感知等立體視覺問題中的重要性以及其近幾年深度學(xué)習(xí)方法在計算機視覺領(lǐng)域的巨大成功,提出一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的立體匹配方法。

該方法利用一種雙流卷積神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)并計算出左右視圖中目標(biāo)區(qū)域的匹配代價,并以交叉聚合算法作為輔助,有效地獲得目標(biāo)圖像的視差圖。雙流網(wǎng)絡(luò)結(jié)構(gòu)不僅繼承了卷積神經(jīng)網(wǎng)絡(luò)計算量小,性能穩(wěn)定等優(yōu)點,同時擁有較大的接受域,并且更充分地提取了目標(biāo)點鄰近區(qū)域的特征,擁有更高的精度。

為了實現(xiàn)上述目的,本發(fā)明通過以下技術(shù)方案予以實現(xiàn),具體包括如下步驟:

步驟(1):構(gòu)建一種基于交叉熵二值分類問題的訓(xùn)練數(shù)據(jù),將訓(xùn)練數(shù)據(jù)分割出正負樣本。

步驟(2):提出一種雙流卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)用于計算兩張圖像的相似度,并利用步驟(1)構(gòu)建的數(shù)據(jù)去訓(xùn)練網(wǎng)絡(luò)的參數(shù)。

步驟(3):分段處理雙流網(wǎng)絡(luò)前向計算過程中分流和匯總兩個模塊,并保存中間數(shù)據(jù),節(jié)省大量計算量。

步驟(4):將網(wǎng)絡(luò)輸出結(jié)果轉(zhuǎn)化為匹配代價,并利用交叉聚合算法將聚合區(qū)域內(nèi)的匹配代價平均化。

步驟(5):基于贏者通吃策略計算每一個像素點的視差,并用插值法對結(jié)果進行亞像素增強。

步驟(1)所述的構(gòu)建訓(xùn)練數(shù)據(jù)具體如下:

所有數(shù)據(jù)和對應(yīng)的標(biāo)簽均從kitti數(shù)據(jù)庫獲取[3],本方法只使用灰度圖像數(shù)據(jù),并對所有灰度值歸一化。對于訓(xùn)練用數(shù)據(jù),需要為每一個像素點構(gòu)建一個正樣本和負樣本便于之后建立基于二分類問題的交叉熵殘差。

設(shè)為一組樣本,表示左圖中以p點為中心的大小為n×n的窗口區(qū)域,表示右圖中以q點為中心的大小為n×n的窗口區(qū)域。假設(shè)p=(x,y):

對于一個正樣本:q=(x-dt,y)

對于一個負樣本:q=(x-dt+oneg,y)

dt為點p對應(yīng)的視差真值,oneg為一個隨機偏移量。由于數(shù)據(jù)都只有水平方向上的視差,垂直方向是對齊的,因此只需要水平方向的視差。所有靠近圖片邊界的點,在取窗口時,不夠的部分以0值填充。所有正樣本對應(yīng)的標(biāo)簽為1,負樣本對應(yīng)的標(biāo)簽為0。

步驟(2)所使用的雙流卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的具體設(shè)計:雙流網(wǎng)絡(luò)由兩個孿生卷積神經(jīng)網(wǎng)絡(luò)組成,再將它們的結(jié)果匯總并輸出,每一個孿生卷積網(wǎng)絡(luò)都有左右兩個子網(wǎng)絡(luò),左右子網(wǎng)絡(luò)在網(wǎng)絡(luò)結(jié)構(gòu)上一樣,具體如下:

1.以32×32的窗口作為輸入

2.后接一個3×3,步長為1的卷積層+relu激活層

3.后接一個2×2,步長為2的下采樣層,下采樣采用maxpooling

4.后接三個3×3,步長為1的卷積層+relu激活層

孿生網(wǎng)絡(luò)的兩個子網(wǎng)絡(luò)最后會得到兩個9×9的窗口,子網(wǎng)絡(luò)參數(shù)共享。

左右子網(wǎng)絡(luò)的不同在于:

左側(cè)子網(wǎng)絡(luò)的輸入是左圖的窗口,右側(cè)子網(wǎng)絡(luò)的輸入是右圖的窗口。

兩個孿生卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)也是一樣的,不同在于:

其中一個的輸入為原圖中解析度為32×32的窗口,另一個的輸入是將同一個點為中心的64×64的窗口下采樣成32×32的窗口。

兩個孿生網(wǎng)絡(luò)匯總時進入決策層,結(jié)構(gòu)如下:

1.一個324×1024全連接層,輸出維度為1024,并經(jīng)過relu激活

2.一個1024×1的全鏈接層,輸出維度為1,并經(jīng)過sigmoid激活

網(wǎng)絡(luò)訓(xùn)練時使用的交叉熵殘差定義如下:

θ表示網(wǎng)絡(luò)的參數(shù),y(i)第i個樣本對應(yīng)的標(biāo)簽值,正樣本的y(i)為1,負樣本的y(i)為0,x(i)表示樣本i,h(x(i))表示第i個樣本的網(wǎng)絡(luò)最終輸出結(jié)果。

網(wǎng)絡(luò)的參數(shù)更新利用梯度下降法,公式如下:

α表示學(xué)習(xí)率,表示θ的梯度。

對于參數(shù)θ,網(wǎng)絡(luò)的線性計算部分可表示成:

ak(x(i))表示樣本x(i)在第k層網(wǎng)絡(luò)中,線性部分的輸出結(jié)果,wk和bk分別表示該層的乘法參數(shù)和偏移參數(shù),表示樣本x(i)經(jīng)過前k-1層計算后的結(jié)果。因此網(wǎng)絡(luò)參數(shù)θ又可表示為θ(w,b)。

梯度通過對求導(dǎo)得到,結(jié)果如下:

hθ(x(i))表示樣本x(i)在參數(shù)為θ時,網(wǎng)絡(luò)的輸出結(jié)果。

步驟(3)在測試階段,對于左圖中某一點p(x,y),對于所有可能視差值d∈d,右圖中所有q(x-d,y)都是可能和p匹配的備選點,令p-d表示點q。則需要計算所有組合<p,p-d>的相似度。

只有在決策階段才需要計算所有組合,因此在決策層之前先計算并保存所有點對應(yīng)窗口在孿生網(wǎng)絡(luò)的結(jié)果,保證每個窗口在孿生網(wǎng)絡(luò)中只計算一次。

最后再在決策層計算將對于p(x,y)的所有備選點的相似度結(jié)果,可節(jié)省不必要的計算量。

步驟(4)中,由于弱紋理現(xiàn)象和視差圖平滑化的需要,有必要利用交叉聚合的方法均值化同一物體上點的視差值,方法具體如下:

對于某一個像素點p,根據(jù)一定的規(guī)則進行擴散,可獲得區(qū)域u(p),擴散規(guī)則如下:

|i(p)-i(pl)|<intensity(1)

||p-pl||<distance(2)

式1表示備選點pl與p的值的差距要小于閾值intensity,式2表示pl與p的距離要小于閾值distance。

根據(jù)以上規(guī)則,首先基于p點分別從上下方向延伸,得到一組垂直的像素點v(p),對于根據(jù)以上規(guī)則對q點進行左右方向的水平擴散,得到一組水平的像素點h(q),u(p)是所有h(p)的并集。

得到u(p)后,匹配代價均值化計算如下:

表示一組樣本經(jīng)過網(wǎng)絡(luò)前向計算后的輸出結(jié)果,點p與點p-d在水平方向上距離為d,垂直坐標(biāo)相同。負號將網(wǎng)絡(luò)輸出結(jié)果的相似度轉(zhuǎn)化為匹配代價。ci(p,d)表示在第i次迭代中,組合<p,p-d>的交叉聚合結(jié)果,其等于第i-1次迭代中,ud(p)范圍內(nèi)所有結(jié)果的均值。|ud(p)|表示ud(p)的元素個數(shù)。

步驟(5)的贏者通吃策略就是,設(shè)c(p,d)為交叉聚合的最終結(jié)果,對于左圖中某點p,選取所有c(p,d)中最小的結(jié)果作為匹配結(jié)果,那么d就是像素p的視差。

最后再對結(jié)果進行亞像素增強,公式如下:

dp為亞像素增強后結(jié)果,d為贏者通吃策略的結(jié)果,c為贏者通吃策略結(jié)果中對應(yīng)的c(p,d),c+為c(p,d+1),c-為c(p,d-1)。

本發(fā)明的有益效果如下:本發(fā)明利用一種雙流網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)并計算出左右視圖中目標(biāo)區(qū)域的匹配代價,并以一些后處理算法作為輔助,有效地獲得目標(biāo)圖像的視差圖。該方法有效地將深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到了立體匹配中,不僅繼承了卷積神經(jīng)網(wǎng)絡(luò)計算量小,性能穩(wěn)定等優(yōu)點,同時擁有較大的接受域,并且更充分地提取了目標(biāo)點鄰近區(qū)域的特征,擁有更高的精度。

附圖說明

圖1是本發(fā)明基于雙流卷積神經(jīng)網(wǎng)絡(luò)進行立體匹配的算法流程圖。

圖2是雙流卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。

圖3是交叉聚合范圍示意圖。

圖4是交叉聚合范圍選取流程圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明作進一步說明。

如圖1所示,一種基于雙流卷積神經(jīng)網(wǎng)絡(luò)的立體匹配方法,具體步驟如下:

步驟(1):構(gòu)建一種基于交叉熵二值分類問題的訓(xùn)練數(shù)據(jù),將訓(xùn)練數(shù)據(jù)分割成正負樣本。

步驟(2):提出一種雙流卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)用于計算兩張圖像的相似度,并利用步驟(1)構(gòu)建的數(shù)據(jù)去訓(xùn)練網(wǎng)絡(luò)的參數(shù)。

步驟(3):分段處理雙流網(wǎng)絡(luò)前向計算過程中分流和匯總兩個模塊,并保存中間數(shù)據(jù),節(jié)省大量計算量。

步驟(4):將網(wǎng)絡(luò)輸出結(jié)果轉(zhuǎn)化為匹配代價,并利用交叉聚合算法將聚合區(qū)域內(nèi)的匹配代價平均化。

步驟(5):基于贏者通吃策略計算每一個像素點的視差,并插值法對結(jié)果進行亞像素增強。

步驟(1)所述的構(gòu)建訓(xùn)練數(shù)據(jù)具體如下:

所有數(shù)據(jù)和對應(yīng)的標(biāo)簽均從kitti數(shù)據(jù)庫獲取,本方法只使用灰度圖像數(shù)據(jù),并對所有灰度值歸一化。對于訓(xùn)練用數(shù)據(jù),需要為每一個像素點構(gòu)建一個正樣本和負樣本便于之后建立基于二分類問題的交叉熵殘差。

設(shè)為一組樣本,表示左圖中以p點為中心的大小為n×n的窗口區(qū)域,表示右圖中以q點為中心的大小為n×n的窗口區(qū)域。假設(shè)p=(x,y):

對于一個正樣本:q=(x-dt,y)

對于一個負樣本:q=(x-dt+oneg,y)

dt為點p對應(yīng)的視差真值,oneg為一個隨機偏移量。由于數(shù)據(jù)都只有水平方向上的視差,垂直方向是對齊的,因此只需要水平方向的視差d。所有靠近圖片邊界的點,在取窗口時,不夠的部分以0值填充。所有正樣本對應(yīng)的標(biāo)簽為1,負樣本對應(yīng)的標(biāo)簽為0

步驟(2)所使用的雙流卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的具體設(shè)計如圖2所示,以下是具體說明:

雙流網(wǎng)絡(luò)由兩個孿生卷積神經(jīng)網(wǎng)絡(luò)組成,再將它們的結(jié)果匯總并輸出,每一個孿生卷積網(wǎng)絡(luò)都有左右兩個子網(wǎng)絡(luò),左右子網(wǎng)絡(luò)在網(wǎng)絡(luò)結(jié)構(gòu)上一樣,具體如下:

5.以32×32的窗口作為輸入

6.后接一個3×3,步長為1的卷積層+relu激活層

7.后接一個2×2,步長為2的下采樣層,下采樣采用maxpooling

8.后接三個3×3,步長為1的卷積層+relu激活層

孿生網(wǎng)絡(luò)的兩個子網(wǎng)絡(luò)最后會得到兩個9×9的窗口,子網(wǎng)絡(luò)參數(shù)共享。

左右子網(wǎng)絡(luò)的不同在于:

左側(cè)子網(wǎng)絡(luò)的輸入是左圖的窗口,右側(cè)子網(wǎng)絡(luò)的輸入是右圖的窗口。

兩個孿生卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)也是一樣的,不同在于:

其中一個的輸入為原圖中解析度為32×32的窗口,另一個的輸入是將同一個點為中心的64×64的窗口下采樣成32×32的窗口。

由此可以使網(wǎng)絡(luò)擁有較大的接收域,同時又強化了靠近中點部分信息的特征提取能力。

兩個孿生網(wǎng)絡(luò)匯總時會得到4個9×9窗口,將他們拉平并連接成1×324的向量,進入?yún)R總的決策層,結(jié)構(gòu)如下:

3.一個324×1024全連接層,輸出維度為1024,并經(jīng)過relu激活

4.一個1024×1的全鏈接層,輸出維度為1,并經(jīng)過sigmoid激活

最后經(jīng)過sigmoid層的結(jié)果作為網(wǎng)絡(luò)的最終結(jié)果。

整個網(wǎng)絡(luò)非線性計算部分由relu和sigmoid組成。

relu定義如下:

sigmoid定義如下:

h(x)表示激活層(非線性運算)的輸出,x表示激活層之前的線性計算輸出,網(wǎng)絡(luò)中線性計算部分可以表示成:

ak(x(i))表示樣本x(i)在第k層網(wǎng)絡(luò)中,線性部分的輸出結(jié)果,wk和bk分別表示該層的乘法參數(shù)和偏移參數(shù),表示樣本x(i)經(jīng)過前k-1層計算后的結(jié)果。因此網(wǎng)絡(luò)參數(shù)θ又可表示為θ(w,b)。

網(wǎng)絡(luò)訓(xùn)練時使用的交叉熵殘差定義如下:

l(θ)=y(tǒng)(i)logh(x(i))+(1-y(i))log(1-h(x(i)))

θ表示網(wǎng)絡(luò)的參數(shù),y(i)第i個樣本對應(yīng)的標(biāo)簽值,正樣本的y(i)為1,負樣本的y(i)為0,x(i)表示樣本i,h(x(i))表示第i個樣本的網(wǎng)絡(luò)最終輸出結(jié)果。

網(wǎng)絡(luò)的參數(shù)更新利用梯度下降法,公式如下:

α表示學(xué)習(xí)率,表示θ的梯度。

梯度通過對l(θ(w,b))求導(dǎo)得到,結(jié)果如下:

hθ(x(i))表示樣本x(i)在參數(shù)為θ時,網(wǎng)絡(luò)的輸出結(jié)果。

步驟(3)在測試階段,對于左圖中某一點p(x,y),對于所有可能視差值d∈d,右圖中所有q(x-d,y)都是可能和p匹配的備選點,令p-d表示點q。則需要計算所有組合<p,p-d>的相似度。

只有在決策階段才需要計算所有組合,因此在決策層之前先計算并保存所有點對應(yīng)窗口在孿生網(wǎng)絡(luò)的結(jié)果,保證每個窗口在孿生網(wǎng)絡(luò)中只計算一次。

最后再在決策層計算將對于p(x,y)的所有備選點的相似度結(jié)果,可節(jié)省不必要的計算量。

步驟(4)中,由于弱紋理現(xiàn)象和視差圖平滑化的需要,有必要進行交叉聚合均值化同一物體上點的視差值,方法具體如下:

對于某一個像素點p,根據(jù)一定的規(guī)則進行擴散,可獲得區(qū)域u(p),擴散規(guī)則如下:

|i(p)-i(pl)|<intensity(1)

||p-pl||<distance(2)

式1表示備選點pl與p的值的差距要小于閾值intensity,式2表示pl與p的距離要小于閾值distance。

具體選取流程如圖4所示。根據(jù)以上規(guī)則,首先基于p點分別從上下方向延伸,得到一組垂直的像素點v(p),對于根據(jù)以上規(guī)則對q點進行左右方向的水平擴散,得到一組水平的像素點h(q),u(p)是所有h(p)的并集。

u(p)范圍如圖3所示,得到u(p)后,匹配代價均值化計算如下:

c0(p,d)=-s(<pl(p),pr(p-d)>)

表示一組樣本經(jīng)過網(wǎng)絡(luò)前向計算后的輸出結(jié)果,點p與點p-d在水平方向上距離為d,垂直坐標(biāo)相同。負號將網(wǎng)絡(luò)輸出結(jié)果的相似度轉(zhuǎn)化為匹配代價。ci(p,d)表示在第i次迭代中,組合<p,p-d>的交叉聚合結(jié)果,其等于第i-1次迭代中,ud(p)范圍內(nèi)所有結(jié)果的均值。|ud(p)|表示ud(p)的元素個數(shù)。

步驟(5)的贏者通吃策略就是,設(shè)c(p,d)為交叉聚合的最終結(jié)果,對于左圖中某點p,選取所有c(p,d)中最小的結(jié)果作為匹配結(jié)果,那么d就是像素p的視差。

最后再對結(jié)果進行亞像素增強,公式如下:

dp為亞像素增強后結(jié)果,d為贏者通吃策略的結(jié)果,c為贏者通吃策略結(jié)果中對應(yīng)的c(p,d),c+為c(p,d+1),c-為c(p,d-1)。

綜上所述,本發(fā)明利用雙流卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)不同視點圖片中匹配點之間的相似度,并利用交叉聚合的方法輔助,優(yōu)化了弱紋理區(qū)域的結(jié)果,通過實驗證明本方法確實可以準(zhǔn)確地進行立體匹配。不僅繼承了卷積神經(jīng)網(wǎng)絡(luò)計算量小,性能穩(wěn)定等優(yōu)點,同時擁有較大的接受域,并且更充分地提取了目標(biāo)點鄰近區(qū)域的特征,擁有更高的精度。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1