🍉

[論文要約] Cameras as Rays

2024/03/17に公開

随時更新していく予定です。
モチベーションを保つためWIPでも公開しています。
ご容赦ください。


今話題のDust3Rを発表したNaverLab Europeが提案している、カメラポーズ推定の新しい手法
project
arxiv


ランダムにばらまかれたレイが徐々にデノイズされて入力画像に対応するレイの束へと収束する過程

Abstract

画像数の少ないカメラポーズ推定は未だ困難な課題。この論文ではカメラをレイの束として扱うカメラポーズの新しい分散表現を提案する。この表現はtransformerと自然と組み合わせることができ、画像を対応するレイへと変換する回帰手法を開発した。このアプローチを拡散モデルの学習へ用いると、妥当なモードをサンプルして精度を上げることができた。回帰モデルと拡散モデルの両方が、CO3DにおいてSoTAを達成した。

Introduction

  • 小入力の3D表現は研究が進んでいるが、問題は画像のカメラパラメータの推定。SfMが無理だと厳しい。最近は学習ベースの手法が研究されており、回帰・エネルギーモデル・拡散モデルがある。
  • でも、上記は致命的な問題に答えていない。「学習手法が推定すべきカメラ表現はなにか」である。
  • 実際ほぼ外部カメラ行列を使っている。そういった大域的で切り詰められた表現はニューラルモデルには適していない。もっと過剰にパラメータ化された分散表現が適している。さらにカメラ幾何的にも、古典的な手法がピクセルレベルの相関情報の恩恵を受けているのに、外部カメラ行列を推定する学習モデルはその限りでない。
  • この論文では、カメラ表現を変更し、ポーズ推定問題を各パッチに対応するレイの推定問題として再定義する。この表現はtransformerベースでパッチの特徴量の集合を処理するモデルと親和する。求められたレイの束から、カメラの内部・外部パラメータを復元する。
  • まずは標準的な回帰ロスを用いてtransformerを学習してこの分散表現の有効性を示す。この時点でSoTAは達成される。更に回帰モデルを拡散モデルのデノイズへと拡張することで、性能を向上し、分散モードを復元できる。

SfM & SLAM

研究が進んでいてピクセルパーフェクトな精度が得られるが、密な画像入力が必要なことが課題。

疎な入力でのポーズ推定

本論文に関連が強いのは

  • RelPose(++): エネルギーベースのモデルを使用する。
  • SparsePose: 初期推定から反復的にカメラポーズを改善する
  • FORGE: 合成データでモデルを学習する
  • PoseDiffusion: 拡散モデルでカメラポーズをデノイズする。最も本論文に近いが、レイをデノイズする本論文のほうが精度が高い。

レイベースのカメラ表現

レイベースの表現もいろいろ研究されているけど、彼らの関心は基本的にキャリブレーションである。

手法

ここでの目的は疎な画像群{I1,...,IN}からカメラを復元することである。既存の研究のように大域的なカメラパラメータを直接推定するのではなく、レイベースのカメラ表現を提案する。これは古典的な表現とシームレスに相互変換可能である。その後レイベースのカメラを推定する回帰モデルについて解説する。不確実性や対称性を扱うために、さらにそのモデルの上に確率的なフレームワークを導入する。

レイによるカメラ表現

レイによる分散表現

通常カメラは外部パラメータ(R, t) や内部パラメータKで表される。我々はここでニューラルネットワークにとってこのような低次元の表現を直接回帰するのは難しいという仮説をおく。そして代わりに、カメラをレイの束として過剰にパラメータ化する ことを提案する。



各カメラはレイの束Rとして表現され、その各レイrdmに代表される。ここでdはレイの方向ベクトルで、mはレイのモーメントである。dとして単位ベクトルをとると、mのノルムは原点とレイの距離となる。

カメラからレイの束への変換

既知のカメラとピクセル座標系が与えられれば、前節のdmは容易に算出される。

実際この論文では、画像からグリッド状に一様に点をサンプルしuとして使用した。それにより、各画像パッチとその中心を通過するレイを対応付けられる。

レイの束からカメラへの変換

レイの回帰によるポーズ推定

レイの推定について解説する。
N枚の画像とそのカメラパラメータのGround Truthについて、レイの束のGround Truthを前章に基づき算出する。各画像に対し、pxpの一様なグリッドに対応するレイを計算する。レイと画像パッチ間の対応を担保するため、各画像パッチの特徴量を抽出し、トークンとする。さらに、画像パッチをクロップする際のパラメータを活用するため、パッチのピクセル座標を特徴量にconcatenateする。N枚の画像それぞれからの p^2トークンをまとめて処理するためにtransformerアーキテクチャを採用し、各パッチに対応するレイを推定する。

![]

損失関数は再構成ロスを使用する。

レイ拡散をデノイズすることによるポーズ推定

対称性や観測の不十分性に起因する推定の不確実性に対処するため、回帰モデルを拡張して拡散ベースの確率モデルを学習する。拡散モデルそのものについては素晴らしい解説が多々あるため、割愛する。

拡散デノイズのフレームワークを活用し、入力画像を条件とした際の各パッチのレイの分布をモデル化する。そのやり方は単純で、前節の回帰モデルに条件を追加するだけである。ノイズののったレイはパッチの特徴量とピクセル座標に結合され、位置エンコード済みの時間も用いられる。以下のように定式化される。

また、損失としては回帰モデルと同じL2ロスでデノイザーを学習することができる。

実装の詳細

原点やスケールの設定は割愛。

特徴量の抽出器には学習済みDINOv2を採用。transformerブロックを16個もつDiTを回帰・拡散の双方に使用した。学習には8つのA6000GPUで2から4日かかった。

実験

実験設定

  • データセット: CO3Dv2を使用した。51カテゴリのうち41で学習し、残りの10で汎化性能を評価する

  • 比較手法: 学習ベースと対応点ベース双方からいくつかの手法に対して比較する

    • COLMAP: 密な対応点ベースのパイプライン。SuperPoint+SuperGlueを使用する。

    • RelPose: カメラのペアの相対姿勢を推定する。

    • RelPose++: RelPoseに加えて、transformerを用いて複数視点間の整合性をとる。さらにカメラ位置も推定する。

    • R+T Regression: 不確かさを考慮せず、直接ポーズ回帰する。

    • PoseDiffusion: カメラ推定に拡散モデルを導入した。カメラパラメータを直接推定する。

指標

画像を2から8枚それぞれのケースで評価する。例えばNマイケースでは、データセットからN枚の画像をランダムにサンプルし、その推定精度を評価する。同じN枚のケースについても5回サンプリングを反復評価して、平均を求める。

回転の精度: 各カメラペアの相対回転を算出し、Ground Truthとの差が15度以下であれば正答として、その割合を評価する。

位置の精度: Ground Truthと推定をアラインして(optimal similarity transform)、シーンの中心から最遠カメラの距離に対して、エラーが10%以下のカメラの割合を評価する。

評価結果

COLMAPのような対応点ベースの手法は、今回のようなオーバーラップの少ない設定では全然だめ。提案手法は回帰・拡散の両モデルについてPoseDiffusionを超えており、レイベース表現の有効性が示された。

定性的に見ても提案手法がより精度良く推定していることがわかる。

また、不確かさをモデリングすることで複数のありうる姿勢を捉えることができる。

各画像を表現するレイの本数についても精度評価している。結果として、精度に大きく影響することがわかった。他のすべてのテストでは16x16で行っている。

考察

  • 本研究は疎な入力画像の問題設定を議論したが、1枚だけの設定や密な設定でも更に検討できる。

  • 本手法ではパッチ間の幾何的な整合性についてなんら制約を導入していない。それも組み合わせられると面白いだろう。

Discussion