ComputerVisionまとめの部屋

役に立った情報や調査結果をまとめています

特徴点を用いた物体認識

OpenCVでは、特徴点抽出・特徴記述・特徴点マッチングについてさまざまなアルゴリズムが実装されているが、共通のインターフェイスが用意されている(OpenCV3.0)。

共通インターフェイスを使えば、異なるアルゴリズムであっても同じ書き方でアプリケーションを実装することができる。

特徴点抽出は以下の3つのインターフェイスで構成される。

DescriptorExtractorインターフェイスを実行する際は、DescriptorExtractor::computeを呼び出す。第1引数に画像、第2引数に特徴点の配列、第3引数に画像の特徴情報を格納するための行列を指定する。

特徴点抽出からマッチングまで

1.画像内のコーナー(キーポイント)を求める
2.キーポイントを特徴付ける特徴量を計算する
3.キーポイント間の類似度を求める
3.類似度が指定した閾値以下であれば対応点とみなす(=マッチング)

特徴量を用いた物体認識

局所特徴量は、スケールの変化・平行移動・回転・隠蔽(オクルージョン)に対して頑強であるべきである。特徴点を使ったマッチングは、多少間違えがあっても、マッチング線が「特定の物体」に集中していれば(得票数が多ければ)きちんと物体が認識できることを利用して、テンプレートマッチングなどの方法と比較して高速化できる利点もある。

クエリとして与えた画像にどんな物体が写っているかを認識するには、物体モデルデータベースを検索して認識する。それが何かを認識するためには、その物体がモデルデータベースにあらかじめ登録されていないと認識できない。(登録されていない物体は何であるかを認識できない)

物体モデルデータベースは、モデルとする物体の画像から特徴量を抽出して物体モデルデータベースに格納し、各画像から抽出してキーポイントの特徴量を物体IDとひもづけて保存する必要がある。

 

特徴点抽出法の種類

Eigen

最小固有値が十分大きいコーナーを検出する方法

Harris

強いコーナーを検出する方法で、回転普遍性はあるがスケール変化普遍性がない

Fast

より多くのコーナーを検出する方法(OpenCV2.0から追加)

SIFT

特徴量を求める適切な範囲を計算してスケール・回転普遍性をもたせた(特許制約あり)

SURF

スケール変化・回転・輝度変化に対して耐性がある(特許制約あり)

STAR

SIFTやSURFと比較して、ローカライズ(エッジ上などノイズの影響を受けやすい部分を除去する処理)が入っている(OpenCV2.2から追加された)

MSER

領域分割の方法を利用。MSCRは改良版。

ORB

回転普遍性がありSURFの10倍、SIFTの100倍と高速である特許制約がなくライセンス的にも使いやすい特徴量。回転には環境だがスケール変化には比較的弱い。

AKAZE

OpenCV3.0で新たに追加された。SIFTやSURFの欠点を解決し、ロバスト性の向上と高速化を図ったもの。特許制約なし。SURFよりも処理速度が遅いが、これはOpenMPを用いた並列化処理が現時点ではなされていないためである。AKAZEは並列化に向いているのでOpenMPの利用により大幅なスピードアップが見込まれる

特徴量の抽出は手法によって求められる特徴量がまったく違うことがあるので、アルゴリズムの中身を理解して用途に応じて適切な手法を選択する必要がある。