Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
しくじり先生 Image Matching Challenge 2024 編
Search
goosehaaan
July 05, 2024
Programming
2.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
しくじり先生 Image Matching Challenge 2024 編
2024/7/5の関西kaggler会の発表資料です。
goosehaaan
July 05, 2024
Other Decks in Programming
See All in Programming
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
Intent as Code
shoppingjaws
6
1k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
350
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
XHTMLが残したもの
yosuke_furukawa
PRO
2
810
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
290
速習iPhone Duo対応
yuukiw00w
1
520
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
wkhtmltopdfの次どうするか問題2026
willnet
2
1.1k
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
420
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
110
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
590
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Navigating Weather and Climate Data
rabernat
0
520
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Automating Front-end Workflow
addyosmani
1369
210k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Transcript
Image Matching Challenge 2024 編
自己紹介 ぐちやま @goosehaaan - 社会人4年目のメーカーDS - 物理系出身 - 東京在住(一昨年まで2年間京都) - コンペは雑食・ソロ参加
- 趣味 ランニング(毎日7km) 旅行
Agenda - コンペ概要 - 上位解法 - しくじり紹介 - 教訓・まとめ
Image Matching Challenge 2024 - Hexathlon - CVPR Workshopの併設コンペ -
2022年から始まり今年で3回目(2024/3/26 - 2024/6/4) - シーン毎の画像セットから、カメラ位置・角度を推定するタスク - train: 36 ~ 1148枚、test: ~100枚 / シーン 教会シーンの場合 1) より引用
Image Matching Challenge 2024 - Hexathlon - 評価指標は全画像ペアの回転・並進行列の差の誤差を用いたmAA(mean Average Accuracy)
- シーンに応じて与えられた6段階の閾値ごとに正解率を計算、平均化 - シーンごとに正解率を計算、平均化 教会シーンの場合 1) より引用
Image Matching Challenge 2024 - Hexathlon 今年はHexathlon(六種競技)の名の通り、6種類の課題に該当するシーンが対象だった。 simmetories-and-repeats historical-preventation air-to-ground
day-night nature transparent
以下ベースライン(ホスト提供)を元にしたパイプラインが基本となる。 パイプライン 1. 画像マッチング(DINOv2) 3. 特徴点マッチング(LightGlue) 4. カメラポーズ推定(COLMAP) 2. 特徴点抽出(ALIKED)
keypoints (n_kpts , 2) descriptions (n_kpts , n_dim) keypoints (n_kpts , 2) matches (n_mchs , 2) 1) より引用 特徴点の座標とペア情報を COLMAP DBに保存 RANSACを用いた基礎行列計算 シーン再構成
Agenda - コンペ概要 - 上位解法 - しくじり紹介 - 教訓・まとめ
多くのチームが 1. 通常シーンと、2. 透明シーン で別々のパイプラインを組んでいた。 上位解法 1. 通常シーン 2. 透明シーン
1. 通常シーン - 大きく3種類の工夫ポイントがあった 1. 画像マッチング 2. 特徴点マッチング 3. カメラポーズ推定
上位解法
1. 通常シーン 1. 画像マッチング 上位解法 - 画像特徴による類似度マッチング - 特徴抽出の工夫 -
ベースラインのDINOv2を用いるチームが多かった - 画像:頂点、類似度:辺とする最小全域木を計算 - 網羅的マッチング - 全マッチングを試す - 今回は1シーンあたり画像数が最大100枚 - 高速化で対応可能だった 2位解法より引用
1. 通常シーン 2. 特徴点マッチング 上位解法 - モデル - ベースラインのALIKED +
LightGlueを用いるチームが多かった - division - 画像を分割して、より細かい特徴点を抽出 - rotation - 画像を90度ずつ回転させ、最もマッチする特徴点数が多い方向でマッチング - crop - マッチする特徴点の密集領域をcrop 1位解法より引用 6位解法より引用
1. 通常シーン 3. カメラポーズ推定 上位解法 - 独自のSfMパイプラインでCOLMAPのモデルを精緻化 - できるだけ多くの画像を再構成結果に登録 3位解法より引用
6位解法より引用
上位解法 2. 透明シーン - カメラが物体を取り囲むように撮影方法が特徴的だった - 通常パイプラインだと一見変化していない輪郭や背景でマッチしてしまう - 大きく2つのアプローチがあった 1)
より引用
上位解法 2. 透明シーン 2位解法より引用 1. DIP (Direct Image Pose estimation)
- 画像の類似度を元に画像の順序を推定後,カメラパラメータを直接推定するアプローチ - SSIM、画像・特徴点の特徴などが類似度に用いられた
上位解法 2. 透明シーン 2. マッチングの工夫 - 前処理の工夫により微細特徴を元に通常通りマッチングをおこなうアプローチ - 物体表面のcropなど 4位解法より引用
6位解法より引用
自分の結果 - 通常シーン - 画像マッチング:dinov2-base, netvlad - 特徴点マッチング: - ALIKED
+ LightGlue - rotation -> 4 divisions -> resize -> extract keypoint - 透明シーン - 画像マッチング:全マッチング - 特徴点マッチング: - ALIKED + LightGlue - padding -> object detection -> resize -> 9 divisions -> extract keypoint CVはいい感じ...!!
自分の結果 - 通常シーン - 画像マッチング:dinov2-base, netvlad - 特徴点マッチング: - ALIKED
+ LightGlue - rotation -> 4 divisions -> resize -> extract keypoint - 透明シーン - 画像マッチング:全マッチング - 特徴点マッチング: - ALIKED + LightGlue - padding -> object detection -> resize -> 9 divisions -> extract keypoint
Agenda - コンペ概要 - 上位解法 - しくじり紹介 - 教訓・まとめ
僕の苦労・失敗談4つを紹介 年一コンペの割に公開codeも少なく 参入障壁が高めのコンペに感じたので 来年以降初参加される方々の参考になれば幸いです
推論結果が 毎回変わる - COLMAPの出力結果が毎回変わる - 自環境では以下でパイプライン全 体の再現性を確保 - pycolmapのパラメータ変更 -
torch系ライブラリのversion変更 - torch.backends設定変更 - 公開codeでPB300~800位程度のス コアのばらつき - 非対処の上位解法もあり 1
- 明らかにマッチングが改善している のにスコアが向上しない - 画像に対しておこなった変換を、 colmap DBに保存する特徴点に反映し ていなかった - 画像変換
-> 特徴点逆変換のクラスを 用意して対処 2 特徴点の 逆変換を 忘れる
透明シーンの 検証が 足りない - 指紋や傷で特徴点を得るというアイ デアはあったが、やりきれず - 汎用detectorで輪郭内部を検出 - classは無視してscore最大のbboxを
cropする戦略をとった - 一方で上位解法では”bottle” classの あるデータセットで事前学習された segmenterを使用 - モデル調査やsegmentationをもっと 試すべきだった 3
テストシーンの 仕様を 間違える 4 - 史上最大のやらかし - testシーン名がtrainシーン名を含むも のと思い込む(実際はunknown) -
シーン毎に名前で条件分岐させたた め、全パイプラインがelse処理に - discussionにはちゃんと書いてあった
colmapのログ出力が長すぎる 公開notebookのALIKEDのresizeが機能していない LightGlueとHierarchical-Localizationがkaggle notebookでインストールできない 特徴点をアンサンブルしすぎてごく近傍なのに別の特徴点がマッチングしてしまう 透明シーンの順番推定を検証前に諦める 可視化が不十分で教会シーンの再構成の偏りに気付けない 出張期間用に自宅マシンの外部接続設定をするも使わない kaggle notebook上でプライベートレポジトリをcloneできない
何故か実験管理ツールが動かない 全く効かないcrop+アンサンブル+nmsのためにめちゃくちゃ時間を溶かす 提出ID以外の画像がtestセットに含まれていることに気付けない カメラ位置の閾値から透明シーンにおけるオブジェクトとの距離を推測できなかった : ∞
Agenda - コンペ概要 - 上位解法 - しくじり紹介 - 教訓・まとめ
教訓 - discussionはきちんと読む - ローカルでの実験が上手くいっているとdiscussionやcodeを読む優先度を下げがち - 定期的に時間を作ってupdateを追う - 本当にだいじ -
信じたアイデアにはとことん向き合う - 心中しても良いと思えるアイデアを見つける - ソロだと特に向かうべき道が定まらないことも多いイメージ - 微妙なアイデアも一旦試してみる - あきらめるのは簡単 - あまねく試せる手の速さを!
まとめ - Image Matching Challengeはアイデア次第で結果を出せる(はずの)面白いコンペ - しくじりを知ることで圧倒的成長 - つよつよな方々のしくじりも聞いてみたい -
Masterなりたい!!!! だ な り た い っ
参考 1) kaggle IMC2024コンペ 上位解法まとめ