2017-04-18 2 views
1

장면에서 여러 객체를 찾고 싶습니다 (객체는 동일하게 보이지만 크기와 회전이 다를 수 있으며 감지 할 객체가 무엇인지 알 수 없습니다).다중 객체 감지 (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. 
이 구현의 문제점은 내가 많이 시간을 계산의 필요가있는 장면을 여러 번의 키포인트를 계산할 필요가있다

(250 밀리 초를 : I 작품에서 OpenCV의 featuredetectors에 따라 다음과 같은 생각을, 구현). 누구든지 여러 개체를 검색하는 데 더 좋은 아이디어가 있습니까? 내가 빨리 참으로 ORB를 시도하고 내가 Akaze을 다할 것입니다 togehter

감사 Drian

+0

어떤 탐지기 및 설명자를 사용하고 있습니까? –

+0

지금 SURF 감지기 및 설명자 사용 – Drian

+0

대신 SURF보다 빠른 ORB를 사용해야 할 수도 있습니다. 하지만 당신의 이미지가 얼마나 정확한지 모르겠습니다. –

답변

0

안녕하세요.

ORB를 테스트하는 동안 나는 문제 다음 encouterd 한 :

나던 링크에 (작은 및 큰 그림에서 같은 키포인트를 찾습니다 (서핑에서 발견 키포인트에 영향을 미치는 내 그림의 크기를 chaning 동안 그림 오른쪽)), ORB에 의해 감지 된 키포인트에 영향을줍니다. 작은 picute에서 나는이 키포인트를 찾을 수 없습니다. 나는 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); 

당신이 알고, 방법의 크기에 관계없이 동일한 키포인트를 검출 할 수 키우면 마십시오 사진?

인사말 Drian

+0

크기와 상관없이 동일한 키 포인트를 감지하면 어떻게 될까요? 여러 개체를 감지하고 그 개체의 픽셀을 0으로 설정 한 경우 크기에 관계없이 개체 검색이 정확하면 내 의견으로는 중요하지 않습니다. –

+0

큰 부분의 작은 부분을 감지하고 싶을 때 ORB로 객체를 찾을 수 없기 때문에 ORB가 탐지 한 작은 그림에는 키포인트가 없습니다. 대신 SURF를 사용하면 키포인트가 생깁니다. 객체를 감지 할 수 있습니다. – Drian

+0

그건 사실 문제입니다. 매개 변수들, 특히'scaleFactor'와'patchSize'를 가지고 놀아보아야합니다. 그래도 문제가 해결되지 않으면 탐지 대신 'BRISK'를 사용하고 설명을 위해서는 'BRISK OBUS'를 사용하십시오. 탐지기는 당신에게'Keypoints'를 많이 주어야합니다. 그래서 당신은 호모 그래피를 추정하기 전에 기술자들로부터 일치를 필터링 할 수 있습니다. –