対応点マッチング — 2枚の画像の「同じ場所」を結ぶ
視点を変えて撮った2枚の写真。その中から「これとこれは同じ場所だ」というペアを機械に見つけさせるのが対応点マッチングです。パノラマ合成・AR・3D復元、すべての入口になるこの技術を、星座マッチングのデモで体感します。
1. 「同じ場所」はどうやって見つける? — 記述子
前のレッスンで、画像の中から「目印になりやすい点(特徴点)」を見つけられるようになりました。次の問題は、別の写真に写った同じ点を探し当てることです。視点が変われば位置も向きも変わるので、「座標が近いから同じ」という作戦は使えません。
そこで各特徴点について、その点の周りの模様を数の並びに要約したものを作ります。これを記述子(ディスクリプタ)と呼びます。人間でいえば指紋のようなもの。「周りがどんな見た目か」を数値化しておけば、2枚の画像の間で記述子どうしの距離(違いの大きさ)を測り、いちばん似ている相手=最近傍を対応候補にできます。
下のデモは、同じ星空のようなシーンを視点を変えて撮った2枚の「画像」です。各星が特徴点で、それぞれ記述子を持っています。距離のしきい値を動かして、対応線がどう増減するか見てください。
2. 自信のある対応だけ残す — レシオテスト
誤対応を省く定番のアイデアがレシオテストです。発想はシンプルで、「2位に大差をつけた1位だけを信じる」というもの。
- 本当に対応する相手がいるなら、1位(最近傍)だけが飛び抜けて似ていて、2位以下は大きく離れるはず。
- 相手がいない・紛らわしい相手が複数いる場合は、1位と2位が接戦になる。そんな「自信のない対応」は捨てる。
下のデモでは、1つのクエリ点(画像1の星)に対する候補たちとの距離をランキング形式で表示します。比のしきい値を動かすと、どの対応が生き残るか、そして全体の精度がどう変わるかがライブで見えます。
3. 応用 — 対応点からパノラマが生まれる
対応点が手に入ると何がうれしいのか。代表例がパノラマ合成です。重なりのある2枚の写真で対応点ペアを見つけると、「画像2をどう動かせば画像1にぴったり重なるか」という変換(ずらし・回転・伸縮)を逆算できます。あとはその変換で2枚を貼り合わせるだけ。
この「対応点 → 変換の推定」という流れは、パノラマだけのものではありません。
- AR(拡張現実):カメラ映像と目印の対応から、スマホの位置・向きを推定してCGを重ねる。
- 3D復元:多数の写真の間の対応から、カメラの動きと点の奥行きを同時に逆算する(後のレッスンで登場)。
- 画像検索・地図作り:同じ場所が写った写真を対応点の数で見つけ出す。
4. まとめ
- 記述子:特徴点の周辺パターンを要約した「指紋」。記述子の距離が近い相手=対応候補。
- 最近傍は必ず見つかってしまうので、誤対応の排除が本質的に重要。
- レシオテスト:d₁/d₂ が小さい「2位に大差の1位」だけ採用。数を捨てて質を取る。
- 良い対応が得られれば画像間の変換を推定でき、パノラマ・AR・3D復元へつながる。