基於MAP-MRF的視差估計

2021-01-10 3D視覺工坊

作者:浩南來源:微信公眾號|3D視覺工坊(系投稿)

寫在最前面的話:

此篇文章作為本人對馬爾科夫隨機場等概率模型在立體視覺的應用的首篇記錄,包含了本人對馬爾科夫場理論的淺顯理解和最大後驗概率估計方法的理解。囿於本人學術水平,此篇文章參考了大量的數學教材、網絡的相關博客以及國內外學術論文,在此特別鳴謝以下創作:

1.圖像的MAP-MRF模型 https://blog.csdn.net/xfijun/article/details/103624819

2.Belief Propagation解決計算機視覺問題

https://blog.csdn.net/lansatiankongxxc/article/details/45590545?utm_source=blogxgwz0

以上創作極大地加深了本人對馬爾可夫場的理解,在此基礎上,本人結合視差估計這一立體視覺基本問題進行整理。再次感謝以上創作對本人的幫助,謝謝!

作為計算機視覺的核心問題的三維重建技術已經廣泛應用於3D列印、離線地圖重建和文物修復等行業應用之中。其中,基於多視圖立體(Multi-View Stereo, 以下簡稱為「MVS」)的三維重建僅以RGB圖片作為輸入,經過特徵提取與匹配,從運動恢復結構(Structure from Motion, 以下簡稱為「SfM」),深度估計,深度圖融合等多個步驟,輸出表達場景的稠密點雲,是基於視覺的三維重建技術的重要方法和研究分支。日益增長的數據量,同時內部數據還受到諸如光照變化、遮擋等不可控環境因素的影響都對深度圖估計的效率、精度都提出了挑戰。

參考影像的深度估計可以轉化為立體像對的視差估計,傳統方法利用稠密匹配的算法進行快速特徵匹配,例如半全局匹配算法,而往往在收到遮擋的影響而效果不佳。而深度學習方法在立體視覺中的成功應用,使得高效率、高精度的基於神經網絡的端到端三維重建成為可能。

在MVS技術中,估計單張影像的深度圖是主要步驟。而多視圖立體的深度估計又可以轉化成立體像對的視差估計。對於圖像視差估計問題,一般可利用馬爾科夫場對圖像視差賦值進行建模[1],大多數傳統方法也在其基礎上利用最大化後驗概率進行優化

因此,本文將就立體像對視差估計問題,首先介紹立體像對中視差估計的原理,然後沿用以往馬爾科夫場的模型,並以最大後驗概率估計作為參數估計方法,建立MAP-MRF模型。最後使用和積置信度傳播算法,改寫MAP-MRF框架下的視差能量函數,並優化求解立體像對中以左視圖為基準的視差圖。

1.立體像對視差估計原理

圖1 立體視覺模型[5]

2.基於MAP-MRF的深度估計模型

2.1最大後驗概率估計

最大後驗概率估計(Maximum A Posteriori, 以下簡稱「MAP」)是貝葉斯學派模型參數估計的常用方法。其基本思路為,在給定數據樣本的情況下,最大化模型的後驗概率。

假設利用Y表示觀測值,X表示待求量,則在觀測數據條件下的待求量的條件概率為P(X | Y),由貝葉斯公式可得(式2),後驗概率正比於似然函數P(Y|X)和未知變量的先驗概率P(X)的乘積。

當待求量的先驗分布未知時時,可以認為P(X)是一個均勻分布,利用最大似然法(MLE)進行優化,然而對於立體像對深度估計問題,待求變量往往會受到光照條件、遮擋的影響,而一般也能夠得到關於待求變量的先驗信息,從而在數據量不足的情況下,選擇MAP估計可以得到一個更為優化的結果(式3)。

2.2 馬爾科夫隨機原理

2.2.1 領域系統

圖2 MRF領域系統[9]

2.2.2 馬爾科夫隨機場

的狀態

2.3吉布斯分布

2.4MAP-MRF在深度估計上的建模

本節主要介紹MAP-MRF框架在視差估計上的模型構建過程。

因為已知觀測量,並在MAP框架下,要求未知變量X的後驗概率最大(式3),所以僅需要知道觀測變量的後驗概率P(Y | X)和未知變量的先驗概率P(X),即可表示未知變量的後驗概率(式2)。而在馬爾科夫場中,比較容易構造出未知變量和觀測變量的聯合概率(式6)。

由2.3中所說的Hammersley-Cliffod定理,未知變量的先驗分布滿足Gibbs分布,因此,由式6)和式4),未知變量的先驗分布可以表示為場內子團的勢能。這裡需要注意,在數據集給定的情況下,觀測變量是確定的常值,觀測變量的後驗概率P(Y | X)可以認為是觀測變量退化的似然表示。因此,在未知變量給定標號的時候,P(Y | X)實際上是一個可求的定值,。所以用能量函數表示時,往往將觀測值的後驗概率和未知量的先驗概率的一元能量合併。

對於求解建立在圖像上的無向有環圖模型,還有兩個難點,第一個是如何確立能量函數的具體形式,第二個求解式10)是一個NP問題,該如何求解。對於第一個問題,考慮第一節中的視差估計原理,利用光學一致性準則給出能量函數,第二個問題,利用置信度傳播算法(Belief Propagation Algorithm, 以下簡稱「BP算法」)進行優化求解。

2.4.1MAP-MRF框架下深度估計步驟

1)通過最大後驗概率法確定MRF模型,由式6),兩邊取對數得:

2)確定先驗概率P(X)

3)確定似然函數模型P(Y|X),一般可與先驗概率分布一致。

4)寫出最大後驗概率下的能量函數,優化求解

3.BP算法求解

3.1BP算法原理

對於有環無向的馬爾科夫場,求解觀測量和未知變量的聯合概率,是一個NP問題,無法在線性時間內解決,因此,使用BP算法進行優化。首先,分解聯合概率(式8),將每一個

需要注意的是,考慮無向有環圖的特性,一般在信息迭代的時候,奇數次則按照垂直方向迭代,偶數次按照水平方向迭代以提高效率。

3.2視差代價能量函數

4.實驗結果與分析

我們先利用經典的駐波大學(Tsukuba Univeristy)的立體像對數據集來驗證本文的框架和算法,這個數據集是經典立體視覺匹配的數據集,包括高解析度,中解析度和低解析度的立體像對,同時該數據集還提供了視差真值、遮擋和無紋理的指示圖。我們首先給定一個視差範圍,例如0至16個像素,利用MAP-MRF框架的視差估計結果,並和半全局匹配算法得到的初始視差圖對比結果如下。

圖4 基於MAP-MRF視差計算結果對比:上面一行為左右視圖,左下為「贏者通吃」策略視差圖,右下為由MRF計算的視差圖

從圖4,通過MRF建模後,利用BP算法得到的視差圖的平滑度要優於無鄰域視差約束的初始深度圖,同時,對比發現,BP算法能將局部信息進行全局傳遞,從而在視差圖邊緣部分不會出現沒有參考,只能用0視差填充的黑色邊框。

圖5 立體像對視差計算結果

對比其他數據集視差結果(圖5)可以看到,在BP算法優化後,經典的立體像對可以得到較為準確的視差結果。當然本文中實現的BP算法沒有引入太多的約束,從而會受到光照變化、遮擋等影響。如圖6,當左右視圖的相機外參變化較大的時候,即兩個相機的光軸夾角較小的時候,由於相機轉角過大,導致相同特徵被遮擋,或者位置偏移在置信度傳播的時候,在參考影像上,認為找不到合適匹配點,所以將視差設定為0,在圖像中就是黑色顯示。

圖6 遮擋影響下的視差殘缺

5.總結

本文主要利用MAP-MRF框架,以左像為參考,估計立體像對的視差圖。首先,通過MAP,將視差估計問題轉化為最大化視差後驗概率問題,之後本文結合MRF對圖像進行建模,並在該框架下得到視差估計的能量函數和優化條件。最後利用BP算法進行求解。

實驗表明,本文的算法比原有的直接計算像對視差的結果更為完整和平滑。同時,就光照變化、遮擋問題對置信度傳播方法的挑戰,本文將結合深度學習方法再進行進一步的研究。

參考文獻

[1] 畢天騰, 劉越, 翁冬冬, and 王湧天. 基於監督學習的單幅圖像深度估計綜述. 計算機輔助設計與圖形學學報, 30(8):1383–1393, 8 2018.

[2] Michael Isard and John MacCormick. Dense motion and disparity estimationvia loopy belief propagation. In Computer Vision - ACCV 2006:, pages 32–41, Hyderabad, India, 1 2006.

[3] Christoph Strecha, Rik Fransens, and Luc Van Gool. Combined depthand outlier estimation in multi-view stereo. In ICT』07: XXVI InternationalConference on ermoelectrics June 3-5, 2007 Shineville LuxuryResort Jeju, Korea, pages 2394–2401, Jeju, Korea, 1 2007. IEEE.

[4] Chen, Qifeng, Koltun, and Vladlen. Fast mrf optimization with applicationto depth reconstruction. In 2014 IEEE Conference on ComputerVision and Pattern Recognition: 2014 27th IEEE Conference on ComputerVision and Pattern Recognition (CVPR 2014), 23-28 June 2014,Columbus, Ohio, pages 3914–3921, Columbus, OH(US), 1 2014. Instituteof Electrical and Electronics Engineers.

[5] 姚力. 自然三維電視系統中立體匹配及視點合成技術研究. 博士論文, 浙江大學, 11 2012.

[6] 陳侃. 基於馬爾科夫隨機場圖像恢復算法研究. 碩士論文, 南京師範大學, 11 2008.

[7] Ozkalayci, Burak, Alatan, and /A/. Aydin. Mrf-based planar cosegmentationfor depth compression. In 2014 IEEE International Conferenceon Image Processing: 2014 IEEE International Conference onImage Processing (ICIP 2014), 27-30 October 2014, Paris, France,pages 125–129, Paris, 1 2014. Institute of Electrical and Electronics Engineers.

[8] 吳秋峰, 尹海東, and 孟翔燕. 基於和積和最大積的信念傳播算法的收斂性分析. 數學的實踐與認識, 41(9):212–217, 8 2011.

[9] 童漢陽. 基於過分割的自適應精匹配算法研究. 碩士論文, 浙江工業大學, 9 2012.

備註:作者也是我們「3D視覺從入門到精通」特邀嘉賓:一個超乾貨的3D視覺學習社區,本文的配套代碼後續作者也將會分享在星球內。

相關焦點

  • 基於單目圖像的深度估計算法,大幅度提升基於單目圖像深度估計的精度
    基於單目圖像的深度估計算法,大幅度提升基於單目圖像深度估計的精度 李倩 發表於 2018-06-04 15:46:49 基於視覺的自動駕駛系統需要基於單目攝像頭獲取的圖像
  • AED;光場視差估計等
    AED:無監督表示學習通過自編碼變換而不是自編碼數據基於注意力的視點選擇網絡用於光場視差估計基於CNN的中文lexicon rethinking NER模型使用混合精度的方法在GPU集群上進行深度循環神經網絡的訓練論文名稱:Training
  • 基於雙目視覺的自動駕駛技術
    單目的測距和3-D估計靠什麼?是檢測目標的Bounding Box(BB),如果無法檢測的障礙物,該系統就無法估計其距離和3-D姿態/朝向。沒有深度學習的時候,ME主要是基於BB,攝像頭標定得到的姿態和高度以及路面平直的假設估算距離。
  • 「視差」和星盤解讀【Astrology News】
    當兩位觀察者身處不同方位觀察同一物體時,視差便產生了。舉一個在日常生活中常見的例子,帶你理解究竟何為「視差」。 測量視差:物體距離兩個人越近,兩條視線相交的角度也就越大。這個角度可以用作測量視差。當物體被放得越來越遠,視差也會無限趨近於零。需要注意的是,這種視差取決於兩點:兩位觀察者彼此相距的距離,以及被觀察物體與他們的距離。
  • 注視視差檢查法
    有數個臨床檢測法可用來評估這個注視視差量如:Mallett遠點測量裝置(Mallett unit)、美國光學偏振立體幻燈圖(American Opticalvectographic slide)、Bermell燈式遠點視標(Bernell lantern slide)、Wesson注視視差卡(Wesson card)、Sheedy注視視差測量儀(Sheedy Disparometer)。
  • 無人駕駛:如何使用立體視覺實現距離估計?
    如何利用立體視覺實現距離估計?2.極線幾何--立體視覺立體視覺是基於兩張圖像來尋找深度。我們的眼睛就像兩個相機。因為它們從不同的角度看同一幅圖像,它們可以比對兩種視角之間的差異,並計算出距離估計。下面是立體相機設置的示例。你會在大多數自動駕駛汽車上發現類似的東西。
  • JAVA map的用法/如何遍歷MAP
    第二步: Map map=new HashMap();  //接著向MAP中添加數據進入,如下所示         map.put("a",     "1");            map.put("b",     "2");            map.put("c",     "3");   第三步:上面我們已經在MAP中添加了三條數據進去,我們可以用下面這句取值
  • 產品規劃藍Roadmap長什麼樣子?
    這些標準需要在什麼時候提供怎樣的解決方案,這樣在產品初期規劃的時候,需要產品經理既要考慮用戶場景、又要基於企業現有能力,最終描繪出一幅「可落地可執行成功產品的藍圖」。3. 能力儲備一幅可落地可執行的Roadmap,可以讓團隊提前進行相應的能力儲備,以便完美實現Roadmap成功的樣子。
  • 手機google map下載
    【手機google map下載遊戲資料】
  • 科普:天文學中是如何通過視差法測量地球和恆星之間的距離的?
    這裡,我們簡單的介紹一下,視差法是如何用來測量地球(或者太陽系)到其它緊鄰恆星的距離的?當然,視差法有她的使用限制,距離遙遠的恆星,這種方法是無能為力的。簡單的說一下,視差法的幾何基礎:從不同距離的兩個地方去觀察同一個遠處的物體,那麼產生的夾角theta以及兩地之間的距離d可以用來較好的估算遠處物體的距離!很簡單的三角幾何!
  • 滾動視差讓你不相信「眼見為實」
    引言視差滾動(Parallax Scrolling)是指讓多層背景以不同的速度移動,形成立體的運動效果。其實,這項技術早在 2013 年就已經開始在一些國外的網站中得到了大量的應用。由於它給網站帶來了非常出色的視覺體驗,現在已經有數不勝數的網站應用了這項技術。
  • 三角視差測量銀河系大小能否改變宇宙理論
    銀河系的大小,應該在現在的科學中一直是一個無法論證的問題,因為沒人知道這個到底有多大,自從銀河系的概念出現後,科學家們就開始嘗試獲得準確的距離測量,來確定銀河系的大小,這聽起來好像有點不可能,但是科學家們卻想出來一個測量的方法,三角視差技術來實現測試,你覺得可能嗎?
  • 基於卡爾曼濾波器及多傳感狀態的融合估計算法介紹
    採用CarlsON 最優數據融合準則, 將基於Kalman 濾波的多傳感器狀態融合估計方法應用到雷達跟蹤系統。仿真實驗表明,多傳感器Kalman 濾波狀態融合估計誤差小於單傳感器Kalman 濾波得出的狀態估計誤差,驗證了方法對雷達跟蹤的有效性。
  • 你的廚房被水淹了:別擔心,這只是3D深度估計做出的特效
    最後,研究者評估了兩種幾何損失:空間損失和視差損失,並將誤差進行反向傳播,以更新網絡權重(權重對所有幀共享)。用這種方式迭代地採樣很多對視頻幀,損失得到降低,網絡學會估計具備幾何一致性的深度,同時能夠在約束較少的部分提供合理的正則化。
  • Java之Map集合的遍歷
    2.遍歷set集合,獲取map集合中的每一個key。3.通過Map集合中的方法get(key),通過key找到value。Map集合中的方法:Set<K> KeySet()返回此映射中包含的key的set視圖。
  • Java之Map接口的常用方法
    ;();String v1 = map.put("A", "a1"); System.out.println(v1);//null(key不重複,返回值v是null) String v2 = map.put("A", "a2")
  • 別擔心,這只是3D深度估計做出的特效|深度圖|...
    最後,研究者評估了兩種幾何損失:空間損失和視差損失,並將誤差進行反向傳播,以更新網絡權重(權重對所有幀共享)。用這種方式迭代地採樣很多對視頻幀,損失得到降低,網絡學會估計具備幾何一致性的深度,同時能夠在約束較少的部分提供合理的正則化。
  • 從窗戶看宇宙︱用3分鐘解讀3視差法
    最後,經過考慮,小編選擇了一個大家都比較感興趣,背後原理又較為簡單的話題,那就是三角視差法在我們的日常生活中,如果我們要測量兩個物體之間的距離,直尺、米尺和皮尺都是非常實用的工具。但是如果我們想要簡單而精準地測量兩個物體間的距離,這些工具可能就有點小兒科了,於是三角視差法登場了。