【論文精読2】MVSNetシリーズ論文詳細解説 - RMVSNet

R-MVSNet、論文の正式名:「Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference」、CVPR 2019 (CCF A) は
MVSNet に基づいていくつかの改良を加えました。解決すべき主な問題はコストです。ボディ正則化 (ボリューム調整のプロセスにおけるコスト) では、過剰なメモリの問題に 3 つの変更が加えられました:
(1) コストボディ正則化ステップでは、3D CNN の代わりにシリアル化された GRU が使用されました。
(2) ソフト argmin は Softmax に置き換えられました。 、と元の回帰問題を多分類問題に変更して、クロスエントロピー損失を計算します。
(3) サブピクセル精度で深度推定を生成するために、初期ネットワークで得られた深度マップを変分法で改良します。深度マップ (変分深度マップ改良)


MVSNet は、このシリーズの論文の基礎です。最初にこれらの最適化されたモデルを理解することをお勧めします。詳細については、[論文精読 1] MVSNet シリーズ論文の詳細説明 - MVSNet を参照してください。

1. 問題の導入

コスト ボリューム ベースの MVS 再構築手法の主な制限の 1 つはスケーラビリティです。つまり、コスト ボリューム正則化のメモリ消費コストにより、MVS の学習を高解像度シーンに適用することが困難になります。

MVS (マルチビュー ステレオ) は、重複する特徴と既知の内部パラメータと外部パラメータを持つ複数の画像の場合の 3 次元オブジェクトまたはシーンの再構成を指します。
このタイプの問題では、通常、複数の画像の一致する特徴からコスト ボリュームが構築され、深度マップを推測するために確率ボリュームに正規化されます。従来の方法でもニューラルネットワークベースの学習方法でも、正則化の際にコストボディ全体を入力として使用すると、規模の増加に伴いメモリ消費量が増加し、3 次レベルが増加します。いくつかの学習方法が試みられてきました。

従来の方法では通常、次のようにコスト本体を暗黙的に調整します。

  • ローカル深度の伝播により、深度マップ/点群が繰り返し改良されます。
  • 単純な平面スキャン順序を使用してコスト ボリュームを正規化する
  • ディープな勝者総取りによる 2D 空間コスト集計

学習ベースの方法では、次の 2 つの試みが行われています。

  • たとえば、OctNet と O-CNN は 3D データのスパース性を利用して 3D CNN にオクツリー構造を導入しますが、解像度 <512^3 ボクセルの再構築に依然として制限されています。
  • Surface Net や Deep MVS などは、MVS の再構築に設計された分割統治戦略を適用していますが、グローバルなコンテキスト情報の損失と速度の低下という問題に直面しています。

2. モデル構造

この記事の核となるアイデアは、GRU (RNN ニューラル ネットワークのバリアント) を使用して、複数の深さの通常の正則化プロセスを一度に深さごとに変換し、前の深さの出力 (つまり、深さスケールはサイクル (ニューラル ネットワークの時間スケール) とみなされ、元の D 深さサンプルに必要なメモリ T が T/D に削減されます (この値は理解を容易にするためのものです)。

R-MVSNet全体モデル

1. 特徴抽出

MVSNetとの整合性

2. 特徴ボリュームの正則化

2.1 機能マップ -> 機能本体

それが図の円Mの処理です。N個のソース画像と参照画像から特徴抽出ネットワークを介して得られたN個の特徴マップを、深度D0に対応するホモグラフィ行列Hを介して変換してN個の特徴体を取得し、これらN個の本の各ページ(特徴体)の分散値を計算します。 (各特徴チャネル)の各特徴点について、最終的に分散値(コスト本体、つまり図のC0)で構成されるブックを取得します。

この部分が理解できない場合は、MVSNetの詳細を参照してください。これは、MVSNet の核となる内容、つまりマイクロホモグラフィー変換です。

2.2 特徴量の正則化

主に正則化部分で使用されるネットワーク構造を図に示しましたが、まずオレンジ色の畳み込みネットワークを使用してチャネル数を32から16に変更し、その後チャネル数を16、4層から3層に変更します。最終的な出力は正則化されたコストマップ(Cost Map)であるが、このときのコストマップ上の各点の値が、その点が現在の深度に属する確率の値を表すと個人的には理解している。
次に、2.1の処理を繰り返してD1の深さのコスト本体を計算し、正則化用のネットワークも入力しますが、このときGRU層に入力されるのはこの深さのコスト本体だけではなく、ただし、上記の D0 の深さの各 GRU 層の出力、つまりリカレント ニューラル ネットワークのアイデアも使用します。

この部分は、コスト ボディの正則化のメモリ消費量を削減するための中心的なステップです。その理由は、ネットワークは、MVSNet のようにすべての深さのコスト ボディを一度に正規化するのではなく、毎回 1 つの深さのコスト ボディのみを正則化するためです。以下の図に示すように、右側の RNN 構造は左側と同等であり、この論文のモデルも同じです。つまり、各メモリ消費量は左側のニューラル ネットワークのトレーニング消費量のみです。

@hourglass を知ってくれてありがとう

2.3 正則化コストマップ -> 確率本体

この部分はMVSNetの2つ目の変更点で、ソフト引数(深さ方向の確率*現在の深さの期待値)とは異なり、各深さのコストマップ(個人の理解上の各点の値)を直接正則化しています。マップは点を表し、現在の深さに属する確率値) を確率本体 P に集約し、P の深さ方向に沿ってソフトマックス、つまり深さ方向に沿って各点の値が 1 である確率を使用します。 Pの

3. 損失​​を計算する

確率体 P と実画像から得られた実確率体 Q、つまり 3 番目の変化点を組み合わせてクロスエントロピー損失を計算します。これにより、元の確率期待値の回帰問題が多分類問題に変わります

実際の確率ボリューム Q は、実際のデプス マップから取得されます。具体的には、デプス マップ上の各ピクセルはデプス値に対応します。デプス マップは D コピー (デプス サンプル数) にコピーされ、各ピクセルはレイヤー上にあります1 をとり、他の層は 0 をとる、つまり、深さ方向の One-Hot 操作です。

続いて、確率体 P について、深さマップ上の各点は深さ方向に D 個のソフトマックス確率値、つまり深さ d の「クラス」に属する確率を持ちますが、実際の確率体 Q は等価です点の深さ「クラス」のラベルが得られるので、それをクロスエントロピー損失の多分類問題に変換すると、式は次のようになります。
損失損失計算式

3. 変分深度マップの改良

論文によると、この部分は次のようになります: 分類定式化に関する 1 つの懸念は、離散化された深度マップ出力です。サブピクセル精度を達成するために、変分深度マップ改良アルゴリズムがセクション 4.2 で提案され、深度マップ出力をさらに改良します。離散化された深度マップ出力、およびサブピクセル精度を達成するために、変分深度マップ改良アルゴリズムが提案されています
実際のところ、この「サブピクセル精度」の理解はまだ少し曖昧ですが、画像のサブピクセル点にも対応する奥行き値があるということなのでしょうか?

このステップの入力は、ネットワークによって取得された初期深度マップです。具体的には、各ピクセル ポイントの深度値が取得されます。深度値のソースは、各正則化コスト マップの深度方向に沿って観察され、深度は、ポイントの深度として、完全な深度マップの取得に進みます。

これは、論文で言及されている argmax を使用した Winner-take-all (勝者総取り) 戦略、つまり、深さ方向に沿って期待値を求めるのではなく、最も可能性の高いものを直接取得する戦略です。
これは論文でも触れられていますが、トレーニングプロセスでは確率体 P を計算する必要がありますが、テストでは各深度で正則化されたコストマップを取得し、この戦略を使用して深度マップを取得するだけで済みます。(さらに、トレーニング中に確率量全体を計算する必要がありますが、テストの場合は、勝者総取り選択を使用して、正規化されたコスト マップから深度マップを順次取得できます)

変分深度マップを調整するプロセスは、実際には、ピクセルを継続的に再投影し、特定の再投影誤差 Error を計算して反復的に減少させるプロセスとみなすことができます。): 参照画像 I 1 、参照深度
マップ D 1 および 1 つのソース画像 I が与えられるますiの場合、I iを I 1から D 1まで投影して、再投影画像 I i→1を形成します。ピクセル p における I 1と I i→1の間の画像再投影誤差は次のように定義されます:
デプスマップ上の点pの再投影誤差の計算式
ここで、Ei photo は 2 つの間の測光誤差です。ピクセルであり、Ei スムーズは深度マップの滑らかさを保証するための正則化用語です。
この論文では、ゼロ平均正規化相互相関 (ZNCC) を使用して光学的一貫性 C(·) を測定し、p とその近傍 p' ∈ N § の間の両側深さ二乗差 S(·) を使用して滑らかさを取得します。
改良プロセス中、参照画像とすべてのソース画像およびすべてのピクセル間の画像再投影誤差の合計が繰り返し最小化されます。

各プロセスのレンダリングを再構築する

この処理により、
(1) 図(g) -> 図(f) で階段効果(階段効果)がなくなり、平滑化アイテムが役割を果たす
(2) 深度値を微調整するサブピクセル深度精度を達成する範囲

それはまだサブピクセル深度であり、それが何を指すのかよくわかりません。
さらに、論文では、R-MVSNet からの初期深度マップがすでに満足のいく結果を達成していることは注目に値します
。ネットワークで取得した深度マップは十分な効果を持っています。このプロセスはサブピクセル精度を得るために最適化されているだけですが、この画像 (b) と実際の画像 (d) の効果にはまだ大きな差があると思います。 ?

4. まとめ

この R-MVSNet は、Yao Yao と他のオリジナル チーム メンバーによって MVSNet のメモリ消費量が改善されたものであるため、基本的な考え方は変わっていません。現在の深さの可能性は主に、差分後の RNN シリアル化の使用によるものです。コストボディ正則化ステップ。これは、時間をメモリ空間に交換するというアイデアの応用です。

5. ディスカッション

1. この論文では、さまざまな正則化方法の説明図を示しています。
ここに画像の説明を挿入
この図は、1 回限りのグローバル正則化コストに加えて、コスト本体を深さ方向に順次処理するためのいくつかの最適化アイデアを説明しています。

  • 図 (a) は、最も単純な逐次アプローチである勝者総取り平面スキャン ステレオです。これは、ピクセル レベルの深度値をより良い値に大まかに置き換えるため、ノイズの影響を受けます。
  • 図 (b)異なる深さで一致するコスト C(d) をフィルタリングして、各コスト推定の空間コンテキスト情報を収集する、改良されたコスト集計方法。
  • 図©は、この研究で提案されている畳み込みGRUに基づくより強力なループ正則化スキームであり、逐次処理のアイデアに従って、深さ方向の空間的かつ一方向のコンテキスト情報を収集でき、全空間3D CNNと同等の正則化を実現します。結果は異なりますが、実行時のメモリ内での方が効率的です。

図 a は、前述の勝者総取りの原則です。つまり、深度方向にポイントごとに計算し、最も可能性の高い深度値を使用して使用します。 図 b は主に空間的な「コンテキスト」情報を増やします。ここでのコンテキストは少し異なります
。曖昧ですが、実際には空間近傍情報を指しており、論文で言及されている「異なる深さでのマッチングコスト C(d) のフィルタリング」は適切ではないと感じます。異なる深さであるべきではありません。原文はそのようなコスト集計方法です。異なる深さでのマッチングコスト C( d ) (図 1 (b)) を利用して、各コスト推定の空間コンテキスト情報を収集します
図 c はこの記事からのものであり、深さ方向と深さによる空間コンテキスト情報を考慮できます。 , そして毎回使用する深層が1つだけでメモリ消費量もHxWとなる
図dはMVSNetに代表される3次元CNNを直接利用する方法 全体の状況を直接考慮しているが同時動作のためHxWxDとなる個人的には、
この図はもっと複雑だと感じますが、実際には奇妙で直感的に理解することはできません...

2. さらに、この論文では、深さサンプル数 D——Inverse Depth を選択するための戦略についても言及されていますが、詳細には触れていません。補足資料に詳細に記載されていますが、見つかりませんでした。これは、次のはずです。
論文では次のように述べられているため、非常に重要です: ほとんどのディープ ステレオ/MVS ネットワークは、ソフト argmin 演算を使用して視差/深度出力を回帰し、深度方向
に沿った期待値として解釈できます [30]。は、深度範囲内で均一にサンプリングされます。ただし、リカレント MVSNet では、広い深度範囲の再構成を効率的に処理するために、逆深度を適用して深度値をサンプリングします
つまり、深度に沿った期待は、深度サンプル値は [D max, Dmin

3. 論文では、トレーニング中に
深度マップが GRU 正則化の順序に偏らないようにするために、各トレーニング サンプルが dmin から dmax への前方 GRU 正則化と dmax から dmin への後方正則化を使用してネットワークに渡されると指摘しています。つまり
GRU が深さの小さいものから大きいものまでサンプリングするのを防ぐために、大きいものから小さいものへ再度トレーニングされます。

4. この論文では、
R-MVSNet のメモリ要件は深度サンプル数 D に依存しないため、ネットワークは以前の学習ベースの MVS 手法では回復できない大きな深度範囲の深度マップを推論できると指摘しています。つまり、この
メソッドのメモリ消費量は深度サンプルの数とは何の関係もありません。これは深度によって通常のボディを最適化する利点ですが、実際には時間を空間と交換することになります。

5. 変分深度マップの改良で言及されている「サブピクセル レベル」の概念について、理解している場合はメッセージを残してください...


2022.11.30更新

MVSNet が Soft argmin 操作で引用したGC-Netの論文によると、「サブピクセル レベル」の精度は、実際には単に「小数点を含む連続」精度を指します

  • 期待値を求める方法は、奥行き予測値 = Σ(重み * 現在の奥行き値) であるため、少なくとも 10 進精度、つまりサブピクセルレベルの精度で連続的な奥行き値を生成できます。
  • この論文では深度推論を多分類問題として扱い、ピクセルの「真の深度ラベル」をOne-hot によって [0,0,...,1,0,0...0] としてエンコードします。つまり、実際の深度のみです。レイヤーは 1 に設定され、他のレイヤーは 0 に設定されます。最後に、各ピクセル ポイントの予測深度値は、特定の深度平面の仮説値から直接選択されるため、生成することはできません。継続的に(事前に設定された深度間隔以下の深度値のみを選択できます)、つまりサブピクセル精度を生成できない
  • この記事では、多分類問題のネットワーク出力深度値の不連続性により、同様の位置にあるピクセル間に大きな深度の差が生じる可能性があり、これが記事で言及されている「階段現象」の原​​因でもあります。深さのサブディビジョンの最適化 最も重要なステップは、現在のピクセル値を微調整し、それを周囲と滑らかにすることです。これにより、階段現象が排除され、ピクセル レベルの精度が達成されます

おすすめ

転載: blog.csdn.net/qq_41794040/article/details/127853045