OpenCV3.0.0-alphaの特徴抽出・マッチングまとめ
OpenCV3.0.0-alphaのパッケージが公開されたと話題になっていたので使ってみる.
Change Logを見るとAKAZE特徴量が組み込まれている.
AKAZE特徴量の紹介と他特徴量との比較 - 遥かへのスピードランナー
によるとAKAZE特徴量は,以前のOpenCVでもakaze-opencvというパッケージを入れれば使えたが,OpenCV3.0.0-alphaでは元々組み込まれているのでそのまま使えるようだ.
逆にSIFTやSURFなんかは元々OpenCVで使えたが
OpenCV 3.0.0-alphaでSIFT/SURFを使う | .COM-POUND
によると,opencv_contribに移動されてしまいOpenCVと一緒にビルドしないと使えないようである.
OpenCV3.0.0-alphaでの変更点まとめ
以前当ブログで
OpenCVで画像の特徴抽出・マッチングを行う - whoopsidaisies's diary
にOpenCV2.4.7の画像の特徴抽出あたりをまとめた記事を書いていたので,今回はOpenCV3.0.0-alphaでの変更点をまとめてみる.
特徴点抽出(FeatureDetectorインターフェース)
| FeatureDetector | |
|---|---|
| OpenCV2.4.7 | FAST,FASTX,STAR,SIFT,SURF,ORB,BRISK,MSER,GFTT,HARRIS,Dense,SimpleBlob |
| OpenCV3.0.0-alpha | FAST,ORB,BRISK,MSER,GFTT,HARRIS,SimpleBlob,KAZE,AKAZE |
| opencv_contrib | STAR,SIFT,SURF |
赤字はOpenCV3.0.0-alphaで追加されたもの.
青字はopencv_contribを入れれば使えるもの.
灰色はOpenCV3.0.0-alphaでなくなってしまってopencv_contribにも入ってないもの.
FASTXとDenseはなくなってしまったようである.
特徴記述(DescriptorExtractorインターフェース)
| DescriptorExtractor | |
|---|---|
| OpenCV2.4.7 | SIFT,SURF,BRIEF,BRISK,ORB,FRIEK |
| OpenCV3.0.0-alpha | BRISK,ORB,KAZE,AKAZE |
| opencv_contrib | SIFT,SURF,BRIEF,FREAK |
赤字はOpenCV3.0.0-alphaで追加されたもの.
青字はopencv_contribを入れれば使えるもの.
特徴点マッチング(DescriptorMatcherインターフェース)
| DescriptorExtractor | |
|---|---|
| OpenCV2.4.7およびOpenCV3.0.0-alpha | BruteForce,BruteForce-L1,BruteForce-SL2,BruteForce-Hamming,BruteForce-Hamming(2),FlannBased |
DescriptorMatcherに関しては変わりがないようである.
AKAZEを使ってみる
AKAZEを使ってみたかったので,OpenCV3.0.0-alphaで特徴抽出を行ってみる.ついでに他のアルゴリズムとも画像を比較してみる.特徴抽出のソースコードは以下.
cv::String detectorNames[] = {"AKAZE", "KAZE", "FAST", "ORB", "BRISK", "MSER", "GFTT", "HARRIS", "SimpleBlob",};
auto img = cv::imread("Penguins.jpg");
for (int i = 0; i < 9; i++)
{
auto detector = cv::FeatureDetector::create(detectorNames[i]);
std::vector<cv::KeyPoint> keyPoints;
detector->detect(img, keyPoints);
cv::Mat output;
cv::drawKeypoints(img, keyPoints, output, cv::Scalar::all(-1),cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
cv::imwrite(detectorNames[i] + ".bmp", output);
}
AKAZE

KAZE

FAST

ORB

BRISK

MSER

GFTT

HARRIS

SimpleBlog
