目次 — 知りたいところから読む

入力を変えて確かめる

実験パネルを開き、実行を押すとPythonを読み込みます。停止と初期値へのリセットができます。結果はこの端末内で計算します。Pythonのインストールは不要です。

下にあるローカル実行の手順は、配布ソースを再現するための任意の手順です。ブラウザ実験には不要です。

実験パネルを別タブで開く

再現用ソースをダウンロード

対応線を比較する

基準を実行してAに保存し、絞り込みなし・回転・縮小・繰り返し模様などをBとして比べます。青い丸と実線は採用・真値一致、紫の×印と実線は採用・真値不一致です。灰点線は記述子での除外、橙破線は幾何段階での除外を示します。スマートフォンでは画像を縦に並べます。リセットで初期値に戻り、共有では保存したAではなく現在の入力条件を再現します。

特徴点から記述子へ

共通のShi–Tomasi検出器で各画像から最大80点を抽出します。記述子は有効な9×9画素のグレーパッチです。生の値、または平均を引いてL2正規化した値を選び、ユークリッドL2距離で比較します。距離比フィルタには近傍が2つ必要で、d1 < 上限 × d2を厳密に満たすものだけを通します。第2距離がゼロなら通しません。相互最近傍では互いが最近傍であることを要求します。正規化はクリップしない明るさの倍率変化に対応できますが、回転・スケール不変性はありません。ORBやSIFTではありません。

幾何モデルと真値

幾何検証をONにすると、平行移動・回転・一様拡大縮小からなる相似変換を推定します。せん断や透視変換は含みません。2組から作る仮説を全探索し、3組以上の支持を要求して1回再推定し、変換後の画素単位で残差を判定します。候補が3組未満、またはモデルを作れない場合は何も採用しません。OFFでは記述子で絞った候補を採用し、モデルの指標は未定義です。

モデル内点比は、内点数を記述子で絞った候補数で割ります。一方、採用中の真値一致率は既知の変換と固定3画素の許容誤差で判定します。真値誤差RMSは採用した対応の位置誤差、モデル残差RMSは推定モデルへの残差です。格子RMSは画面内に見える固定格子で推定と真の変換を比較します。分母が空なら—です。誤ったモデルでも残差が小さい場合があり、30°回転プリセットで観察できます。繰り返し模様で対象の同一性を保証することはできません。

保存した計算例

配布したプリセットを実際に計算した値です。画像・マスク・変換は抽出Labを再利用し、双線形補間、平均ぼかし、倍率、固定一様ノイズ、クリップの順です。グレー値は物理的な輝度ではなく、縮小前のアンチエイリアス処理もありません。正確なしきい値・同点処理・有効領域・評価格子はソース内のモデル定義に記載し、JSONには画素と全対応候補を含めます。

図1 · ボタンで表示を切り替え
計算した元画像と変換後の画像の対応線。採用した対応と除外した候補を区別しています。
プリセット 最近傍 絞り込み後 採用 モデル内点比 採用中の真値一致率
基準 22 11 11 100.0% 100.0%
30°回転 22 6 3 50.0% 0.0%
30°・しきい値6px 22 6 5 83.3% 0.0%
繰り返し・絞り込みなし 80 80 80 — 7.5%
繰り返し・絞り込みあり 80 1 0 — —
テクスチャなし 0 0 0 — —

関連する学習

オプティカルフロー Labで2フレーム間の特徴点の移動を追跡する。

画像の明るさ・輝度 Lab — 露出、ガンマ、クリッピングを比較

次に読む

特徴点抽出Lab特徴点抽出 Lab — Harris と Shi–Tomasi を比較するVisual SLAMの全体像Visual-SLAM入門 — カメラで「自分がどこにいるか」を知る技術シリーズの次の内容へ進むFeature Tracking(特徴点追跡)入門 — 同じ点をフレーム間で見失わない方法