661 Views
November 11, 25
スライド概要
https://arxiv.org/abs/2508.10104
大きめのトイプードルが好きです
AI技術共有会 視覚基盤モデル(DINOv3) を使って衛星画像コンペで 勝ちたい 2025.11.11 木村元紀 GOドライブ株式会社 AI Community
自己紹介 木村 元紀 ▪ ▪ 所属:GOドライブ株式会社 趣味:衛星(リモセン)画像コンペ ▪ Solafune ▪ 優勝3回 ▪ コンペ総合ランク1位 ▪ (2025年10月時点) ▪ SpaceNet Challenge ▪ SN6 4th ▪ SN7 4th ▪ SN8 5th ▪ SN9 2nd 2
視覚基盤モデルを使って衛星画像コンペで勝てるのか? ▪ ▪ ▪ Solafune「森林破壊の原因特定コンペ」(衛星画像を対象としたセマンティックセグメンテーションのコ ンペ)において、DINOv2を採用したチームが優勝(解法) 衛星画像コンペはデータ数が少ないことも多い(主観)ので、基盤モデルとの相性が良いのではないか? 本資料では、基盤モデルを使うことで衛星画像コンペに勝てそうか、簡単な実験で検証する 3
DINOv3:dense prediction taskにも強い視覚基盤モデル ▪ ▪ ▪ ▪ DINOv3:Meta AIが2025年8月に発表した視覚基盤モデル (arXiv ’25) DINOv2 (arXiv ’23) に対し、パタメータ数を約6倍(11億→67億)、学習データ数を約12倍(1.4 億→16.9億)に拡大 Gram Anchoringにより特徴マップの劣化を防止➡セグメンテーションなどdense taskに強い Finetuning なしでも幅広いタスク・データセットでSoTA 主成分分析による特徴マップの可視化(DINOv3の論文より引用)。DINOv3はGram Anchoringに よって構造が明瞭に保たれ、セグメンテーションなどのdense prediction taskで優位性を発揮。 4
DINOv3の公開モデル ▪ ▪ ▪ ▪ 67億パラメータのモデルを蒸留した、ViT-S/B/LやConvNeXtなど多様なサイズのモデル群を公開 16.9億枚規模のWeb画像(LVD-1689M)で学習したモデルに加えて、4.9億枚規模の衛星画像 (SAT-493M)で学習したモデルも公開 Weightファイルの入手には、Webフォームからの申請が必要 ライセンスはDINOv3独自のLicense ViTファミリー ConvNeXtファミリー 衛星画像で学習したViTファミリー 表はDINOv3のGitHubレポジトリより引用 5
DINOv3(ViT)をdense predictionに利用するには? ▪ ▪ ▪ ▪ ViT内の複数ブロック(通常は4ブロック)のpatch embeddingを取り出し、2Dの特徴マップにreshape ViTの特徴マップは単一解像度(patch_size=16の場合、どのブロックも1/16解像度) 一方、dense prediction(セグメンテーション・物体検出・深度推定など)のデコーダーの多くは、マルチスケール の特徴マップを必要とする ViTの特徴マップを入力側から4倍~0.5倍 にリサイズすることで、1/4~1/32 のマルチスケールの特徴マップを作る DINOv2/v3をUperNetデコーダーと組み合わせた例では、 • up:transposed convolution • down:max poonling ref) Feature2Pyramidの実装 decoder (e.g., U-Net) この時点では、どのブロックも1/16解像度 図はViT-Adapter (ICLR ’23)より引用 6
実験(データセットと評価指標) ▪ ▪ SpaceNet 2 データセット (CVPRW ’18) (registry.opendata.aws) ▪ 地上分解能30cmの衛星画像と建物のポリゴンからなるデータセット(CC BY-SA 4.0 ライセンス) ▪ 画像枚数:9,783 ▪ 今回は、建物1クラスのセマンティックセグメンテーションのデータセットとして利用 ▪ 元の画像サイズは650x650だが、320x320に縮小する(時短のため) 評価方法 ▪ F1スコア ▪ データセットを5 foldに分割し、最初の3 foldだけを使用(時短のため) 画像はSpaceNet 2データセットより引用 7
実験(モデル) ▪ ▪ 非基盤 ベースラインモデル:MaxViT-small encoder + U-Net decoder ▪ kaggle 飛行機雲コンペ 4位解法 で使われたモデル ▪ MaxViT-small encoder (ECCV ’22) ▪ ImageNet pretrained(“maxvit_small_tf_512.in1k” from timm) ▪ freezeせずデコーダーと合わせて学習 ▪ U-Net decoder ▪ MaxViTの1/2~1/32の5スケールの特徴マップをそのまま入力 ▪ 最終出力は1/2解像度なので2倍にバイリニア補間 DINOv3 モデル:DINOv3 ViT-L/16 encoder + U-Net decoder ▪ DINOv3 ViT-L/16 encoder ▪ 右表の“ViT-L/16 distilled”(300Mパラメータの蒸留モデル) ▪ web (LVD-1689M)・sat (SAT-493M) の2つのweightを検証 ▪ 完全にfreeze(デコーダーだけ学習) ▪ U-Net decoder ▪ 上記ベースラインモデルのU-Netデコーダーと同じ ▪ 6ページ目の方法(Feature2Pyramid)により、DINOv3のembedding を1/4~1/32の4スケールの特徴マップとしてリサイズし、入力 ▪ 最終出力は1/4解像度なので4倍にバイリニア補間 表はDINOv3のGitHubレポジトリより引用 8
実験結果 ▪ ▪ ▪ ▪ ▪ 衛星画像コンペでは提供される学習データが少ないことも多いので、学習データを間引きつつ評価を行った 学習サンプルが少ない(~1000枚)場合は、DINOv3 (web) が強い! 学習サンプルが2000枚を超えると、ベースラインモデル(MaxViT-small)が追いついてくる 意外なことに、DINOv3 (sat) よりもDINOv3 (web) の方が高精度 DINOv3は学習可能パラメータが少ないがF1スコアが高い(ベースラインモデルは80~101M, DINOv3は20M) (補足) ・特徴マップのチャネル数の関係で、MaxViT-smallはDINOv3よりもデコーダーのサイズが小さくなる ・MaxViT-smallについて、デコーダーの中間層のチャネル数を増やすことでデコーダーのサイズを調整した ・デコーダーのサイズ増(11M→32M)によるF1スコアの改善はほぼ無し 9
定性評価(学習サンプル数:1000) ▪ 学習サンプルが少ない場合、ベースラインモデルでは見た目や背景が珍しい建物がうまく検出でき ない(学習データに少ないレアな建物に対応できていない?) 衛星画像はSpaceNet 2 データセットより引用 Ground truth MaxViT-small (F1=0.816) DINOv3 ViT-L/16 (web) (F1=0.829) 10
定性評価(学習サンプル数:7800) ▪ ▪ ▪ 学習サンプルが増えるとベースラインモデルでもレアな建物が検出できるようになる 一方で、DINOv3の方は建物の輪郭周辺の精度が低く、最後に追い越される要因になっている DINOv3(ViT)ではpatch_size=16でパッチ分割するので局所的な特徴が取れないのかもしれない 衛星画像はSpaceNet 2 データセットより引用 Ground truth MaxViT-small (F1=0.857) DINOv3 ViT-L/16 (web) (F1=0.850) 11
追加実験①:MaxViTを大きいvariantに変更してみる ▪ ▪ ▪ 仮説:ImageNet pretrainedモデルでも、大きいモデルではDINOv3に近い精度が出るのでは? 検証:MaxViT-smallを、MaxViT-largeに変更してみた 結果:F1スコアは改善せず(学習サンプルが少ない場合、スコアは大きく悪化。学習サンプルが多 い場合も、MaxViT-smallと同程度のスコアにとどまる) MaxViT-smallを MaxViT-largeに 変更 12
追加実験②:MaXViTをfreezeしてみる ▪ ▪ ▪ ▪ 仮説:ImageNet pretrainedモデルでも、freezeすればDINOv3に近い精度が出るのでは? 検証:MaxViT(ImageNet pretrained)をfreezeし、デコーダーだけ学習してみた 結果:freezeしなかった場合と比べて、F1スコアが大きく悪化した ➡Freezeした状態で高いF1スコアが出るDINOv3は、ImageNet pretrainedのMaxViTと比べて、 より良い(より汎用的な)画像特徴を学習できていると言えそう MaxViT encoder をfreeze 13
追加実験③:DINOv3モデルのデコーダーを変えてみる ▪ ▪ ▪ ▪ ▪ DINOv3(を含むViTエンコーダー)は、U-Netデコーダーと組み合わせることは一般的ではない 例えばDINOv3の論文中では、以下のデコーダーを採用している ▪ 衛星画像のデータセットでは、UperNet (ECCV ’18) or DPT (ICCV ’21) ▪ より難易度が高いADE20kデータセット (IJCV ’19) では、Mask2Former (CVPR ’22) 仮説:DINOv3のデコーダーをUperNet等に変更することでF1スコアが改善するのでは? 検証:デコーダーをU-NetからUperNetに変更してみた 結果:F1スコアはほぼ改善せず デコーダーを U-Netから UperNetに変更 14
追加実験④:ViT-Adapter (ICLR ’23) ▪ ▪ ▪ ViTの特徴マップをリサイズしてマルチスケールにする方法(6ページ目の方法)の課題 ▪ ViTは 大域的な特徴・コンテキストに強いが、局所的な特徴表現が弱い傾向 ▪ 単純にリサイズしただけでは、dense prediction(セグメンテーションなど)で性能が不足 ➡ViT-Adapter(ViTをdense prediction taskに適応させるアダプタ)の提案 ▪ Spatial Prior Module:CNNで局所特徴を抽出 ▪ Spatial Feature Injector:クロスアテンションでViTにCNNの局所特徴を注入 ▪ Multi-Scale Feature Extractor:マルチスケール特徴を生成 Dense predictionに強いと主張するDiNOv3でも、ADE20kでのセグメンテーションなど比較的難易度の高 いタスクでは、ViT-Adapter(+ Mask2Former)を採用している(実装) 図はViT-Adapter (ICLR ’23)より引用 15
追加実験④:ViT-Adapter (ICLR ’23) ▪ ▪ ▪ 仮説:ViT-Adapterを適用することで、F1スコアと建物の輪郭周辺の精度が改善するのでは? 検証:DINOv3 U-Net、UperNetそれぞれにViT-Adapterを適用した 結果:F1スコアにはほぼ変化なし。輪郭周辺の精度にも大きな改善はなかった ViT-Adapter を適用 推論結果はいずれも 学習サンプル数7800 衛星画像はSpaceNet 2 データセットより引用 Ground truth MaxViT-small U-Net (F1=0.857) DINOv3 ViT-L/16 (web) U-Net (F1=0.850) DINOv3 ViT-L/16 (web) U-Net with ViT-adapter (F1=0.852) 16
まとめ ▪ ▪ ▪ Q. DINOv3を使うことで衛星画像コンペに勝てるか? 少量データのコンペでは有効 ▪ ▪ 十分なデータがある場合は効果は限定的 ▪ ▪ ▪ 学習データが少ない場合(目安1000枚以下)は、既存モデルでは見逃しやすいレアなパターンも捉えられ、 強力な武器となりうる データ数が十分な状況では、ImageNet pretrainedモデルと大きな差はない 特に物体の境界や細部の表現においてDINOv3は弱い傾向があり、性能差の縮小につながっている 衛星画像で学習したモデルよりも、Web画像で学習したモデルの方が精度が高いことも ▪ ドメインの近さよりも、十分に多様なデータセットで学習されていることが大事? 17