Slide 1

Slide 1 text

PromptDA (Depth Anything) を用いた 深度推定や点群生成について ImVisionLabs株式会社代表取締役 板倉健太 博士(農学)

Slide 2

Slide 2 text

Depth Anythingについて バックパック型スキャナー iPhone12 LiDAR  Depth Anything では、特殊なセンサーを用いずに、画像から物体の深度(距離)を推定可能  視覚情報(画像)のみを利用して高精度な深度マップを生成できる [動画] Yang, L et al. (2024). Depth anything: Unleashing the power of large-scale unlabeled data. CVPR.

Slide 3

Slide 3 text

Depth Anythingの特徴 バックパック型スキャナー iPhone12 LiDAR  Depth Anything は、RGB画像を入力とし、視覚的な特徴量に基づいてピクセルごとの深度 (距離)を予測  以下の出力された深度マップでは、距離が近いほど赤く、遠いほど青く表示される。 [動画]  これにより、LiDARやRGB-Dカメラを用いずに、画像1枚から深度を推定できる。

Slide 4

Slide 4 text

Depth Anythingを用いた動画生成  Depth Anything動画に適用することで、動画の深度情報を抽出することも可能である。 • 色は推定された相対的な距離を表し、近い物体は暖色系、遠い物体は寒色系で示されている • 手前のポール状の物体と電車の前後関係もうまく表現できているように見える

Slide 5

Slide 5 text

Depth Anythingの限界とPromptDAの必要性 バックパック型スキャナー  Depth Anythingで出力されるのは相対的な深度であり、実際の距離(例:1.5m)は明らかでない  PromptDA (DepthAnything) について • iPhone LiDARなどで取得した低解像度な深度を「プロンプト」として入力することで 実スケールの深度マップが得られる • 画像のRGB情報と深度が合わせて取得されるため、点群や3D再構築に利用可能 画像出典: PromptDAのプロジェクトページ https://promptda.github.io/

Slide 6

Slide 6 text

補足: iPhoneに搭載されているLiDARセンサー バックパック型スキャナー  2020年発売のiPad Pro、iPhone 12 Proシリーズ以降にLiDARスキャナーが搭載されている  LiDAR(Light Detection and Ranging)はレーザー光で物体までの距離を計測する技術で、 AR体験やカメラのオートフォーカス、3Dスキャンなどに利用される  iPadやiPhoneのアプリケーションを通じて点群データの取得や3Dモデル化が可能 LiDAR

Slide 7

Slide 7 text

PromptDAの構成 バックパック型スキャナー  PromptDAは以下の3要素から構成される: 1. RGB画像: 通常のカメラで撮影された視覚情報 2. 初期深度マップ(prompt): Stray Scanner などによって推定された粗い深度情報 3. 深度推論モデル: Depth Anything を拡張したモデルで、RGBとpromptの両方を入力として 高精度な深度を出力  動画: Stray Scannerでの撮影の様子  Stray Scanner: LiDARを利用して得られた 深度画像(動画)を録画できるアプリ

Slide 8

Slide 8 text

点群生成の仕組み バックパック型スキャナー 3次元の点群を作るためには、実世界のx,y,z座標を得る必要がある。 そのために、PromptDAではカメラの内部パラメーターを利用して、画像上の点(画像 座標)から3次元座標(カメラ座標)を復元する。 カメラの内部パラメーターKは以下の式で表される 𝑓𝑥 , 𝑓𝑦 はそれぞれx,y軸方向の焦点距離(単位:ピクセル) 𝑎𝑥 , 𝑎𝑦 はカメラ座標からみた画像中心の位置

Slide 9

Slide 9 text

点群生成の仕組み バックパック型スキャナー  まずカメラ座標と画像座標の関係性を考える。  カメラ座標上において、右図のように複数点を考える。  また、オレンジ色の部分は画像平面である。  画像平面にカメラ座標上の点を集めることを考える。 本スライドの図は以下のページを参考に作成しました: https://mem-archive.com/2018/02/21/post-157/

Slide 10

Slide 10 text

点群生成の仕組み バックパック型スキャナー  画像平面は、カメラ座標の中心から𝑧𝑎 方向に焦点距離 𝑓だけ離れた位置にあるため、カメラ 座標の 中心から見て、 倍だけすると図のように各点は画像座標上にある状況となる 𝑓/それぞれの点の𝑧𝑎 方向の距離 本スライドの図は以下のページを参考に作成しました: https://mem-archive.com/2018/02/21/post-157/

Slide 11

Slide 11 text

点群生成の仕組み バックパック型スキャナー  最後に、画像座標とカメラ座標での原点のずれ(オフセット)を解消する。  オフセットは 𝑎𝑥 , 𝑎𝑦 であるため、図のようになる。 本スライドの図は以下のページを参考に作成しました: https://mem-archive.com/2018/02/21/post-157/

Slide 12

Slide 12 text

点群生成の仕組み バックパック型スキャナー このそれぞれの点が、画像座標上の点 𝑢, 𝑣 と対応する。 すなわち、 が成り立つ。 また、以下のようにすることで、カメラ座標を計算でき、点群に変換することができる。

Slide 13

Slide 13 text

点群生成の仕組み バックパック型スキャナー 得られた深度情報を踏まえると、 画像座標上の点 𝑢, 𝑣 に対して、3次元座標上の点 𝑋𝑎 , 𝑌𝑎 , 𝑍𝑎 は、 となる。これが3次元座標となり、 これと各点のRGB情報をもとに計算を繰り返すことで、点群が作られる

Slide 14

Slide 14 text

点群生成の仕組み: 補足 バックパック型スキャナー カメラの内部パラメータ行列Kの逆行列は以下の通り MATLABのSymbolic Math Toolboxにて 計算した結果

Slide 15

Slide 15 text

PromptDAによる深度マップの作成例 バックパック型スキャナー 左が入力の画像であり、同時に粗い深度情報も取得している PromptDAにより、右の高解像度な深度マップを生成した 赤枠の本物のしっぽとしっぽの影も区別されていることがわかる

Slide 16

Slide 16 text

PromptDAを用いた点群生成例 バックパック型スキャナー 階段本体はノイズの影響を受けることなく、一直線に安定して描画されている。 のぼり口などのマークも、点の集まり(点群)として正確に反映されている。

Slide 17

Slide 17 text

PromptDAを用いた点群生成例 バックパック型スキャナー PromptDAを用いて取得した深度情報から、猫の動きを点群として再構成した。 猫は左下方向に移動しており、フレームからやや見切れているが、全体の動きや形 状、動いている様子が点群として記録されている

Slide 18

Slide 18 text

PromptDAの有無による点群生成精度の比較 バックパック型スキャナー 画像を斜めから見ると、PromptDAを適用した場合には階段の段差構造が明確に再構 成されている。 PromptDAを利用しない場合は段差が連続して滑らかにつながり、階段構造が曖昧

Slide 19

Slide 19 text

PromptDAを用いた点群生成例 バックパック型スキャナー PromptDAにより取得した深度画像を点群に変換した時の結果 斜めから観察すると、奥行きや段差の構造が再現されていることがわかる

Slide 20

Slide 20 text

PromptDAの有無による点群生成精度の比較 バックパック型スキャナー iPhoneにより取得した深度画像をベースに点群にした場合(左)とPromptDAにより高 解像度にした結果(右)を示す PromptDAにより深度情報が正確に得られるため、コーンの奥行きやポールとの繋が りが正しく点群として表現されている

Slide 21

Slide 21 text

まとめ バックパック型スキャナー  Depth AnythingはRGB画像のみから相対的な深度を推定できる  PromptDA (Depth Anything) は粗い深度情報をプロンプトとして入力し、実スケールかつ高精 度な深度マップを生成し、点群化を可能にする  PromptDAを適用することで階段や奥行き構造をうまく再現することができた