『日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
対象物を違う視点から撮影した画像間では3次元空間中の同じ位置に対応する箇所について対応をとることができる。計算量や精度の観点から疎な特徴点を抽出し、それらの対応を求めることが一般的である。このようなタスクを局所特徴量に基づく画像マッチング(以降省略して画像マッチング)と呼ぶ。
この画像マッチングは様々なタスクで重要である。ステレオカメラで深度推定する場合は左の画像と右の画像の対応点(ステレオ対応点)を求め、三角測量と同じ原理で深度推定ができる。複数の異なる視点位置で撮影した画像群から3次元復元を行うStructure From Motion(SfM)は、画像マッチングを求め、それを基にカメラパラメータと疎な3次元点群を推定する。Simultaneous Localization and Mapping(SLAM)でもSfMと同様に対応点検出を行い、それを利用してリアルタイムの自己位置姿勢やそれに付随した3次元復元を実現する。動画の隣接するフレーム間で、ある時刻のフレームの各画素が次の時刻のフレームのどの画素に対応しているのかを求めるタスクはオプティカルフローと呼よばれ、対象物の動き検出や、自己位置推定に使われるが、これも広い意味での画像マッチングといえるだろう。
このように画像マッチングは画像から3次元環境を認識する上で重要な役割を果たす。既に画像マッチングを利用した製品は多く存在し、ステレオカメラによる深度推定や、外部センサなしでのVR機器の自己位置/姿勢推定(Oculus Questなど)、画像ベースのSLAMなどが実現されている。一方でチャレンジングな領域(屋外、撮影カメラ間のベースラインが大きい場合、精密な3次元復元が必要な場合)ではまだ多くの課題が残っている。画像マッチングにおいても深層学習を使った手法が大きく発展し、精度、速度面で従来手法を凌駕している。本稿では最新手法と今後の課題について解説する。
従来手法
はじめに、局所特徴量に基づく画像マッチングのワークフローについて簡単におさらいする。
1)画像から疎な特徴点を検出する。例えばコーナー領域は良い特徴点とされ、物体内部やエッジはどの点を選ぶかで自由度があり対応がとりにくいため良くない特徴点とされる。
2)特徴点毎に特徴記述子を求める。多くの場合ベクトルである。周囲情報から計算され、異なる視点からの画像中でも同じ特徴子となるよう、記述子はスケール、回転、 アフィン、射影変換に対し不変であることが望ましい。
3)マッチング対象画像それぞれで求められた特徴点集合同士で、特徴記述子が似ているかどうかを求め、似ている場合は対応しているとみなす。
局所特徴量の検出および記述子の代表手法がSIFT(Scale-Invariant Feature Transform)である。1999年に発表されて以来20年近く使われており現在も多く使われている。SIFTの代表特許が2020年に切れ、これからさらに利用が広がる可能性がある。SIFTについては多くの解説文献があるためここでは詳しく説明しないが、その大きな特徴はスケールや回転不変で特徴を抽出できる点である。これらの不変性は現在の手法でも達成できていない場合が多い。またSURFやORBなど速度を改善したり、射影変換不変性などを導入し精度を改善した手法も提案されている。
このように従来手法は人が特徴点の検出方法や記述子の計算方法を設計してきた。しかし、画像分類や物体検出において人間が設計した手法をデータドリブンで学習したCNNモデルが凌駕したように、画像マッチングにおいてもデータドリブンで求めた手法が人が設計した手法を凌駕するのではないかと考えられ、多くの研究がなされてきた。画像分類や検出に比べてだいぶ時間がかかったものの、この数年は従来の人間が設計した手法を上回る手法が登場している。
SuperPoint/SuperGlue
ここでは学習ベースの画像マッチングの代表的な手法としてSuperPoint1)、SuperGlue2)について紹介する。これらはAR機器を開発するスタートアップのMagic Leap社の研究者が発表した(研究の中心メンバーであるTomasz Malisiewicz氏は2020年に米Amazon Robotics社に移籍、Andrew Rabinovich氏は米Headroom社というスタートアップを創業し、CTOになっている)。
SuperPointとSuperGlueを組み合わせた手法はCVPR 2020やECCV 2020のVisual Localizationや Image Matching Challengeなど7部門で優勝し、最近のコンペティションを独占している。
SuperPointは局所特徴の検出および、その記述子をCNNを使って出力する。CNNは画像を入力とし、最初に1/64にダウンスケールした特徴マップを出力した後、検出用と記述子用のヘッドに分岐する。検出用のヘッドは各位置毎に65チャンネル出力し、64個の各位置で検出対象があるか、もしくは検出対象が1つもないかを出力する。記述子のヘッドも各位置毎に記述子を出力した後、バイキュービック補間を使って元の解像度にアップサンプリングする。
学習は人工的に作った教師ありデータを使って教師あり学習する。はじめに三角形や立方体、チェッカーボードなどの単純な図形からなる人工データを用意し、物体のコーナーや交差点を正解とした特徴点検出器を学習させる。この学習されたモデルをMagicPointとよぶ。次にMagicPointをMS-COCOなど実世界のデータに適用し特徴点を作り、さらに画像に射影変換(物体がフラットな平面だと仮定し視点変化をしていることになる)をかけてカメラ姿勢変換を模倣し、その結果得られる特徴点の対応を学習データとして利用する。人工的なデータであり射影変換のみで学習しているものの、想定以上に汎化することができる。
SuperPointはSIFTなど従来手法の精度を凌駕するとともに(図1)、全てCNNで処理できるため処理速度も速く、GPU1台で480×640解像度の画像に対して70fpsで動くと報告している。
次に検出された特徴点とそれらの記述子を基に、対応関係を求めるSuperGlueについて説明する。従来は記述子で近傍探索を行い最も似ている特徴点間で対応関係があるとし、さらに最も似ている特徴点と二番目に似ている特徴点との類似度の比が一定以上の場合のみ採用するなどのヒューリスティックスを利用しフィルタリングを行っていた。
SuperGlueは与えられた特徴点集合から対応関係を、グラフニューラルネットワークにより直接出力する。$M$個の特徴点が検出された画像Aと$N$個の特徴点が検出された画像B間の特徴マッチングを行うことを考える。目標は$M \times N$の対応行列$P$を出力することであり、$i$番目の特徴点と$j$番目の特徴点が対応する場合に$P_{i,j} = 1$、そうでない場合$0$となるような行列である。各特徴点は$1$箇所と対応するか、もしくは対応点が無い場合かを満たすため、$P \mathbf{1}_M \leq \mathbf{1}, P^T \mathbf{1}_N \leq \mathbf{1}$($P$の各行、各列に$1$が高々1個しかない)を満たす。
各特徴点は画像中の位置と記述子で表される。はじめに位置を位置符号化を使ってベクトルとし、記述子と組み合わせる。次に自己注意機構を使って同じ画像内の特徴点集合から情報を集約(自己注意)するのと、相手の画像の特徴点集合から情報を集約(相互注意)し、内部状態を更新する。自己注意では他の特徴点からどのような物体を表しているのか、画像全体は何を表しているのかといった情報を集約することができる。相互注意では対応する特徴点候補の情報を集約できる。そして、特徴点毎にベクトル出力する。次に全特徴点間で内積を計算し、特徴点間の類似度を求め類似度行列を作成する。最後に類似度行列の各要素を負の輸送コストだとみなし、確率分布間の最小輸送コストを求められる最適輸送を使って最終的な対応を求める。与えられた輸送コストから最適輸送を求める操作は微分可能なSinkhornアルゴリズムを使って求められる。これによって全体の操作が微分可能であり、end-to-endで学習することができる。
SuperGlueを使うことによって、従来のSIFTを使った場合でも性能向上がみられるが、SuperPointなど学習ベースの記述子を使った場合に大きな性能向上がみられる。これはSIFT記述子を使った後の対応を見つける処理(類似度比フィルタ等)は多く研究が進んでいるが、学習ベースで獲得した記述子に対する対応点検出には改善の余地があり、学習ベースで最適化しやすかったとみられる。
その他の特徴点検出・記述子計算
SuperPointも、どの特徴点が良いか(コーナーを使うなど)は人手で設計している。画像マッチングがうまくいくような特徴点検出をend-to-endで学習する手法も登場している。検出ステップでどの特徴点を抽出するかは微分可能な操作にしにくいが、例えばDISC3)は各操作を確率的な行動とし、強化学習を使って学習する。DISCはSIFTやSuperPointと比べてはるかに多くの有効な特徴点を検出することができ、後段のSfM処理などの性能を改善できている。また、HyNet4)は記述子学習時に使うTriplet損失が正例間と負例間で異なる特性をもつことから、L2正則化付き内積やL2距離を組み合わせた損失を利用し、また適切な正規化を組み合わせることで大きく性能を改善している。
これらの手法を利用した深度推定や自己位置推定、3次元復元は性能が向上し続けており、今後多くの用途が広がると考えられる。
2)Paul-Edouard Sarlin et al., “SuperGlue: Learning Feature Matching with Graph Neural Networks,” CVPR 2020, https://openaccess.thecvf.com/content_CVPR_2020/papers/Sarlin_SuperGlue_Learning_Feature_Matching_With_Graph_Neural_Networks_CVPR_2020_paper.pdf 3)M. J. Tyszkiewicz et al., “DISK: Learning local features with policy gradient,” NeurIPS 2020, https://papers.nips.cc/paper/2020/file/a42a596fc71e17828440030074d15e74-Paper.pdf
4)Y. Tian et al., “HyNet: Learning Local Descriptor with Hybrid Similarity Measure and Triplet Loss,” NeurIPS 2020, https://papers.nips.cc/paper/2020/file/52d2752b150f9c35ccb6869cbf074e48-Paper.pdf
Preferred Networks 代表取締役 最高執行責任者
