論文要約: DeDoDe: Detect, Don’t Describe — Describe, Don’t Detect
随時更新していく予定です。
モチベーションを保つためWIPでも公開しています。
ご容赦ください。
最近korniaにfeatureが追加されたことで存在を知りました。
カメラのポーズ推定で高い性能を出すようで期待しています。
Abstract
keypointの検出は3D再構成に必要で、複数の視点間で同じ点を検出しなければならない。大きな課題の一つは目的関数の設定である。既存の学習ベースの手法はkeypointとdescriptorを同時に学習していた。しかしdescriptorの最近傍に基づくkeypointの検出は、keypointの3次元的な対応を保証しない。更にkeypointを特定のdescriptorに結びつけてしまうのは、それ以降の処理を複雑化させる。そこで本論文は大規模なSfMでの軌道を検出するよう検出器を学習する。学習する点は疎であるため、それを十分量に拡張する半教師あり2視点検知目的関数なるものを導入する。descriptorの学習には相互最近傍の最大化を用いる。その結果、DeDoDeが既存手法に対して顕著な進歩があることが示された。
この論文までの文脈
[前提]
Structure from Motionでは複数の画像間で3次元的に対応する点を多数拾い上げる必要があります。そのためには対応点の候補となるkeypointsを各画像から抽出するdetectorと、keypoint同士が対応するか否かを判定するための特徴量を求めるdescriptorが用いられます。
[従来]
detectorとdescriptorは完全に独立したものを使用します。detectorの例はガウシアンの変化が最大値と取る点などで、descriptorの例はSIFT特徴量などです。ここでの問題はお互いに独立して開発されているものなので、シナジーがないことです。
[近年の傾向]
上記問題の解決のため、detectorとdescriptorを一緒に学習してシナジーを最大化しようとアプローチするのは自然です。これにも問題がいくつかあり、detector/descriptorがお互いそれ以外では当然ながら全く機能しないものになることが代表的なものです。また、マッチはできなくても良いkeypointであったり、マッチはできても良いkeypointではない場合も存在し、それらを考慮できない学習はパフォーマンスを悪化します。
[提案]
この論文では、同一の目的関数を持ちつつも学習の独立性を担保することで上記問題の解決を試みます。
Discussion