8

OpenCvカメラの前にあるオブジェクト(モニュメントなど)を認識し、それに関する情報を表示するアプリを開発したいと考えています。

問題は、オブジェクト (モニュメントなど) の形状を認識したり、画像と比較したりする方法OpenCVです。
そして、これを行うための最良の方法は何ですか?

オブジェクトの検出と比較のための何らかのサンプルまたはチュートリアルがあればよいでしょう。

ありがとうございました。

4

1 に答える 1

6

あなたが尋ねる最良の方法は、たとえばOpenCVのSIFT、SURF、ORBなどのローカル機能検出器を使用することです。

検出したいオブジェクトの画像が少なくとも 1 枚必要です。その後、これらのアルゴリズムはその画像を他の画像と比較して、それらが十分に類似しているかどうかを確認できます。

アルゴリズムのドキュメントは次のとおりです。

  • ORB など:

http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html

  • SURF と SIFT (「不自由」):

http://docs.opencv.org/modules/nonfree/doc/feature_detection.html

これらのアルゴリズムがそのタスクで機能する方法は、各画像の興味深い点を選択し、それらを比較して一致するかどうかを確認することです。複数の一致が見つかった場合、画像に同じオブジェクトが含まれている可能性が最も高くなります。

チュートリアル(特徴検出以降):

http://docs.opencv.org/doc/tutorials/features2d/table_of_content_features2d/table_of_content_features2d.html

このトピックに関連するC++ サンプルもここにあります (サンプルは OpenCV ダウンロード パッケージにも含まれています)。

  • 例えば。"matching_to_many_images.cpp"
  • "video_homography.cpp"

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/cpp

Android Java のサンプルはこちら (関係ありませんが参考になります):

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/android

または、実際にはこのトピックの最新のものであるPython サンプル(この投稿が書かれた時点で):

http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/python2

最後の注意として、@BDFun がコメントで述べたように、これは簡単なことではありません。

詳細 - OpenCV 機能の検出と説明の概要が必要な場合は、この投稿を確認してください

于 2012-06-15T09:00:53.267 に答える