読者です 読者をやめる 読者になる 読者になる

OpenCV3.0.0-alphaの特徴抽出・マッチングまとめ

C++ OpenCV OpenCV 3.0 Programming コンピュータビジョン

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,FASTXSTARSIFTSURF,ORB,BRISK,MSER,GFTT,HARRIS,Dense,SimpleBlob
OpenCV3.0.0-alpha FAST,ORB,BRISK,MSER,GFTT,HARRIS,SimpleBlob,KAZEAKAZE
opencv_contrib STAR,SIFT,SURF

赤字はOpenCV3.0.0-alphaで追加されたもの.
青字はopencv_contribを入れれば使えるもの.
灰色はOpenCV3.0.0-alphaでなくなってしまってopencv_contribにも入ってないもの.

FASTXとDenseはなくなってしまったようである.

特徴記述(DescriptorExtractorインターフェース)

DescriptorExtractor
OpenCV2.4.7 SIFTSURFBRIEF,BRISK,ORB,FRIEK
OpenCV3.0.0-alpha BRISK,ORB,KAZEAKAZE
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

f:id:whoopsidaisies:20140820194415j:plain


KAZE

f:id:whoopsidaisies:20140820194424j:plain


FAST

f:id:whoopsidaisies:20140820194432j:plain


ORB

f:id:whoopsidaisies:20140820194437j:plain


BRISK

f:id:whoopsidaisies:20140820194444j:plain


MSER

f:id:whoopsidaisies:20140820194454j:plain


GFTT

f:id:whoopsidaisies:20140820194459j:plain


HARRIS

f:id:whoopsidaisies:20140820194510j:plain


SimpleBlog

f:id:whoopsidaisies:20140820194515j:plain