吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文讀懂經典雙目稠密匹配算法SGM

新機器視覺 ? 來源:古月居 ? 作者:古月居 ? 2022-12-15 15:12 ? 次閱讀

題圖為SGM算法的一個處理結果。

最近來看看一些雙目稠密匹配的算法。說來慚愧,SGM在航測領域是很重要的算法(當然也是最好的雙目稠密匹配算法之一),自己卻沒有認真讀過,只是大致有些了解。

看了論文,再結合網上一些資料,自己做了些論文筆記。

想到關于SGM論文網上還沒看到比較翔實的博客,就把自己做的筆記再加些解釋分享出來了(下文中的引用部分多為我自己的思考)。

其中還有一些是自己不理解的地方,準備后續寫代碼時研究。

也希望大家可以分享自己的見解,或對文章內容進行批評指正。

由于是論文筆記,所以有些中英夾雜,而且有些想想也不好翻譯,就不再改了。閑話少說,直接來看論文吧。

基礎

雙目圖像稠密匹配的4個基本步驟為:

Matching cost computation;

Cost aggregation: connects the matching cost within a certain neighborhood;

Disparity computation: selects the disparity with the lowest matching cost;

Disparity refinement: removing peaks,

interpolating gaps or increasing the accuracy by sub-pixel interpolation.

這4個都比較好理解,SGM論文也是按照這樣來組織的。

下面就按照論文的順序來詳細了解下SGM算法。

中心思想及要求

idea: 使用MI (Mutual Information) 來進行單像素匹配 + 多個一維平滑約束(來擬二維約束)來進行“全局”優化。

前提: 已知立體像對間的對極幾何關系。

c55d51f6-7b8e-11ed-8abf-dac502259ad0.png

Pixelwise cost calculation

SGM算法不用圖像塊進行匹配,只考慮當前像素。因為利用圖像塊進行匹配對應的隱性約束為塊內像素的視差是相同的,而這在深度變化(物體邊界)的地方是不成立的。

信息(MI):defined from the entropy(熵)of two images:

c56af874-7b8e-11ed-8abf-dac502259ad0.png

c590a16e-7b8e-11ed-8abf-dac502259ad0.png

上式針對整張圖像而非單個像素,不能用作 cost。因此,對于一張圖像的聯合熵,有其他論文利用泰勒展開計算:

c5bc1f56-7b8e-11ed-8abf-dac502259ad0.png

其中,公式內第一項為像素 p 的灰度值,第二項為匹配像素的灰度值。

這里,聯合熵被簡化為左圖所有像素點(及其對應點)的 h(i1,i2) 之和。

c5e38492-7b8e-11ed-8abf-dac502259ad0.png

c6085092-7b8e-11ed-8abf-dac502259ad0.png

c6194e60-7b8e-11ed-8abf-dac502259ad0.jpg

可以看到,由于極線矯正后左右圖十分相似,所以得到的聯合分布直方圖類似于一個對角矩陣。

以上計算并不包含被遮擋的像素(如何得知哪些像素是被遮擋的?)。因此,為了避免包含遮擋像素,建議將熵也這么計算:

c640a118-7b8e-11ed-8abf-dac502259ad0.png

此外,以上計算也只針對兩張圖像的重疊部分。

因此,一維直方圖也可以這么計算:

c6535a38-7b8e-11ed-8abf-dac502259ad0.png

h(i) 即為 P(I1, I2) 第 i 行(列)像素之和。

最終,互信息的定義為

c664e3a2-7b8e-11ed-8abf-dac502259ad0.png

c68722a0-7b8e-11ed-8abf-dac502259ad0.png

對于像素點 p,若取其視差為 d,則對應的 cost 為:

c6987820-7b8e-11ed-8abf-dac502259ad0.png

問題:想要對匹配圖像 Im 進行視差矯正就需要視差圖。

但我們的目標就是獲取視差圖。

解決:

迭代法:start with a random disparity map for calculating Cmi. And use the cost for matching and calculating a new disparity map.

論文表示大致迭代3次就可以了。

層次法:recursively use the up-scaled disparity map (half resolution). Start with a random disparity map of 1/16 resolution. 在這個1/16的視差圖上重復計算3次(每次迭代3次,然后每放大一倍迭代3次計算出新的視差圖。

c6b3f082-7b8e-11ed-8abf-dac502259ad0.png

Aggregation of costs

以上就是論文進行匹配的第一步。接下來就要進行一個“全局”上的優化。

pixelwise matching 還是不夠穩定,因此需要加上一些約束來保持同一平面的像素具有相同的視差并懲罰鄰域內視差不連續的像素(即平滑)。

所以最小化如下能量方程:

c6cd87b8-7b8e-11ed-8abf-dac502259ad0.png

上式第一項為所有 MI cost 的和;

第二項對 像素p的鄰域內出現視差與p的視差相差1 的像素 加上一個懲罰項P1;

第二項對 視差相差大于1 的像素加入更大的懲罰P2.

c6ded784-7b8e-11ed-8abf-dac502259ad0.png

作用:對于小的視差相差使用較小的懲罰以適應斜面或曲面;

對大的視差相差使用大的懲罰來防止深度(視差)不連續。

問題在于全局最小化 E(D) 是一個 NP 完全問題,很難解算。

單行(1D)約束可以利用動態規劃達到多項式時間。

因此很自然地想到優化多個單行的約束條件來擬合2D優化,作者建議至少要選擇待優化像素的8個方向。

The aggregated smoothed cost S(p, d) for a pixel p and disparity d is calculated by summing the costs of all 1D minimum cost paths that end in pixel p at disparity d.(也就是說S是所有L之和。)

c6f6d24e-7b8e-11ed-8abf-dac502259ad0.png

c7149004-7b8e-11ed-8abf-dac502259ad0.png

c72d45c2-7b8e-11ed-8abf-dac502259ad0.jpg

考慮到上述代價最后可能非常大,可將之修改為:

c7410422-7b8e-11ed-8abf-dac502259ad0.png

注意到被減項對于該方向上,像素 p 的任意視差都是一個常數(上一個像素的視差及其對應的最小cost已經計算好)。

最終,對于像素 p,選擇視差 d 的cost 就是:

S(p,d)=∑rLr(p,d)

c792f6ce-7b8e-11ed-8abf-dac502259ad0.png

選擇使 S(p, d) 最小的視差d. 若要到亞像素精度,可以利用 neighboring costs 來擬合一個二次曲線。

c7a5b8a4-7b8e-11ed-8abf-dac502259ad0.png

Multi-baseline matching

對左圖計算完視差圖后,還可以以同樣的方法來對右圖進行視差圖的計算,在將二者融合起來。也可以利用多個立體像對來計算多張稠密視差圖。

問題:areas which are not seen by all images will become invalid.

解決:取多視差圖的并集而非交集。

對于左圖來說,它的視差圖是恒定值(參考依據視差計算深度的公式),因此可以通過多圖匹配來優化。

對左圖計算一個視差圖后,也可對右圖計算一個視差圖。然后進行一致性校驗:

c7b9c038-7b8e-11ed-8abf-dac502259ad0.png

如此,確保 one to one mapping (uniqueness constrain).

Disparity Refinement

之后,是對所得的視差圖進行優化處理。個人覺得這是雙目稠密匹配很重要的一步,因為對于很多算法,其得到的視差圖之間的差別并不會特別大。

重要的是對所得的視差圖進行后處理,提高深度計算的精度。

移除極值

采用聯通域分割法,將視差相差在1個像素以內的像素4鄰域歸為一個聯通域來分割所得的視差圖。

根據場景事先確定一個大小閾值,去除像素數量過少的聯通域。

Intensity Consistent Disparity Check

這步是SGM后處理比較核心的一步。

室內場景的前后景之間會有視差不連續。

但前述的能量方程對于發生視差不連續的位置沒有偏好,這種不連續可能在錯誤的地方出現,因此會造成錯誤的前后景物體邊界,或者一個斜面。

先前的將像素梯度與懲罰值P2關聯可以部分解決該問題。

但在一些視差不連續的不對稱的情況(如前景物體沒有完全出現,只在出現的一邊產生視差不連續)下可能失敗(原因待解)。

室內環境中,后景常常為無紋理區域,如墻等。為解決這個問題,先提出以下三個假設:

無紋理區域內部沒有視差不連續現象(即視差變化伴會隨梯度變化);

無紋理區域包含一些弱紋理(否則也無法進行像素匹配);

無紋理區域的表面可以用一個平面表示(參考1,如此則區域內視差恒定。否則為兩個可以分割開的區域)。

解決步驟:先對圖像進行分割,得到前后景區域。問題就變為如何正確選擇后景(無紋理區域)的邊界和視差,較好的分割出前景物體。

利用 fixed bandwidth Mean Shift Segmentation 方法分割原始圖像,得到各個無紋理區域(假設1),忽略過小區域,所得區域表示為 Si。

利用聯通域分割法分割步驟1得到的無紋理區域(假設2),忽略過小區域,所得分割區域表示為 Sik;

針對2得到的區域擬合平面 Fik (假設3)。將得到的各個可能平面推廣到所在的整個無紋理區域,取能量方程最小的平面。

遮擋判斷子步驟:對于像素p,若其匹配像素q有了另一個匹配,且新的匹配像素的視差大于像素p,則像素p認為被遮擋;

該無紋理區域內的視差都替換為最佳擬合平面所對應的視差;

c7ce26fe-7b8e-11ed-8abf-dac502259ad0.png

c7e00914-7b8e-11ed-8abf-dac502259ad0.png

Discontinuity Preserving Interpolating

后處理完的視差圖可能因為遮擋或誤匹配而存在缺失區域。對這些區域的視差進行插值前要對其性質進行分類,以使用不同的插值方法:

遮擋:用背景的視差進行外插值,而不使用前面的遮擋物的視差;

誤匹配:可以利用其周圍像素進行內插值。

注意:對與遮擋相連的誤匹配區域,同樣利用背景像素進行外插值。

區分:由于遮擋會照成視差不連續。被遮擋位置的像素的極線不與disparity function(即視差隨位置變化的方程)相交;誤匹配像素則相反。

c7fe3a24-7b8e-11ed-8abf-dac502259ad0.jpg

如上圖,點p1處就是因為遮擋而造成點缺失;而點p2則是因為誤匹配。

插值仍然是從像素周圍的8個方向計算出8個可能的視差值,然后

c80e158e-7b8e-11ed-8abf-dac502259ad0.png

該式的第一項是選擇待選視差中第二小 (second lowest) 的視差。第二項為選擇待選視差的中值,這樣有利于在物體邊界處保持視差不連續。

該插值方法獨立于立體相對匹配算法。

最后可以再用中值濾波對得到的視差圖進行去噪處理。

最后,作者還介紹了對于超大幅的航空影像進行分塊處理的方法和加速技巧.

以及解釋了文章中不先對右影像整張影像進行極線矯正的原因(對于推掃式的航空/航天影像,其極線為曲線,因此無法進行矯正,只能實時計算)。

但對于其他普通立體像對,這些內容都是不必要的,就不再解釋了。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4630

    瀏覽量

    93352
  • SGM
    SGM
    +關注

    關注

    0

    文章

    5

    瀏覽量

    10603
  • 匹配算法
    +關注

    關注

    0

    文章

    24

    瀏覽量

    9389

原文標題:一文讀懂經典雙目稠密匹配算法SGM

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    雙目立體視覺三大算法原理及其代碼實現

    雙目立體視覺中常用的基于區域的局部匹配準則主要有圖像序列中對應像素差的絕對值之和SAD(sum of absolute differences)、對應像素差的平方之和SSD(sum of squared differences)及半全局
    發表于 07-01 09:34 ?2289次閱讀
    <b class='flag-5'>雙目</b>立體視覺三大<b class='flag-5'>算法</b>原理及其代碼實現

    雙目影像密集匹配算法的綜合分析

    自適應權重法是推動局部密集匹配算法發展的關鍵。自2006年Yoon等[53]首次提出可以在匹配質量與全局匹配算法相媲美的局部
    的頭像 發表于 11-27 10:29 ?1782次閱讀
    <b class='flag-5'>雙目</b>影像密集<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>的綜合分析

    雙目立體視覺原理大揭秘(

    、分割出來。這樣就完成了特征點提取,為下步“精確化數字描述”做好了基礎。第二、精確化數字描述(立體匹配、姿態測量)。這部分指的是分割出障礙物的特征點以后需要用有效的數值來描述,在雙目視覺系統中當然就是
    發表于 11-21 16:20

    【Firefly RK3399試用申請】基于雙目攝像頭的視覺景深算法開發

    項目名稱:基于雙目攝像頭的視覺景深算法開發試用計劃:1.在這個試用活動剛開始的時候我就申請了,但是很遺憾沒有通過。由于工作的原因我在今年開發了套本來打算用于VR設備設備的雙目手勢識別
    發表于 08-21 12:42

    讀懂接口模塊的組合應用有哪些?

    讀懂接口模塊的組合應用有哪些?
    發表于 05-17 07:15

    讀懂如何去優化AC耦合電容?

    讀懂如何去優化AC耦合電容?
    發表于 06-08 07:04

    讀懂什么是NEC協議

    讀懂什么是NEC協議?
    發表于 10-15 09:22

    讀懂中斷方式和輪詢操作有什么區別嗎

    讀懂中斷方式和輪詢操作有什么區別嗎?
    發表于 12-10 06:00

    雙目視覺立體匹配算法研究

    雙日視覺是計算機視覺領域的個重要組成部分。雙目視覺研究中的關鍵技術攝像機標定和立體匹配直是研究的熱點。本文由兩部分組成,分別對雙目視覺的
    發表于 08-14 16:41 ?0次下載

    雙目立體計算機視覺的立體匹配研究綜述

    雙目立體視覺技術具有成本低、適用性廣的優點,在物體識別、目標檢測等方面應用廣泛,成為計算機視覺領域的研究熱點。立體匹配雙目立體視覺技術中的核心算法,對實現物體三維重建具有重要作用。在
    發表于 04-12 09:47 ?3次下載
    <b class='flag-5'>雙目</b>立體計算機視覺的立體<b class='flag-5'>匹配</b>研究綜述

    種基于PatchMatch的半全局雙目立體匹配算法

    景。因此,從計算復雜度、匹配精度、匹配原理等多方面綜合考慮,提出了種基于 Patchmatch的半全局雙目立體匹配
    發表于 04-20 11:31 ?13次下載
    <b class='flag-5'>一</b>種基于PatchMatch的半全局<b class='flag-5'>雙目</b>立體<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>

    讀懂MCU的特點、功能及如何編寫

    讀懂MCU的特點、功能及如何編寫
    發表于 12-05 09:51 ?24次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>MCU的特點、功能及如何編寫

    幾種經典雙目匹配算法

    matching)復雜,對計算資源消耗很大。那我們介紹下幾種經典雙目匹配算法。 【雙目匹配
    的頭像 發表于 07-04 11:33 ?3541次閱讀
    幾種<b class='flag-5'>經典</b>的<b class='flag-5'>雙目</b><b class='flag-5'>匹配</b>的<b class='flag-5'>算法</b>

    讀懂,什么是BLE?

    讀懂,什么是BLE?
    的頭像 發表于 11-27 17:11 ?2511次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>讀懂</b>,什么是BLE?

    讀懂車規級AEC-Q認證

    讀懂車規級AEC-Q認證
    的頭像 發表于 12-04 16:45 ?1013次閱讀
    众发娱乐城| 澳门百家乐上下限| 娱乐城源码| 百家乐技巧娱乐博彩| 保山市| 百家乐注册送彩金平台| 大玩家百家乐官网现金网| 百家乐群到shozo网| 百家乐官网微笑打法| 大发888娱乐场手机版| 做生意忌讳什么颜色| 新宁县| 新梦想百家乐的玩法技巧和规则| 破战百家乐官网的玩法技巧和规则| 8大胜| 博彩百家乐带连线走势图| 视频百家乐官网是真是假| 大发棋牌游戏| 墓地附近做生意风水| 金坛市| 百家乐影院| 百家乐无敌直缆| 澳门百家乐官网技巧| 大发888赌场网址| 澳门百家乐网上直赌| 免佣百家乐官网规则| 大赢家网上娱乐| 澳门百家乐有赢钱的吗| 百家乐官网知敌便能制胜| 雁荡棋牌游戏| 网上玩百家乐游戏有人挣到钱了吗 | 百家乐模拟分析程序| 百家乐官网开线| 百博亚洲| 大发888中文下载| 百家乐清零| 金字塔百家乐官网的玩法技巧和规则 | 肥东县| 大发888游戏 平台| 真人百家乐皇冠网| 百家乐官网的巧门|