この記事では、ORB機能検出器とは何か、そしてPythonでどのようにそれを実装することができるかを見ていきます。
ORBとは、Oriented FAST and rotated BRIEFの略です。
こちらもご覧ください。
ORB特徴検出の紹介
Oriented FAST and rotated BRIEF (ORB) は、2011年にEthan Rubleeらによって発表された高速でロバストな局所特徴検出器で、物体認識や3次元再構成などのコンピュータビジョン課題で使用されています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import cv2
orb = cv2.ORB_create()
img = cv2.imread( "selena.jpg" , 1 )
kp, des = orb.detectAndCompute(img, None )
imgg = cv2.drawKeypoints(img, kp, None )
img = cv2.resize(img, ( 300 , 300 ))
imgg = cv2.resize(imgg, ( 300 , 300 ))
cv2.imshow( "Original Image" ,img)
cv2.imshow( "ORB Feature Detection on Image" ,imgg)
cv2.waitKey( 0 )
cv2.destroyAllWindows() |
ORBは、FASTキーポイント検出器とBRIEF記述子を改良したものを使用します。
この際,FASTの特徴量はスケール不変でも回転不変でもありません.FASTのスケールを不変にするために、マルチスケールピラミッドを利用します。
ORBは、各レベルで特徴を検出し、精度を向上させる。
PythonによるORB特徴検出の実装
ORB特徴検出に関しては,画像を読み込み,ORB特徴を検出・計算し,検出されたキーポイントを画像に描画するために,いくつかの直接的な関数を利用します.
画像を表示するために,OpenCV ライブラリの昔からある imshow
関数を利用します.以下にコードを示しますが、手順を理解して頂ければ幸いです。
この記事もチェック:PythonとOpenCVで画像の特徴量抽出・照合を実装する方法
Outputs #1
1.1 選択された原画
1.2 特徴抽出の後
サンプル出力 #2
2.1 選択された原画像
2.2 特徴抽出の後
まとめ
このように、我々のモデルによって主要な特徴が検出されたことがお分かりいただけたと思います。
あなたの個人的な画像を使って、同じアルゴリズムを試すことができます。
そして、モデルの結果に驚かれることでしょう。
お読みいただきありがとうございました。