Displets立體匹配演算法
1.論文基本資訊
題目:Displets:Resolving Stereo Ambiguities using Object Knowledge
來源:Conferenceon Computer Vision and Pattern Recognition (CVPR)
時間:2015.6
作者:Fatma Guney, Andreas Geiger
2.論文摘要
立體技術近年來發展迅速,但仍然存在一些具有挑戰性的問題。一個比較顯著的問題是,傳統的方法不易對具有反射性和無紋理的平面恢復重建。該論文在較大的距離上進行規範,使用影象分類技術確定目標視差位置(displets),取樣時使用基於稀疏視差評估的逆影象技術以及語義分割技術。Displets指出,特定類別的物體形狀不是隨意的,它具有典型有規律的結構。綜合上述思路,針對“車”這一類別進行試驗,利用CRF框架將目標轉化為超畫素,在KITTI立體評估中,該方法排名第一。
3.引言
計算機視覺的目標是從攝像機得到的二維影象中提取三維資訊,從而重建三維世界模型,主要分為四個步驟,如圖所示:
該論文主要針對立體匹配階段,其基本原理是從兩個視點觀察同一景物以獲取立體圖相對,匹配出相應像點,從而計算出視差並獲得三維資訊。一般情況下,一幅影象中的某一特徵基元在另一幅影象中可能會有很多候選匹配物件,可真正同名的結構基元只有一個,因此可能會出現歧義匹配。該論文就是為了解決立體歧義問題。
大部分的雙目視覺立體匹配演算法集中對文字特徵和平滑假設做處理,忽略了語義資訊的重要性。該論文集中研究中級階段的目標識別和語義分割技術,而且注重目前研究較少的三維重建部分。如下圖所示,當前演算法面臨的主要問題是由於目標類的弱紋理性,反射性,半透明性,通過使用目標識別知識,增加可能的目標之間的距離,提高匹配效果。
4.文章基本原理
使用SLIC演算法將影象分解為一系列的超畫素平面,關於displets的說明:
取樣三維CAD模型結構(上,中圖),通過區域性平面和視差圖的匹配獲取平面引數,其實S代表超畫素平面,ni表示平面的法向量。
1)能量函式
立體匹配演算法主要是通過建立一個能量代價函式,通過此能量代價函式最小化來估計畫素點視差值。立體匹配演算法的實質就是一個最優化求解問題,通過建立合理的能量函式,增加一些約束,採用最優化理論的方法進行方程求解。該論文的能量函式如下:
(1)DataTerm(能量函式第一部分)
該資料項指出,左影象和右影象中一致的點在外觀上應該相似。由於可能存在很多相似的點,因此用一個半密集的特徵區域匹配演算法從初始的稀疏視差圖得到懲罰偏差如下:
(2)LocalSmoothness(能量函式第二部分)
在能量函式中,鼓勵區域性平滑度,通過懲罰超畫素邊緣的不連續性,鼓勵具有相似方向的相鄰畫素。平滑項可分解為:
表示超畫素i和超畫素j之間一系列共享的邊界畫素,和控制每個式子的重要性。如果相鄰的超畫素i和j很容易被一個閉塞的邊界分開,就降低和的權值。
(3)DispletPotentials(能量函式第三部分)
Displet Potentials標識一個符合特定語義類的可能的幾何區域。Displet的一元可能性(unary potential)被定義為,該可能性用來描述影象中形狀符合特定目標類的區域被指定給語義類標籤
在每個displet和所有超畫素之間定義一個可能性,加上一個變數代表平面的法向量,確保displet不會重疊。
2)Rapid Inverse Graphics(快速逆影象)
該部分描述如何使用逆影象從無限大空間的視差圖中再次取樣,用MCMC畫一組符合特定目標類的代表性取樣。該過程從原始攝像機中生成視差圖,呈現的視差圖和輸入的視差圖進行對比,返回一個表示一致程度的分數。這確保該演算法可以抵抗不能程度的光照變化,特別是反射性和半透明的表面。
(1)Semi-ConvexHull(半凸面車身)
從Google上得到的CAD模型中有成千上萬的頂點和麵,常用的QSlim演算法和MATLAB處理不適用,因此提出一個簡單方法用來進行網格簡化,可以減少CAD模型中的幾何類,同時保留車身形狀,不影響呈現的深度圖。初始化一個凸面車身的網格,在該模型的體積約束下逐漸平滑逼近,該表達被稱為Semi-Convex Hull。其最小化了所有網格頂點之間的距離,並且對原始模型上的點進行密集取樣。簡化演算法如下:
(2)Samplingthe Space of Displets(取樣Displets空間)
對於一個指定的物體類,c重點研究對得到的半密集視差圖中可能的displet空間的二次取樣。用MCMC解決逆影象問題,直接從觀察模型中取樣引數。
該指標對區域O中的每一個畫素都進行解釋同事避免其他物體的遮擋。使用目標proposals可以避免通過語義類S直接取樣。論文提出一個適用於該場景的簡單有效的方法去確定影象的proposals。首先,我們將類C中的所有有效的畫素用三維表達,然後,我們沿著相機主座標的x軸和z軸計算核心密度評估(KDE)。由於目標邊界經常和KDE的最小值一致,通過將三維的點轉化為影象從而確定目標的區域O為每對相鄰的最小值。
5.方法效果(實驗部分)
1)我們評估所有影象區域(b)和僅僅是反射性區域(a)的匹配錯誤率。
SGM:Census and Sobelfeatures;
CNN:recently proposedfeatures based on convolutional neural networks.
下圖表示使用模型結構中的不同項時的錯誤率;
下圖表示不同匹配演算法的錯誤率:
下圖表示當分別限制目標proposals和模型樹時,反射性區域的效果。橫軸為0時表示一直的Displets為0,為1時表示用了所有可能相關的proposals.可以發現Displets越多,演算法效能越好。
下圖對超畫素的個數對演算法效能的影響進行評估,分別評估所有的區域和反射性區域。最後,在準確度和效能的綜合考量下,選擇了1000個超畫素。
下圖表示不使用displets(左)和使用displets(右)的效果差別,每個圖都從上往下看。將有大幅度改善的區域用矩形標識出。(大幅度的改善是指物體的反射性,半透明性減低。)最下面的兩個是失敗的案例,左圖中由於三維CAD模型中沒有收集罕見的大篷車類的交通工具的距離資訊,因此錯誤率上升。右圖失敗的原因是由於車和建築的聯絡使得語義分割失敗,但是整體的重建效果提高了。
6.論文總結
該方法可以減少在弱紋理區域和反射性區域匹配的錯誤率,大概可以減少50%。該篇論文中,將目標約束在特定的物體類別(車)上,計劃將Displets運用到其他的幾何類別中,比如建築,通常是無紋理的但是形狀是易於描述的。另一個研究方向是將Displets擴充套件到花,因為它是一個事先特定的基於光流和場景流非區域性類別。
7.個人思考和總結
該論文的兩個核心點是:
1.建立了一個較好的能量函式,通過綜合各個影響因素並將函式優化,估計畫素點視差值,實現立體匹配。
2.結合了影象部分的知識,確定影象中的Proposals。結合三維知識,使用超畫素的知識劃分影象。首先對影象CAD模型進行網格簡化,然後利用三維知識計算KDE確定目標的區域。
易理解錯的點:
1.立體匹配並不是確定的物體和物體之間的匹配,不是一幅影象中有一個物體(車),然後去匹配另一個影象,看是否含有這個物體(車)。立體匹配,匹配的是匹配基元,匹配基元有不同的種類。該論文中匹配的應該是畫素,計算兩幅影象對應位置的視差。立體匹配是計算機視覺中的一個步驟,計算機視覺的目標是從攝像機得到的二維影象中提取三維資訊,從而重建三維世界模型。解決立體匹配過程中的歧義問題是為了更好地實現三維重建。
2.最後的效果展示圖7,圈框的部分並不是找到了和左圖中對應的物體所以把它圈出來了,圈出的部分是使用該論文中的方法後改善效果很明顯的區域。論文在開始指出,該方法可以解決傳統演算法不能解決的無紋理的,反射性,半透明區域的匹配問題。右邊的圖是使用了Displets方法的,肉眼可以看出,右圖相較於左圖變暗了,反射性變弱,可以推測出,匹配效果變好了。