検出器と記述子の組み合わせ

キーポイントの検出器だけ、記述子だけ、またその両方が提案されているものが多数ある。

いくつかの主要な局所特徴のまとめ

手法 検出器 記述子 回転 スケール
SIFT DoG 輝度勾配ヒストグラム 支配的な輝度勾配方向 DoGピラミッド
SURF ボックスフィルタ ボックスフィルタによる輝度勾配の和と絶対値の和 同上 ボックスフィルタピラミッド
BRISK FAST または AGAST 規則的なサンプリング点上のBRIEFを元にしたバイナリ局所記述子 同上 FASTスコアを利用したスケールスペース
ORB oFAST 学習によるサンプリング点上のBRIEFを元にしたバイナリ局所記述子 輝度の重心 F複数スケールの画像ピラミッド

OpenCVで使えるもの

出典: https://qiita.com/hmichu/items/f5f1c778a155c7c414fd

名称 手法 (カッコ書きは検出・記述子のどちらかの場合) 記述子の表現 参考資料
cv2.GFTTDetector goodFeaturesToTrack (特徴点検出) -
cv2.AgastFeatureDetector AGAST (特徴点検出) -
cv2.FastFeatureDetector FAST (特徴点検出) - http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_feature2d/py_fast/py_fast.html
cv2.MSER MSER (特徴点検出) -
cv2.BRISK BRISK バイナリ
cv2.KAZE KAZE スケール
cv2.ORB ORB バイナリ http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_feature2d/py_orb/py_orb.html
cv2.AKAZE A-KAZE バイナリ https://qiita.com/hitomatagi/items/caac014b7ab246faf6b1
cv2.xfeatures2d.StarDetector StarDetector (特徴点検出) -
cv2.xfeatures2d.MSDDetector MSD (特徴点検出) -
cv2.xfeatures2d.LATCH LATCH (特徴量記述) バイナリ
cv2.xfeatures2d.LUCID LUCID (特徴量記述) ?
cv2.xfeatures2d.BriefDescriptorExtractor BRIEF (特徴量記述) バイナリ http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_feature2d/py_brief/py_brief.html
cv2.xfeatures2d.DAISY DAISY (特徴量記述) 実数ベクトル
cv2.xfeatures2d.FREAK FREAK (特徴量記述) バイナリ
cv2.xfeatures2d.SIFT SIFT 実数ベクトル http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html
cv2.xfeatures2d.SURF SURF 実数ベクトル http://lang.sist.chukyo-u.ac.jp/classes/OpenCV/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.html

いろいろな検出器

  • 回転不変: Hessian, Harris, SUSAN, LoG, SIFT, MSER, Hessian-Affine, SURF, FAST, ASIFT,KAZE, BRISK, AGAST, AKAZE
  • スケール不変: DOG, LoG, SIFT, MSER, Hessian-Affine, SURF, BRISK, ASIFT、KAZE, AKAZE
  • アフィン不変: MSER, Hessian-Affine, ASIFT