基于卷积神经网络的匹配代价算法
1、問題分析
? 立體匹配問題,即根據(jù)雙目攝像頭拍攝到的參考圖像和目標圖像,確定參考圖像上每個點在目標圖像上對應位置的一個過程。一般展示效果通過輸出視差灰度圖或偽彩色圖像表示實際物體遠近程度。直觀上人眼可以直接評判立體匹配效果的好壞,客觀上可以根據(jù)數(shù)據(jù)庫提供的真實視差圖計算匹配錯誤率,錯誤率越低說明模型的準確度越高。
? 近年來,隨著深度學習的發(fā)展,卷積神經(jīng)網(wǎng)絡在越來越多的計算機視覺任務上大展身手,取得了驚人的進步,大幅提高了各項視覺任務挑戰(zhàn)賽的最高水平。與傳統(tǒng)方法不同,深度學習依賴于深層神經(jīng)網(wǎng)絡對問題進行建模,相對于淺層結構,深層結構能學習到更為復雜的非線性關系。同時,卷積神經(jīng)網(wǎng)路直接以圖像為輸入,減少了認為設計特征的工作量。與此同時,大規(guī)模的訓練樣本和高性能訓練設備也顯得尤為重要。
? 研究的該篇論文采用KITTI2012數(shù)據(jù)集訓練卷積神經(jīng)網(wǎng)絡,用于訓練的圖片只有194對,其中還有一部分需要用于驗證模型訓練程度和參數(shù),若直接使用原始圖像對作為訓練輸入,樣本數(shù)量過少,無法得到較好的效果。因此考慮從原始圖像上截取圖像塊作為網(wǎng)絡訓練樣本,因此接下來所述網(wǎng)絡本質上屬于局部匹配方法。
? 該論文中考慮將問題限定為一個有監(jiān)督的機器學習問題,其訓練過程如圖3.3所示,將數(shù)據(jù)分為訓練集和測試集,訓練集由訓練圖片對和真實視差獲得,通過不斷地迭代過程使得本文提出的模型收斂,并存儲整個模型的參數(shù),方便對后續(xù)的圖片進行測試和驗證。
? 論文中所使用的數(shù)據(jù)集、網(wǎng)絡結構及訓練方法將在后文詳細介紹。
2、訓練數(shù)據(jù)
? 該論文采用的每條訓練數(shù)據(jù)由兩個圖片塊組成,記做<Ps×sR ,Ps×sT>,圖像塊的大小s與網(wǎng)絡中卷積層的數(shù)量n成線性關系,具體為:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s = 2xn+1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3.14)
? 這樣設定的目的是即使改變網(wǎng)絡結構,也可以輕松地自動生成對應的圖像塊。Ps×sR?(p)表示從參考圖像IR?截取的大小為s x s,中心為p的圖像塊,Ps×sT?(q)表示從目標圖像IT截取的大小為sxs,中心為q的圖像塊。
? 由于對于訓練數(shù)據(jù),p處的真實視差d已知,我們可以根據(jù)真實視差分別生成一組正樣本和負樣本。令q = (xp -d + Oneg,yp),其中Oneg?是負樣本補償參數(shù),它從中隨機選取,則<Ps×sR?(p),Ps×sT(q)?>是一個負樣本。類似地,令q =?(xp?-d + Opos,yp),其中Opos是正樣本補償參數(shù),它從中隨機選取,則<Ps×sR?(p),Ps×sT(q)?>是一個正樣本。同時,記正樣本的輸出標注為1,負樣本的輸出標注為0.根據(jù)以上分析,可以認為該論文所提出的卷積神經(jīng)網(wǎng)絡在立體匹配任務中實現(xiàn)了計算匹配代價的功能。
? 值得注意的是,由于對網(wǎng)絡輸出結果還需要進行后續(xù)步驟的精煉,網(wǎng)絡的輸出結果應該與經(jīng)典的局部匹配方法輸出具有相同的形式,即正樣本輸出結果應小于負樣本輸出結果。因此在網(wǎng)絡訓練完成后進行測試時,網(wǎng)絡輸出結果要乘以-1使其符合匹配代價的形式。
? 本文在訓練網(wǎng)絡時,使用KITTI2012數(shù)據(jù)集進行網(wǎng)絡的訓練。KITTI2012數(shù)據(jù)集共含有194組訓練圖像對及其真實視差。為了避免過擬合及參數(shù)調(diào)優(yōu),本文使用1/4的有效點作為驗證集。
? 為了使網(wǎng)絡具有更好的泛化能力,本文使用了縮放、調(diào)整對比對、調(diào)整亮度等手段人為地對圖像塊進行了預處理。
? 上面提到的Nlo,Nhi,Phi?是獨立于網(wǎng)絡結構的超參數(shù),一般通過結合驗證集合經(jīng)驗法確定。
3、網(wǎng)絡結構
? ?本文使用的網(wǎng)絡結構如圖3.4所示。網(wǎng)絡含有4個隱含層,且為全卷積結構,因此在測試階段可以很方便地使用各種尺寸的輸入圖像進行測試。4個卷積層對應的網(wǎng)絡輸入為1x9x9的圖像塊,第一維為1表示灰度圖像。第一層卷積層(C1)的卷積核尺寸為64x1x3x3,第二到四個卷積層(C2,C3,C4)均由64x1x3x3的卷積核構成。第四個卷積層(C4)的輸出為左右兩個64x1的特征列向量,第五層網(wǎng)絡輸出層為第四層輸出向量內(nèi)積的累加和。除最后一個卷積層(C4)外,每個卷積層輸出結果經(jīng)過一個ReLU層,最近一些研究證明,ReLU層在訓練CNN時能夠提高收斂速度。
? 由于網(wǎng)絡第一層64x1x3x3的卷積核,因此本網(wǎng)絡輸入只能使用灰度圖像,但只要簡單地將第一層卷積核改為64x3x3x3的卷積核,本網(wǎng)絡即可接受RGB彩色圖像作為輸入。
? 由于該網(wǎng)絡結構輸出可以作為匹配代價用戶后續(xù)步驟的處理,故將此卷積神經(jīng)網(wǎng)絡命名為代價卷積神經(jīng)網(wǎng)絡(Cost Convolutional Neural Network,簡稱CCNN).方便后文的理解。
4、網(wǎng)路的訓練過程
? 該論文網(wǎng)絡訓練流程圖如圖3.5所示。
? 首先將KITTI2012數(shù)據(jù)集194組訓練圖片隨機打亂,選取其中160組圖像作為訓練集,用于訓練網(wǎng)絡參數(shù),剩余34組作為驗證數(shù)據(jù)集,用于驗證模型參數(shù)。
? KITTI2012數(shù)據(jù)集提供的真實視差圖為稀疏視差圖,即其中有部分點的真實視差未知,另外由于攝像頭視野限制,左圖中左側部分區(qū)域無法匹配右圖中對應位置,即無法通過計算獲得其視差,因此需要對有效訓練點進行篩選。給定參考圖像中一點p和真實視差d,篩選條件如下:1)d為0的點;2)p在目標圖像中對應點pd的橫坐標小于0.
? 通常訓練一個深度神經(jīng)網(wǎng)絡需要大規(guī)模的數(shù)據(jù),而當訓練數(shù)據(jù)不足時,常用的策略是使用ImageNet數(shù)據(jù)集對網(wǎng)絡參數(shù)進行預訓練(Pre-train),使網(wǎng)絡參數(shù)能有一個較好的初始值,加快收斂速度。故目前大部分使用深度學習完成視覺任務的項目,常常會使用ImageNet數(shù)據(jù)集對網(wǎng)絡進行預訓練,再用當前任務的數(shù)據(jù)集對模型參數(shù)進行微調(diào)(Finetune)。
?如前2中所述,使用該論文準備數(shù)據(jù)的方法可以獲得近1500萬個有效點,每個有效點可以生成一組正樣本和一組負樣本,共約3000萬組樣本,已經(jīng)足夠用于一般的學習任務,故不需要進行預訓練步驟。?卷積層的卷積核參數(shù)采用均值為0,方差為0.01的高斯分布隨機初始化。該論文使用SGD算法更新權重,mini-batch為128個樣本,momentum為0.9,前12次迭代時學習率為0.00002,共20次迭代。
5、網(wǎng)絡測試過程
? ?網(wǎng)絡測試流程與訓練流程略有不同。如前所述,訓練時網(wǎng)絡輸入為2組9x9的灰度圖像塊,卷積層的填充寬度為0,故經(jīng)過多個卷積層后輸出1個實數(shù),表示兩個圖像塊的匹配程度。由于網(wǎng)絡是全卷積結構,所以卷積核尺寸都是3x3,根據(jù)下圖所示(3.4)公式,通過將填充寬度設置為1,可以使得網(wǎng)絡的輸入輸出的尺寸相同。即輸入?yún)⒖紙D像和目標圖像,卷積層C4輸出尺寸與輸入相同,再將向量內(nèi)積改為第二維逐像素列向量的內(nèi)積,可獲得負匹配代價-C(p,d)。
? 一般來說,局部匹配算法包含代價計算、代價聚合、視差計算、后處理四個步驟,為了簡化實驗步驟,該章實驗并未進行代價聚合,直接用網(wǎng)絡輸出的視差空間圖進行視差計算并輸出結果。
? 另外,若以左圖為參考圖像,左圖上一點p在視差d的匹配代價,與以右圖為參考圖像,右圖上點pd在視差d的匹配代價相同,因此CCNN可以分別獲得以左右圖作為參考圖像的匹配代價,可用于后處理。
?
轉載于:https://www.cnblogs.com/ding-jing/p/8693462.html
總結
以上是生活随笔為你收集整理的基于卷积神经网络的匹配代价算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gRPC
- 下一篇: pat 甲级1013