両眼ステレオマッチング入門 [1] (理論)

参考記事

1.両眼視入門
2.学習メモ - 両眼立体視入門
3.ステレオマッチングアルゴリズムの原理と応用 - Obi Zhongguang
4.両眼ステレオマッチング - Jiang Pei Vision
5.ステレオマッチングの理論と実践 (解答編) (12) :00 長編映画~)
6.両眼ステレオマッチングのマッチングコスト計算
7. Birchfield and Tomasi 法 (BT 法) のまとめ
8.ウィンドウコスト計算の視差と NCC 視差マッチングの実装
9.ステレオマッチングのコスト集計フィルター
10 [アルゴリズム理論 ] Classic AD-Census: (2) クロスドメインコスト集計
11.ステレオマッチングの後続処理: 左右検出 + オクルージョンフィリング + メディアンフィルター
12.はじめに | ステレオビジョン (4) コスト計算とステレオマッチングの計算 Aggregation_Sweet-愛する小北のブログ-CSDN ブログ_立体マッチングコスト集計


この記事の github ダウンロード アドレス (Web ページには、このドキュメントに基づいていくつかのコンテンツが追加されています。Web ページを読むことをお勧めします): lijyhh/Study-notes/Machinevision/
Original video PPT ネットワーク ディスクのダウンロード アドレス:

链接:https://pan.baidu.com/s/1xJth7ZzTITdsaLbzu4EQbA 
提取码:kypa

ここに画像の説明を挿入

これから始められる方は参考文献 3 を先に読んでいただくことをお勧めします。非常に詳しくて分かりやすいです。この記事は主にこの講座でメモした内容をベースにしていますが、いくつか追加したことがあります。参考4の動画は非常に簡単ですが、一般的なことが多く、基本的にこの記事の内容をまとめさせていただきました。
参考資料5は、基本的には資料3と同様の内容でございますが、焦点が異なりまして、若干の箇所を追加させていただいております。参考文献 5 は実戦について書かれていますが、理論に関する内容ですので、3 と 5 のどちらか一方だけを読むことをお勧めします。
他のすべての資料はブログ投稿を参照しています。

著作権に関する声明: この記事は学習のみを目的としています。侵害がある場合は、ご連絡ください。
注:この記事の内容は、インターネット上にあるいくつかの教材を要約したものです。質問がある場合は、議論して修正してください。

1 固有名詞

両眼立体視: 両眼立体視

エピポーラ (極線) 幾何学: エピポーラ幾何学
ここに画像の説明を挿入

ベースライン (ベースライン): 直線 Oc-Oc' がベースラインです。
エピポーラペンシル: 軸がベースラインである平面ビーム。
エピポーラ面: ベースラインを含む任意の面はエピポーラ面と呼ばれます。
エピポール: カメラのベースラインと各画像の交点。たとえば、上の図の点 e と e' です。
エピポーラ線: エピポーラ面と画像の間の交線。たとえば、上の図の線 l と l' です。
5 点同一平面上: 点 x、x'、カメラ中心 Oc Oc'、空間点 X は 5 点同一平面上です。
エピポーラ制約: 2 つの極線上の点間の対応関係。
説明: 直線 l は点 x' に対応するエピポーラ線、直線 l' は点 x に対応するエピポーラ線です。エピポーラ制約は、点 x' が x に対応するエピポーラ ライン l' 上になければならず、点 x が x' に対応するエピポーラ ライン l 上になければならないことを意味します。

ステレオマッチング:補正が完了した後、対応付けとも呼ばれます。ステレオマッチング ステレオマッチング
直観的に言えば、左右の画像から現実の同じ点に対応する点を見つけ、その2点間の視差により現実のその点の奥行き情報を得ることができる。

マッチングコスト: 2 つの写真から同じ点を見つけることなので、2 つの点の類似性を判断する必要があるため、類似性の記述が必要です。マッチングコスト マッチングコスト; ただし、画像内のピクセル間に接続が必要なため、1 点だけから開始するのは不合理であり、前のコストを最適化するにはピクセル間の相関を考慮する必要があります。

視差: 下の図で |XR - XT| を見つけます。
ここに画像の説明を挿入

モーションリカバリ構造:Structure from Motion、SfM

DTOFとITOFの違い
DTOF: 光パルスの発光時間と反射時間を直接測定し、光の飛行時間を求める; 長距離測距精度が高く、光による干渉が少ない; 高コストで解像度が低い ITOF: 変調された光を放射する
, 発信した変調光と受光した変調光の位相差を利用して距離と深さの情報を計算できますが、低コスト、近距離での高精度、精度と測定範囲を同時に実現することはできません。

SLAM は Simultaneous localization and Mapping の略で、「同期した測位とマッピング」を意味し、主にロボットが未知の環境で移動する際の測位と地図構築の問題を解決するために使用されます。

2 両眼視の基礎

序章:ステレオ マッチングでは、既知の外部パラメーターを持つカメラを使用して、エピポーラ制約に従って実空間内で同じ名前の点を見つけ、この空間内の点の深さを推定します。

双眼カメラの場合、通常、ステレオ補正によって 2 つの非共面カメラが同じ平面上に揃うように調整します。つまり、2 つの補助画像の各ラインが確実に一致するように、2 台のカメラの撮像面を同じ平面に調整します。対応しています。これにより、2 次元の検索問題が 1 次元の検索問題に変わります。したがって、一致関係を検索するときは、2 つの画像の同じ線上で検索するだけで済み、同時に、深度は視差を解決する問題に変換できます。次に、2 つの画像上の同じ点の横軸の差を解くことによって、実空間におけるこの点の深さが決定されます。

1 ピンホールカメラモデル

3D から 2D への投影は決定論的です。
ここに画像の説明を挿入

画像内の 2D ピクセル座標からは、1 つの光線のみを決定できます。したがって、一般的な 3D 再構成は画像では実現できません。
ここに画像の説明を挿入

2 両眼ランデブー

2 つの画像内の同じ名前の点のペアに従って、2 つの光線を決定できます。それらの交点から、ターゲット点の 3 次元座標を決定できます。
ここに画像の説明を挿入

3 ステレオ測定の基礎: 三角測量

視差: 視差。エピポーラ ラインが修正された後、同じ名前の点が同じ行に位置し、行座標は同じで、列座標のずれのみが存在します。これを視差と呼びます。任意のビューのピクセル座標と視差を通じて、別のビュー内の同じ名前の点を計算できます。d=XR-XT。XRはレフトビューの横軸、XTはライトビューの横軸、すなわち視差=レフトビュー−ライトビューの横軸である。
画素ごとの視差値を格納した画像を視差マップと呼びます。ピクセル単位の視差マップ
をベースラインおよびカメラの組み込み関数と組み合わせて、深度マップを計算できます。視差と奥行きは
1 対 1 の関係にあります。
ここに画像の説明を挿入
ここに画像の説明を挿入
dは視差、Zは奥行き、Tは機械長です。
したがって、双眼システムでピクセル点を与えるだけでよく、別の画像で座標を見つけることができれば、視差値に従って 3D シーンの構造を復元できます。対応点を見つけるプロセスがステレオ マッチングです。
ここに画像の説明を挿入
画像は離散化された視差と深度平面を示しています。視差間の間隔は 1 ピクセルです

深度値が大きいほど、視差値は小さくなります。
深度値が大きいほど、同じ視差範囲であっても、対応する深度範囲は大きくなります。
したがって、一部のアルゴリズムはカメラから遠ざかるほど、深度偏差が大きくなります。誤差が大きいほど、空間精度が高くなります。

4 極の制約

ここに画像の説明を挿入

画像全体で対応する点を無目的に検索するのではなく (つまり、2D 検索ではありません)、エピポーラ制約を使用して対応するエピポーラ ライン上で 1 次元の検索を行います。
特定のエピポーラ制約については、上記の説明を参照してください。

5 極線補正/ステレオ補正

マッチング時の検索を容易にするために、最初にエピポーラ補正を実行する必要があります(もともとエピポーラ線は水平ではありませんが、彼にとってはより水平です。検索するときは、水平線とY方向のみを検索する必要があります)動かない)。
ここに画像の説明を挿入

  • 左右のカメラの X 軸をベースラインと平行にする
  • カメラの光軸はベースラインに対して垂直です
  • 左右のカメラの焦点距離を同じにする
    ここに画像の説明を挿入

6 ステレオマッチングの難しさ

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
古典的な仮定:
(1) ウィンドウ内のピクセル視差は同じ
ここに画像の説明を挿入

(2) ピクセル p の視差は、その隣接ピクセルにのみ関係します (マルコフ特性)
ここに画像の説明を挿入
ここに画像の説明を挿入

(3) 同系色の画素は視差が似ている
ここに画像の説明を挿入

(4) 視差の不連続境界に色差や明るさの差がある
ここに画像の説明を挿入

7 ステレオマッチング方式の分類

ここに画像の説明を挿入

ダイレクト ブロック マッチングの問題点: 冗長な計算が存在します。
ここに画像の説明を挿入

8 ステレオマッチング処理

4 つのステップ
ここに画像の説明を挿入
コスト集計は 3D コスト空間で行われます。

  • コスト計算は、同じ名前を持つ 2 つのピクセルの無関連性を測定することです。2 つのピクセルが無関係であればあるほど、コストは高くなります。逆も同様です。コスト計算の目的は、対応する同じ名前のポイントを見つけることです。最小限のコストで。コスト計算では通常、AD などの明るさの比較に関連するいくつかの関数が提案されます。特定の相関関係を反映できる限り、精度が高すぎる必要はありません。
  • グローバル アルゴリズムには 3 つのステップしかなく、コストの集計はありません。
    ここに画像の説明を挿入
  • コスト集約: フィールド内のピクセルのコストを考慮し、それらを何らかの方法で中央に集約し (中央に寄与し)、最後に中央ピクセルの集約コストを計算します。つまり、このピクセルのコストだけでなく、周囲のピクセルのコストも考慮されて、より堅牢になります。
  • 勝者総取り:最小マッチングコスト値をカウントし、最小マッチングコスト値に対応する視差値を真の値として出力する。
  • BP/GC/DP/CO はすべて、第 2 段階のコスト集計を行わないグローバル アルゴリズムです。価格の集計が行われている場合、実際の価格は通常、勝者総取りによって特定できます。
    ここに画像の説明を挿入
    図は初期コスト計算結果、コスト集計結果、視差最適化結果

勉強するときは古典的な記事から入力してください。

セミグローバル マッチング [1]、最も古典的で広く使用されているアルゴリズム
AD-Census [2]、優れた効果と高速性、Intel RealSense D400
PatchMatch [3]、
ティルト ウィンドウ モデルの古典的な MC-CNN [4] 、学習に基づいた先駆的な研究
[1] Heiko Hirschmüller. Stereo Processing by Semiglobal Matching and Mutual Information[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 30. [2] Mei X 、Sun X 、Zhou M
、 et al. グラフィックス ハードウェアでの正確なステレオ マッチング システムの構築について[C]// コンピューター ビジョン ワークショップに関する IEEE 国際会議. IEEE、2012. [3] Bleyer M 、Rhemann C 、Rother C . PatchMatch Stereo - 傾斜サポートによるステレオ
マッチングWindows [C]// British Machine Vision Conference 2011. 2011.
[4] Žbontar, Jure, Lecun Y . 画像パッチを比較する畳み込みニューラル ネットワークのトレーニングによるステレオ マッチング[J]. 2015.

1 マッチングコスト計算

ステレオ マッチングの最初のステップ - AD、AD-cencus などのマッチング コスト計算。このステップでは 2 つのピクセル間の類似性を記述します。簡単なアイデアは 2 点のピクセル値の差を直接計算することですが、この単純なアルゴリズムは 1 つの点のみを考慮するため、ノイズの影響を受けやすいことがよくあります。最適化 この方法は、ウィンドウを配置し、その中の点のピクセル差の合計を計算します。ただし、ピクセル値に基づくこのアルゴリズムは光や歪みに非常に敏感であり、特定のエラーが発生します。したがって、国勢調査アルゴリズムやランク変換など、ピクセル値に基づいていないアルゴリズムがいくつかあります。センサス法はピクセル値ではなくポイント間の関係に基づいているため、光歪み防止、高効率、安定性という利点があります。

これらの方法を通じて、コスト行列 C (DSI、視差空間画像、視差空間画像に一時的に変換されます。これは、視差空間における左右の立体ビューのマッチング コストを節約する補助画像です) を取得できます。行列 C には、各視差の下で視差範囲内のピクセルのマッチング コスト値が格納されます。

従来の方法は一般に、画像のグレースケール情報を使用して判断し、さらに畳み込みニューラルネットワークの方法を使用して、画像ブロック間の類似性、つまり、完全な画像処理後の左ビューと右ビューの入力画像ブロックの類似性を計算します。値共通特徴抽出 これら 2 つの画像ブロックのネットワークを結合し、最終的に類似度を出力します。
ここに画像の説明を挿入
コスト関数は、左右の画像内の 2 つのピクセル間のマッチング コスト (コスト、つまり類似度や一致度) を計算するために使用されます。
コストが大きいほど、2つの画素が対応点である可能性は低くなります。

1 コスト関数
  1. AD (絶対差) コスト: 2 つのピクセル値の減算。
    AD アルゴリズムは、マッチング コスト計算における最も単純なアルゴリズムの 1 つです。その主なアイデアは、左右のカメラの 2 点のグレー値を継続的に比較することです。まず、左カメラの点を固定し、次に左カメラの点をトラバースします。右のカメラでそれらを継続的に比較します。前のグレー レベル間の差、つまりグレー レベルの差がマッチング コストとなります。数式は次のとおりです。
    ここに画像の説明を挿入
    ここで、p と q はそれぞれ左画像と右画像の 2 点で、IL() は左画像のグレー値を表し、同様に IR() は右画像のグレー値を表します。上の式はグレースケール画像のマッチング コストです。カラー画像の場合、AD アルゴリズムのコストを計算する式は次のようになります。つまり、左右の 3 つの色成分の差の絶対値です
    ここに画像の説明を挿入
    。ビューピクセルは平均化されます。
    AD アルゴリズムは、単一ピクセル ポイントによって計算されるマッチング コストに基づいており、不均一な照明や画像ノイズの影響を大きく受けますが、テクスチャが豊富な領域ではより優れたマッチング効果があります。
    ここに画像の説明を挿入

BT (Birchfield と Tomasi の方法) のコストもピクセルのグレー値の差の絶対値ですが、違いは BT がサブピクセルのグレー情報を利用することです。
BT コスト: ピクセルのサンプリング誤差を考慮すると、AD よりも信頼性が高くなります。
ここに画像の説明を挿入
上の図は、画像のマッチングシーケンスを示したもので、中央のシーケンスは連続していますが、左側と右側は中央と連続していないことがわかります。サンプリング手法を使用して画像内のピクセルのコストを計算する場合、中央セクションのサンプリング コストは低く安定していると推測できます。また、左右に連続していないピクセルをサンプリングすると、より大きなコストが発生します。
ただし、図に示すケースでは、不連続ピクセルの間隔はわずか数ピクセルであり、それほど大きくはありません。したがって、この非連続な状況に対処するときに、低コストを維持できるのであれば、それは改善したいことです。
グラフィックピクセルの状況は、オブジェクトが実際に連続している場合、または傾斜がある場合によく発生します。
特定の原則を表示: Birchfield and Tomasi メソッド (BT メソッド) の概要

  1. AD+勾配。以下の論文に記載されています。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  2. 国勢調査の
    利点: 計算が簡単、グレースケールの変更に強い。

国勢調査変換は、ピクセルのグレー レベルの相対値を照合用の類似性尺度として使用します。変換全体は単純なデータ比較、累積、XOR などであり、乗算や平方根などの複雑な演算は必要ありません。国勢調査変換では、まずマッチング ウィンドウ内の特定のピクセルを中心とする国勢調査長方形変換ウィンドウを取得し、次に長方形変換ウィンドウ内の各隣接ピクセルのグレー値を中心ピクセルのグレー値と比較します。ピクセル値が中央ピクセルのグレー値より小さい場合、ビット列の対応する位置の値は 1 として記録され、それ以外の場合は 0 として記録されます。その具体的な定義は次のとおりです。
マッチング ウィンドウ (i, j) のピクセルが中心ピクセルとみなされ、サイズが n * n のセンサス変換ウィンドウが取得されると仮定すると、対応するセンサス変換 IC(i, j) はビット列の形式で取得できます。 表現:
ここに画像の説明を挿入
ここに画像の説明を挿入
パラメータ bk の値は、次の式で表すことができます:
ここに画像の説明を挿入
このうち、I(i, j) は、i 行 j 列のピクセルのグレー値です画像の [k/n] は k が n で割り切れることを意味し、k mod n は k を n で割った法を取ることを意味します。
図 2-3 に示すように、マッチング ウィンドウのサイズは 7*7 ピクセルで、その領域にはサイズが 5*5 ピクセルの長方形の変換ウィンドウが取られ、中央ピクセルのグレー値は 120 です。各隣接ピクセルのグレー値は、図に示すような値になります。国勢調査変換後のビット文字列は 110100110101111001001101 です。
ここに画像の説明を挿入

Census 変換後にステレオマッチングを実行する場合、視差探索範囲内で視差値ごとに、通常、次の式に従って、参照画像の Census 変換ウィンドウと一致画像の Census 変換ウィンドウ間のハミング距離を計算する必要があります。 (実際にはXORハミング距離、つまり 2 つの国勢調査ビット列の異なるビットの数を取得できます。マッチングウィンドウごとにウィンドウのハミング距離和を計算し、視差探索範囲内でハミング距離和が最小となるマッチングウィンドウのインデックス番号をマッチング点の視差とします。
ここに画像の説明を挿入
このうち、I1(i, j)、I2(i+d, j) はそれぞれ参照画像 Census 変換ウィンドウと一致画像 Census 変換ウィンドウのビット列を表し、d は視差探索範囲、dmin ≤ d ≤ dmax (dmin は最小視差、dmax は最大視差)。i と j は、それぞれ参照画像のセンサス変換ウィンドウの中心ピクセルの画像の横座標と縦座標です。
ここに画像の説明を挿入

  1. NCC (正規化相互相関、正規化相互相関) は
    一般的に使用されるコスト関数で、最初に3 3 個の画像ブロックを 1 9 ベクトルに変換し、ベクトルの平均値を計算し、次に係数の正規化を計算し、次に内積を計算します。
    特徴: 画像の明るさの不変から線形変化
    物理的意味: 2 つのベクトル間の角度のコサイン値 元の
    ここに画像の説明を挿入
    画像内の任意のピクセル (px、py) について、マッチング ウィンドウとして n×n の近傍を構築します。次に、注目ピクセル位置 (px+d, py) についても、サイズ n×n のマッチング ウィンドウを構築し、2 つのウィンドウ間の類似度を測定します (d には値の範囲があることに注意してください)。2 つの画像の場合、NCC 計算の前に画像処理が必要です。つまり、2 フレームの画像が水平位置に補正されます。つまり、光学中心は同じ水平線上にあり、このときエピポーラ線は水平になります。それ以外の場合、マッチングプロセスは傾斜したエピポーラ方向でのみ実行でき、より多くのコンピューティングリソースを消費します。
    ここに画像の説明を挿入
    上記と同じですが、形式が異なるだけです。
    NCC(p, d) で得られる値の範囲は [−1,1] となります。
    Wp は一致するウィンドウ、I1(x, y) は元の画像のピクセル値、I1 ̄(px, py) は元のウィンドウ内のピクセルの平均値、I2(x+d, y) は次のようになります。対象画像上の原画像の対応点 その位置を x 方向に d オフセットした後の画素値 I2 ̄(px+d, py) が対象画像マッチングウィンドウの画素平均値です。
    NCC=−1の場合、2つのマッチングウィンドウ間の相関が全くないことを意味し、逆に、NCC=1の場合、2つのマッチングウィンドウ間の相関が非常に高いことを意味する。

  2. AD+ 国勢調査
    ここに画像の説明を挿入

AD コスト関数は実装が簡単ですが、明るさの違いの影響を受けやすくなります。
国勢調査変換では、ペア間の色の一貫性は必要ありません。したがって、放射線の違いに対してより堅牢です。

AD-Cencus は AD と Census を組み合わせたもので、2 つの方法が補完的な役割を果たすことができます。繰り返しテクスチャに対する Cencus アルゴリズムの効果は良くありませんが、AD アルゴリズムは単一ピクセルに基づいているため、繰り返しテクスチャに対する Cencus アルゴリズムの困難な問題をある程度軽減できます。ただし、2 つのアルゴリズムを組み合わせると、アルゴリズム結果のスケールが不一致になるため、正規化する必要があるという問題があります。ADの結果は輝度差であり、範囲は[0,255]、Censusはビット列に対応する異なるビット値の数で、範囲は[0,N]です(Nはビット列の数に等しい)ビット列内のビット)。したがって、2 つの結果を同じ範囲間隔に正規化する必要があります。AD-Census で採用されている方法は、値間隔が [0,1] の自然指数関数です。ここで、c はコスト値、λ
ここに画像の説明を挿入
は制御パラメータ。c と λ が両方とも正の値の場合、この関数の値の範囲は [0,1] になります。そして、c、つまりコスト値が大きいほど関数値も大きくなります。したがって、この関数により、任意のコスト値を [0,1] の範囲に正規化できます。
最後に、AD-Census のコスト計算式は次のとおりです。2
ここに画像の説明を挿入
つの結果が正規化された後の、最終的な結果の範囲は [0,2] になります。
6.
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
CNN のコスト空間は CNN によって計算されますが、集計には従来の方法が使用されるため、エンドツーエンドの方法ではありません。
ここに画像の説明を挿入

  1. ランク変換
    ランク変換は、マッチングウィンドウ内の特定のピクセルを中心とするランク長方形変換ウィンドウを取得し、ランク長方形変換ウィンドウ内のピクセルのグレー値がグレー値より小さいピクセル R§ の数をカウントします。中心ピクセルの。その具体的な定義は次のとおりです。I
    (x, y) はピクセル P(x, y) のグレー値を表し、N はピクセル P(x, y) を中心とする長方形変換ウィンドウ内のピクセルのセットを表します。マッチング ウィンドウの場合、R§ は、グレー値が I(x, y) より小さいピクセルを含む長方形変換ウィンドウ N§ 内の要素の数を表します。このとき、画素P(x,y)のRank変換は次の式で表すことができる。
    ここに画像の説明を挿入

ランク変換の具体的な例を示します。マッチング ウィンドウのサイズは 77ピクセル、サイズ 55 ピクセルの長方形の変換ウィンドウがその領域に取られ、中央ピクセルのグレー値は 120、グレー値は各隣接ピクセルのグレースケール値を図に示します。長方形変換ウィンドウ内の各近傍ピクセルのグレー値が中心ピクセルのグレー値と比較され、グレー値が中心ピクセルのグレー値より小さいピクセルの数は 14 であるため、Rank の値は変換 R§=14 。ステレオマッチングを行う場合は、視差探索範囲内で、視差値ごとにマッチングウィンドウ内のマッチング対象点を除く全ピクセルのRank変換後の値を取得し、ローカルマッチングを行う必要があります。 -ベースの相互相関ステレオ マッチして視差値を見つけます。
ここに画像の説明を挿入
要約すると、Rank 変換であろうと Census 変換であろうと、ピクセルのグレー値が原因で発生したとしても、変換ウィンドウ内の隣接ピクセルのアンダースケール値と中央ピクセルのグレー値との比較のみに依存します。大規模なスケールでは、Rank 変換と Census 変換の対応する値は 1 だけ変化します。したがって、ノンパラメトリック変換は、画像に強いノイズや不利な照明条件がある場合のステレオ マッチングに非常に効果的です。また、Rank変換やCensus変換はハードウェアによる実現が容易であり、工学技術の分野で広く用いられている。

2コストスペースコストボリューム

ADを例にコストスペースを作成する

ここに画像の説明を挿入
ここに画像の説明を挿入
コスト空間とスライディング ウィンドウの関係
ここに画像の説明を挿入
ここに画像の説明を挿入
コスト空間で一部のアルゴリズムを設計すると、冗長な計算を減らすことができます。

2 コストの集計

コスト計算ステップは局所的な相関のみを考慮し、ノイズに非常に敏感であるため、最適な視差の計算に直接使用することはできません。そのため、SGM アルゴリズムはコスト集計ステップを使用して、集計されたコスト値が相互間の相関をより正確に反映します。ピクセルのプロパティ (図 1 を参照) コスト集計を実行する必要があるのは、ローカル マッチング アルゴリズムとセミグローバル マッチング アルゴリズム(SGM)だけであり、グローバル マッチング アルゴリズムでは必要ありません。特定の視差値の下での各ピクセルの新しいコスト値は、同じ視差値または近くの視差値の下で隣接するピクセルのコスト値に従って再計算され、行列 S で表される新しい DSI が取得されます。これは、同じ深度にあるピクセルは同じ視差値を持つという事前知識に基づいています。

コストの集計は、差の伝播として理解することもできます。これにより、SNR の高いエリアの不均衡を SNR の低いエリアに伝播できるようになり、すべてのポイントのコストが実際の相関関係をより適切に表すことができます。集約された新たなコスト値は、マッチングコスト空間Cと同じサイズの集約コスト空間Sに格納され、要素位置が対応付けられる。
ここに画像の説明を挿入
一般的に使用される方法: SGM アルゴリズムにおける走査線法、動的計画法、パス集約法。

1 ボックス フィルタリング (実際には平均値フィルタ)

上記の方法のコスト空間は非常にノイズが多く、視差平面上でコスト空間をフィルタリングする必要があります
ここに画像の説明を挿入
ここに画像の説明を挿入
ボックス フィルタリングの主な機能は、指定されたスライディング ウィンドウ サイズの下で各ウィンドウのピクセル値を加算して合計することです、平均フィルタリングを実行する高速アルゴリズム。初期化プロセスは次のとおりです。

  1. 幅と高さが (M, N) の画像がある場合、図の紫色の長方形で示すように、取得する長方形テンプレートの幅と高さ (m, n) を決定します。図中の黒い四角はピクセルを表し、赤い四角は仮想ピクセルです。
  2. サイズ M の配列を開きます。これは buff として記録され、赤い四角で表される計算プロセスの中間変数を格納するために使用されます。
  3. 長方形テンプレート (紫) を左上隅 (0, 0) から右にピクセル単位でスライドさせます。行の終端に達すると、長方形は次の行の先頭 (0, 1) に移動し、新しい位置に移動するたびに、長方形内のピクセルの合計を計算し、配列 A に保存します。例として位置 (0, 0) を取り上げます。最初に緑色の四角形のピクセルの各列を合計し、その結果をバフ (赤色の四角形) に配置します。次に、青色の四角形内のピクセルを合計すると、結果が紫色になります。 feature 長方形内のピクセルの合計が配列 A に格納され、最初の合計演算が完了します。
  4. 紫色の四角形が右に移動するたびに、対応する青い四角形のピクセル合計が実際に計算されます。この時点では、最後の合計結果から青い四角形の最初の赤いブロックとその右側 A を引くだけで済みます。赤いブロックは現在位置の合計であり、次の式で表されます。 sum[i]=sum[i−1]−buff[x−1]+buff[x+m−1]sum[i]=sum[i − 1]−buff[x−1]+buff[x+m−1]
  5. 紫色の四角形が行の最後に移動したら、バフを更新する必要があります。緑色の長方形全体が 1 ピクセルずつ下に移動するため、buff[i] ごとに、新しい入力ピクセルを追加し、出力ピクセルを減算する必要があり、その後、新しい計算行が開始されます。
    ここに画像の説明を挿入
2 バイラテラルフィルタ バイラテラルフィルタリング

ここに画像の説明を挿入
ここに画像の説明を挿入
エッジを保持する機能により、ウィンドウを大きく開けることができ、マッチングがより安定します
ここに画像の説明を挿入
バイラテラルフィルター(バイラテラルフィルター)は、ウィンドウ内のピクセルの距離と明るさを重み付けするものです。バイラテラルフィルタリングは、エッジを保持してノイズを除去できるフィルタであり、このようなノイズ除去効果が得られるのは、フィルタが2つの機能から構成されているためです。1 つは幾何学的空間距離によりフィルタ係数を決定する機能、もう 1 つは画素差分によりフィルタ係数を決定する機能です。
バイラテラル フィルタの出力 (i, j) 位置の画素値 g は、近傍の画素値 f (k、l は近傍の画素位置を表す) の重み付けされた組み合わせ、つまり重み係数 w(i, j, k, l) は、
ここに画像の説明を挿入
ドメイン カーネル d とレンジ カーネル r の積に依存します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3 クロスベースのローカルステレオマッチング適応形状

クロスベース ローカル フィルタリング
ここに画像の説明を挿入
クロスベース コスト集計 (CBCA) は、類似した色の隣接するピクセルが類似した視差値を持つという前提に基づいています。集約に参加するピクセルと集約されるピクセルの視差値が同じである場合、集約の信頼性は高くなります。これに基づいて、CBCA の目的は、ピクセル p の周囲で色が似ているピクセルを見つけ、それらのコスト値を特定のルールで p のコストに集計することです。
十字の意味は、図に示すように、各ピクセルに十字のアームがあり、アーム上のすべてのピクセルの色 (明るさ) 値がピクセルの色 (明るさ) 値と似ていることです。
ここに画像の説明を挿入
この図から、クロスアームの構築に関する 2 つのルールがわかります。

  1. 画素の十字腕は画素を中心に左右上下に伸び、色(明るさ)が画素と大きく異なる場合に止まります。
  2. クロスアームも無制限に伸ばすことはできず、最大長に制限する必要があります。
    つまり、色と長さは腕の長さを制限する 2 つの要素であり、左腕を伸ばす場合を例に挙げます。
  3. Dc(pl, p) < τ、Dc(pl, p) は pl と p の色差、τ は設定された閾値です。色差は、
    ここに画像の説明を挿入
    3 つの成分の差の最大値として定義されます。
  4. Ds(pl, p) < L、Ds(pl, p) は pl と p の空間長、L は設定された閾値です。空間長は、ピクセル単位の Ds(pl, p) = |pl - p| として定義されます。
    右腕、上腕、下腕の伸長ルールは左腕と同じです。各ピクセルのクロスアームが正常に構築されると、ピクセルのサポート領域 (サポート領域) を構築できます。構築方法は次のとおりです: ピクセル p のサポート領域は、その垂直アーム上のすべてのピクセルの水平アームであり
    、図に示すように、
    ここに画像の説明を挿入
    q は p の垂直アーム上のピクセルであり、p のサポート領域は q のすべての水平アーム (p 自体を含む) の結合です。
4 セミグローバルマッチング(SGM)

ここに画像の説明を挿入

Cp、Dp はコスト空間内の特定の点です。P1、P2は外部入力定数、Tは指示関数です。
ここに画像の説明を挿入

特定の方向 (たとえば、左から右) のみを考慮すると、パス コスト Lr が存在します。

3 格差の計算

マッチングコストが得られた後、最小のマッチングコストを有する視差位置を見つけることによって現在の視差を決定することができるが、これは一般に画像ノイズの影響を受ける。したがって、初期マッチングコストを調整するにはコスト集計が必要です。

  • 勝者総取り(WTA)
    ここに画像の説明を挿入

  • 視差伝播 (PatchMatch) は、
    完全なコスト空間を構築しません。
    ここに画像の説明を挿入

4 視差最適化/後処理

  • 左右の一貫性検出 (LRC)
  • 最小/2番目の最小コスト
  • スペックルフィルター
  • サブピクセル補間
  • メディアンフィルター
  • 空隙充填
  • 加重メディアンフィルター
1 左右の一貫性検出 (LRC)

左から右に照合し、次に右から左に照合して、重複しているかどうか、またはしきい値内にあるかどうかを確認します。
ここに画像の説明を挿入
LRC チェック (左右の整合性チェック) の機能は、オクルージョン検出 (Occlusion Detection) を実現し、左画像に対応するオクルージョン画像を取得することです。オクルージョン (オクルージョン) は、その名前が示すとおり、1 つの画像にのみ表示され、別の画像には表示されない点のことです。ステレオ マッチング アルゴリズムでは、遮蔽領域に特別な処理を行わずに、単一の画像によって提供される限られた情報から遮蔽点の正しい視差を取得することは不可能です。遮蔽されたポイントは通常、遮蔽された領域/領域として示される連続した領域です。
LRC の具体的な方法: 左右の入力画像に基づいて、左右 2 つの視差マップがそれぞれ取得されます。左の画像の点 p について、取得された視差値は d1 であるため、右の画像の p に対応する点は (p-d1) となるはずで、(p-d1) の視差値は d2 として記録されます。|d1-d2|>しきい値の場合、p は遮蔽点としてマークされます。
図に示すように、左ピクチャの視差マップ、右ピクチャの視差マップ、テディの左ピクチャ、および左ピクチャに対応するバイナリオクルージョンマップが示されている。
ここに画像の説明を挿入
バイナリ オクルージョン イメージが取得され、すべての黒いオクルージョン ポイントに適切な視差値が割り当てられます。左側の画像の場合、オクルージョン ポイントは通常、背景領域と前景領域が交わる場所に存在します。オクルージョンが発生するのは、前景のオフセットが背景よりも大きく、背景が覆われているためです。
具体的な割り当て方法は次のとおりです。オクルージョンされたポイント p について、左右に水平にオクルージョンされていない最初のポイントを見つけます (pl、pr と表示されます)。点pの視差値は、plとprの視差値のうち小さい方に割り当てられる。d§= min (d(pl),d(pr)) (遮蔽されたピクセルには背景の深度があります)。
図は左図の視差マップを順に、オクルージョンフィリング後の視差マップです。
ここに画像の説明を挿入
この単純なオクルージョン フィリング方法はオクルージョン領域の割り当てに効果的ですが、初期視差の合理性と精度に大きく依存します。また、動的計画法アルゴリズムと同様の水平方向の縞模様が発生するため、多くの場合、縞模様を除去するために中央値フィルタリングのステップが続きます。この図はメディアン フィルタリングの結果です。
ここに画像の説明を挿入
LRC チェックによってオクルージョン ポイントが検出され、視差が推定され、画像全体に対してメディアン フィルターが実行されるため、結果は大幅に向上します。

2 スペックルフィルター

ノイズポイントを除去するために、視差マップ上で連結領域抽出が実行されます(隣接する2つのピクセルの視差値の差が事前に設定されたしきい値未満の場合、2つのピクセルは同じ領域に属すると見なされます) )。
ここに画像の説明を挿入

3サブピクセル補間

ここに画像の説明を挿入

9 エンドツーエンドの視差計算ネットワーク

ステレオ マッチングには弱いテクスチャやオクルージョンなどの多くの課題があるため、エンドツーエンドのステレオ マッチング ネットワークが利用可能です。主な目的は、人為的に設計された機能を回避して、ステレオ画像のペアから視差を直接生成することであり、ステレオ マッチングの全プロセスは学習によって取得されます。これは主に 2 次元の畳み込みに基づく方法と 3 次元の畳み込みに基づく方法の 2 つのカテゴリに分類されます。
二次元: DispNet (2016)、CRL (2017)、FADNet (2020)
三次元: GCNet (2017)、PSMNet (2018)、GANet (2019)
これらのネットワークには一般的な戦略があります。スケール情報については、テクスチャが弱い領域の場合、検索ウィンドウを拡大する必要があり、周囲の非テクスチャ情報から推測できます。画像フレームが比較的小さい場合、一部の小さな構造については比較的高い再現性が得られます。
これに対応して、深層学習でよく使用される構造はエンコーダー デコーダー構造 (Encoder-Decoder) であり、画像は最初に畳み込みによってダウンサンプリングされ、次にデコンボリューションによってアップサンプリングされます。また、処理のために一緒にアップサンプリングする前の結果は、アップサンプリング中の情報損失を避けるために情報を補足することと同じです。
ここに画像の説明を挿入
ここに画像の説明を挿入

  • Disp-Net (2016) は
    15 年間のオプティカル フロー ネットワーク (flow-net) を再利用しました。オプティカル フローは x 方向と y 方向のオフセットを推定する必要がありますが、ステレオ マッチングは 1 方向のみを推定する必要があります。 、x 方向を推定するだけで済み、コスト空間はありません。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

視差も画像から復元されますが、右ビューと左ビューの一致情報を融合するために関連する演算が使用されます。この演算は、特徴ベクトルの内積でもあります (特徴ベクトルに対応する要素を乗算し、次に合計します)。
ここに画像の説明を挿入

実装プロセス: まず、左側のビューの特定のピクセルが右側のビューの視差範囲内にあると仮定し、次に右側のビューでこの範囲内のすべての固有ベクトルを取得し、左側のビューのピクセルの固有ベクトルとの内積を取得します。範囲が 0 ~ 40 の場合、40 個のスカラーが取得され、これらの 40 個のスカラーがチャネルとしてレフト ビュー フィーチャーに接続され、コンボリューション処理を使用して視差マップが復元されます。
ここに画像の説明を挿入
ここに画像の説明を挿入

  • CRL は
    視差を復元するために 2 つのエンコードおよびデコード構造 (DispFulNet) を使用します。最初の DispFulNet は初期視差マップの推定に使用され、後者の DispFulNet は誤差の推定に使用されます。次に、初期視差マップと誤差を追加して、最終的な視差を取得します。
    ここに画像の説明を挿入
    ここに画像の説明を挿入

●FADネット
ここに画像の説明を挿入
ここに画像の説明を挿入

  • GCネット(2017)
    ここに画像の説明を挿入

ネットワーク構造全体は、特徴抽出、コスト集計、視差回帰の 3 つの部分に分かれています。
4次元のコスト空間を生成し、そのコスト空間を微分して最小値をとる関数を設計したネットワークで実装する。
左ビューと右ビューの特徴マップは、現在想定されている視差に従って右ビューを変換し、左ビューを接合することによって取得されます。つまり、左ビューと右ビューから抽出された特徴チャネルの数が C の場合、コスト空間では 2C チャネルとなり、選択された視差範囲に応じて視差に追加の次元が存在します。
ここに画像の説明を挿入

視差を割り当てるには、視差の最小値を求める従来の方法では導出できないため、長さ×幅×視差となる 3 次元の畳み込みによってコスト空間を 64 チャネルから 1 チャネルに縮小します。最終的なマッチングコストとみなされます。次に、これらのマッチング コストを確率に変換し、視差範囲の期待値を計算し、期待値を計算することで最終的な視差値を取得します。これにより、微分不可能な問題 (つまり、ネットワークをトレーニングできない) が解決され、サブピクセル精度で視差を推定することもできます。
ここに画像の説明を挿入

  • iRestNet (2018) は
    ネットワークに後処理を追加しました。
  • PSM-Net (2018) は
    GC-Net を改良したものです。特徴抽出部分に SPP モジュールが追加されています。つまり、異なるサイズのプーリング層を選択することで複数のスケールの情報が取得され、出力特徴として連結されます。
    ここに画像の説明を挿入

さらに、スタック砂時計構造は、3 次元の畳み込みがコスト空間を処理するときに使用されます。これは、複数の符号化および復号構造を積み重ねることによって形成され、残りの接続を通じて前から後ろに情報を送信します。
ここに画像の説明を挿入
ここに画像の説明を挿入

この方法の利点は、各砂時計の出力がそれぞれ望ましい結果であり、砂時計を積み重ねる構造が既存の結果をさらに最適化することに相当することです。リレー監視の戦略はトレーニング中に使用できます。つまり、損失関数が各サブネットワークの出力に対して計算され、最終的な損失として加算されます。この方法により、モデルの収束と枝刈りを高速化できます (枝刈りとは、後者の特定の部分のみをトレーニング中ではなくトレーニング後に削除できることを意味します)。
ここに画像の説明を挿入

・ステレオネット(2018)

  • GA-Net (2019)
    では、3D 畳み込みコスト集計プロセスに 2 つの新しい構造が導入されています。どちらも、セミグローバル コスト集計とローカル コスト集計という従来の方法に基づく改良です。これら 2 つの層のパラメータは、上位サブネットワークを通じてフィーチャから抽出されます。

  • エッジステレオ(2020)

10 ステレオビジョン方式評価サイト

Middlebury Stereo 3.0高解像度のいくつかの写真
Kitti 2012/2015自動操縦、屋外シーン

SceneFlow合成データセット、本物ではありません
ISPRS Aerospace
● ETH3D
● Robust Vision Challenge

11 ステレオマッチングアルゴリズムの適用

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_42759162/article/details/123079032