2017-04-18 10 views
1

シーン内に複数のオブジェクトを見つけたい(オブジェクトは同じように見えますが、縮尺や回転が異なり、検出されるオブジェクトが何であるかはわかりません)。私は作品のOpenCV、中featuredetectorsに基づいて、次のアイデアを実装している:複数のオブジェクトの検出(OpenCVを使用)

detect and compute keypoints from the object 
for i < max_objects_todetect; i++ 
    1. detect and compute keypoints from the whole scene 
    2. match scene and object keypoints with Flannmatcher 
    3. use findHomography/Ransac to compute the boundingbox of the first object (object which hast the most keypoints in the scene with multiple objects) 
    4. set the pixel in the scene, which are within the computed boundingbox to 0, -> in the next loopcycle there are no keypoints for this object to detect anymore. 

この実装を通報します私はシーンのキーポイントの時間を計算するの多くを必要とする複数回(250msのを計算する必要があるということです)。誰もが複数のオブジェクトを検出するための良いアイデアを持っていますか?

おかげでDrian

+0

どのような検出器とディスクリプタを使用していますか? –

+0

今すぐSURF検出器とディスクリプタを使用 – Drian

+0

代わりにORBを使用してください。SURFより高速です。しかし、あなたのイメージがどれほど正確かはわかりません。 –

答えて

0

こんにちはtogehter私は確かに高速であると私はAkazeをしようとするORBを試してみました。

ORBをテストしている間、私はこの問題次encouterdています

doesn'tリンクで(小規模でと大きな画像で同じキーポイントを見つける(サーフで検出されたキーポイントに影響を与え、私の絵の大きさをchaningながら画像右))、ORBによって検出されたキーポイントに影響します。小さなピケッテで私はこれらのキーポイントを見つけることができません。私はORBのパラメータを試してみましたが、動作させることはできませんでした。

画像:http://www.fotos-hochladen.net/view/bildermaf6d3zt.png

SURF:

cv::Ptr<cv::xfeatures2d::SURF> detector = cv::xfeatures2d::SURF::create(100); 

はORB:

cv::Ptr<cv::ORB> detector = cv::ORB::create(1500, 1.05f,16, 31, 0, 2, ORB::HARRIS_SCORE, 2, 10); 

は、あなたがどうかを知り、そしてどのようにサイズとは無関係に同じキーポイントを検出することが可能it'sください写真(複数?

ごあいさつDrian

+0

大きさとは無関係に同じキーポイントを検出した場合、どのように重要ですか?複数のオブジェクトを検出してそれらのピクセルを0に設定している場合、オブジェクトの検出がサイズに関係なく正確であれば、それは問題ではありません。 –

+0

大きな部分の小さな部分を検出したいとき、ORBでオブジェクトを見つけることができないのでORBで検出された小さな画像にキーポイントがないため、代わりにSURFを使用するとキーポイントがありますオブジェクトを検出することができます。 – Drian

+0

それは本当に問題です。パラメータ、特に 'scaleFactor'と' patchSize'を試してみてください。それでも問題が解決しない場合は、検出のために 'BRISK'を使い、説明のために' OBIS BRISK'を使ってみてください。検出器はあなたに 'Keypoints'をたくさん与えなければならないので、ホモグラフィを推定する前に記述子からマッチをフィルタしたいかもしれません。 –

関連する問題