Slide 1

Slide 1 text

FiT3D: Improving 2D Feature Representations by 3D-Aware Fine-Tuning 岩政公平 CV勉強会 ECCV2024

Slide 2

Slide 2 text

Fig. 1 Figure 1: We propose 3D-aware fine-tuning to improve 2D foundation features. Our method starts with lifting 2D image features (e.g. DINOv2 [44]) (b) to a 3D representation. Then we finetune the 2D foundation model using the 3D-aware features (c). We demonstrate that incorporating the fine-tuned features (d) results in improved performance on downstream tasks such as semantic segmentation and depth estimation on a variety of datasets with simple linear probing (right). Feature maps are visualized using principal component analysis (PCA). Figure 1: 2D基盤特徴を向上させるために3D対応のfine-tuning⼿法を提案する。この⽅法では、まず2D画像特徴(e.g., DINOv2 [44])(b)を3D表現に変換する。 次に、3D対応の特徴 (c) を使⽤して2D基盤モデルをfine-tuningする。fine-tuningした特徴 (d) を取り⼊れることで、semantic segmentationや深度推定などの下 流タスクの性能が向上することを⽰した。この性能向上は、様々なデータセット上で単純な線形プロービング (右) を⽤いることで確認できる。 特徴マップは主成分分析 (PCA) を⽤いて可視化する。

Slide 3

Slide 3 text

Feature visualization - PCA / K-Means https://ywyue.github.io/FiT3D/

Slide 4

Slide 4 text

書誌情報 ● 2Dの視覚基盤モデル(e.g., ViT)に対して3D-awareデータでfine-tuningすることで、 その基盤モデルによって抽出される画像特徴の質を向上させる! ● 3D-awareデータ? → 3D Gaussian Splatting (3DGS) を⽤いる! ● 屋内データを⽤いているが、ドメイン外データセット (屋外) でも精度改善! GitHub

Slide 5

Slide 5 text

Vision Transformer ● Transformerを視覚モデルに適応した⼿法 ● ⼊⼒画像をパッチに分割して埋め込んだトークンと、学習可能なパラメータであるCLSトークンを Transformer Encoderに⼊⼒する操作を⾏う ViT [Dosovitskiy+ 20]

Slide 6

Slide 6 text

視覚モデルの事前学習 ● 本論⽂ではDINOv2 [Oquab+ 23] , DINOv2-reg [Darcet+ 23] , CLIP [Radford+ 21] , MAE [He+ 21] , DeiT-III [Touvron+ 22] などの ⾃⼰教師あり学習を⾏った2D視覚モデルに対して適⽤ (CNNでもViTでも何でも適⽤できるはず) ○ 各学習⽅法は今回は割愛します🙏 ● 各視覚モデルは特有の Artifact (アーチファクト) が存在する ← ここ⼤事 ⾃⼰教師あり学習 (画像のみ) ⾃⼰教師あり学習 (画像のみ) ⾃⼰教師あり学習 (画像-テキスト) ⾃⼰教師あり学習 (画像のみ) 教師あり学習 (画像とラベル)

Slide 7

Slide 7 text

視覚モデルのアーチファクト ● アーチファクトにより下流タスクに悪影響を与える😢 ● DINOv2のアーチファクトとして、特に位置埋め込みが寄与してしまっている ○ 動画のような連続フレームを与えても画像内の相対的な位置に同様なアーチファクトが出現 “Denoising Vision Transformers” [Yang+ 24]

Slide 8

Slide 8 text

3D Gaussian Splatting https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ ● 複数視点画像から新規視点合成を⾏う⼿法 → NeRFと⽐較して特に⾼速なレンダリングが可能👍 ● 3D Gaussian (位置, 回転, スケール, 球⾯調和パラメータ, 不透明度) を2D平⾯に効率的にSplat (投影) する ○ ラスタライズレンダリングにより描画するため⾼速‧軽量 “3D Gaussian Splatting for Real-Time Radiance Field Rendering” [Kerbl+ 23]

Slide 9

Slide 9 text

FiT3Dの流れ 1. 3D Gaussianに新しく2D視覚特徴を加える 2. 2D視覚特徴をSplattingして、その特徴をもとに2D視覚モデルをfine-tuning

Slide 10

Slide 10 text

学習データセット ● ScanNet++ [Yeshwanth+ 23] という屋内シーンの⾼品質なジオメトリ情報と画像が含まれるデータセット ● 460シーン, 28万枚のデジタル⼀眼レフのキャプチャ画像, 370万枚のiPhoneRGBDフレームから成る ScanNet++ [Yeshwanth+ 23]

Slide 11

Slide 11 text

1. 3D Gaussianに2D特徴をliftする ● 新しく   という特徴ベクトルに関するパラメータを追加 ○ 蒸留する2D特徴よりも少ない次元数であり、シーンごとに異なるConv層で次元数を揃える ○ 1シーン数百万のGaussianが存在するため元の次元数だとメモリに乗らない😢 ●    のレンダリングは、3D GSと同様に不透明度αを⽤いたα-blendingで⾏う ● 通常のGaussianのパラメータと、 はそれぞれ独⽴に最適化する (損失関数はそれぞれL1Loss) ○ “a loss from feature space does not lead to correct Gaussian mean, covariance and opacity” とのこと

Slide 12

Slide 12 text

2. レンダリングした特徴を学習する ● レンダリングした3D-awareな特徴マップを教師として、視覚モデルをfine-tuningする ○ メモリ効率の観点で、3D-awareな特徴マップは学習中に⽣成し、 またGaussianをCPUメモリに事前にロードするといった⼯夫で効率的に学習する ○ 損失関数はL1Loss

Slide 13

Slide 13 text

結果 - 同ドメインの定量評価 ● fine-tuningした前/後の視覚モデルを⽤いて、単純な線形層だけを更新するようして セマンティックセグメンテーションや深度推定を学習し、パフォーマンスを調べる ● 同じドメインである屋内データセットにおいて両タスクともに精度向上!

Slide 14

Slide 14 text

結果 - 同ドメインの定性評価 1. 壁やボードのような均⼀でテクスチャのない領域で両タスク改善 2. 椅⼦やテーブルの脚など細かい領域で両タスク改善

Slide 15

Slide 15 text

結果 - 同ドメインの定性評価 1. 壁やボードのような均⼀でテクスチャのない領域で両タスク改善 ● そもそも元のモデルの2D特徴をliftするとき、1枚だけなら“空洞”ができる ( DINOv2の⾚⽮印 ) ● Gaussianを最適化するときに複数のビューからの2D特徴が全体的に集約されるため、 あるビューからの情報は他のビューで補完される → 補完された3D-aware特徴でfine-tuningすると👍

Slide 16

Slide 16 text

結果 - 同ドメインの定性評価 2. 椅⼦やテーブルの脚など細かい領域で両タスク改善 ● Gaussianのジオメトリ特性 (e.g., 位置, 不透明度) はRGB画像を参照とした最適化が⾏われるため、 この“RGBガイダンス”が詳細な3D構造を学習して⾼解像度の特徴マップをレンダリング可能に👍

Slide 17

Slide 17 text

結果 - Out-of-domainのデータの場合 ● ScanNet++でfine-tuningしたモデルは、屋外のデータであっても精度改善! ● 定性的にも同ドメイン時と同様の結果が観察された (textureless領域、細かな領域での改善)

Slide 18

Slide 18 text

⽇本で撮った画像で試す

Slide 19

Slide 19 text

Ablation study ● F_lowの次元数を増やすと使⽤メモリ‧学習時間は 増えるが、パフォーマンスは向上する ● 無限のメモリがあればそもそもCNN層いらない +精度改善する? ● CLSトークンを⽤いてImageNet-1Kで画像分類タスク →精度改善しない ● 本⼿法は画像パッチトークンに対する改善だから? ○ Poolingなどでパッチトークンの特徴ベクトルも ⽤いる構造にすれば改善する?

Slide 20

Slide 20 text

感想 ● 3D GSを使って2D視覚モデルの改善するの⾯⽩い ○ 定量的にも定性的にも、OODでもパフォーマンス改善しているのいい👍 ○ モデル構造を変更しないのも👍 ● 本⼿法でfine-tuningされた視覚モデルは“3D構造を理解した”という訳ではなさそう? ○ 3D構造をもとにdenoisingされた2D特徴を学習した、という流れ ● 屋外データなどOODでも改善しているが、屋外データでfine-tuningすると精度改善するのか? ○ 屋外データを3DGSで最適化すること⾃体難しい ■ e.g., 動的なオブジェクト、⾞両データだとカメラ間の重なりが少ない ○ GSでこれらの課題を克服した⼿法はあるので試してみると⾯⽩そう ● ⾃動運転AIにも活⽤していきたい ○ ⼀旦はbackbone変えて検証できるので試します