2017-03-17 1 views
1

안녕하세요 :) 저는 openCV 초보자입니다.기능 (ORB)을 사용하여 객체 주위에 직사각형을 그리는 방법

을 사용하여 추적 프로그램을 개발하려했습니다. 감지 된 객체 주위에 직사각형을 그려야합니다.

이것은 추적 프로그램의 result의 일부입니다. '검은 차'는 내가 추적하고 싶은 것 (흥미있는 물건)이다. 보시다시피, '블랙 카'주변에는 많은 불필요한 기능과 감지 된 기능이 있습니다.

감지 된 개체를 그리기 위해 2 가지 방법이 있다고 생각했습니다.

1) 기능 밀도 확인 : '검은 자동차'주변의 기능은 다른 기능보다 밀도가 높습니다. 그래서 ... 내가 얼마나 밀도가 있는지 계산할 수 있다면 (아마도 '블랙 카'주변의 영역이 가장 높은 밀도를가집니다.)? 그러면 사각형을 더 쉽게 그릴 수 있습니다.

2) 불필요한 피쳐 제거 : 필요한 피쳐 만 남아있는 경우 해당 피사체의 중심을 계산할 수 있습니다.

지금부터 'center of all features'를 사용해 왔습니다. 하지만 생각보다 효과적이지 않습니다. 이 방법을 사용했을 때 직사각형이 '검은 차'에서 조금 떨어져 있기 때문에.

위의 두 가지 방법과 관련된 기능이나 알고리즘이 있다면 알려 주시기 바랍니다. 너희들이 위의 일들을 더 잘 알고 있다면 나에게도 도움이된다.

은 사전에 감사 너희들이 좋은 하루 되세요 희망 :

답변

0

귀하의 질문에 대한 답변을 먼저 - 당신이 그들을 일치하거나 되려고 노력하고있는 것을 알 필요가 물체를 감지하는 기능을 사용하려면 객체가 항상 배경보다 훨씬 많은 기능을 제공하는지 확인하십시오. 이들 중 어느 것도 귀하의 상황에 해당하지 않습니다.

배경이 시끄 럽고 자동차 자체보다 더 많은 모서리를 포함 할 수 있으므로 실제 데이터를 사용할 때 자동차의 위치를 ​​결정하는 데 독자적으로 기능을 사용하게됩니다.

우선, 최대한 빨리 실제 데이터를 수집하십시오. OpenCV에 대한 경험이없고 미래의 문제를 예측할 수 없기 때문에 제공 한 가짜 이미지로 알고리즘을 개발할 필요가 없습니다.

둘째 : 비디오 용으로 개발하는 것은 스틸 이미지 용으로 개발하는 것과 약간 다릅니다. 귀하의 상황에 매우 유용 할 수 있으므로 this tutorial을 확인하십시오.

가장 기본적인 파이프 라인 문제는 다음과 같이 보일 것이기 : 물론

perform some preprocessing (blurring for example) 
calculate difference between 2 consecutive frames, to obtain the moving objects; 
perform some filtering and binarization; 
find contours of the objects; 
decide if any of them is a car based on shape and size; 
find out it's color; 
draw a rectangle around it if it's black. 

이이 알고리즘의 모든 단계에 사용할 수있는 고급 기술,하지만 난이 시작하는 것이 좋습니다 간단한 접근법.

1

당신이 키포인트에 충실하려는 경우 당신이 할 수있는 다음 :

  1. 최고의 RANSAC의 호모 그래피를 계산
  2. 이 키포인트의 매칭을 계산하는 두 이미지의 모든 키포인트를 감지하고 설명
  3. 모든 inlier를 배경이 될 수있는 하나의 객체로 선택하십시오.
  4. 모든 비-inlier 키포인트로부터 다음 RANSAC 동조화를 계산하십시오
  5. 모든 inlier를 다른 객체로 선택하십시오.
  6. ... 등등
  7. 너무 적은 키포인트가 남거나 좋은 호모 그래피를 계산할 수 없을 때까지.

대신 또는 추가로 많은 다른 방법 (배경 빼기, 확률 적 추적, 크기 가정 등)을 사용할 수 있습니다. 좋은 결과를 기대한다면 그것은 사소한 일이 아닙니다.

+0

나는 그 질문에 어떻게 대답하는지 모르겠습니다. 그는 두 이미지 사이의 매칭 기능을 언급하지 않았습니다. 그는 검은 차를 닮은 것을 탐지하는 것과 마찬가지로 "검은 차"에 대해서 이야기하고 있습니다. 나는 그가 훈련 데이터를 가지고 있다고 생각하지 않는다. 또는 테스트 데이터와 일치 시키려고하는 진실의 진실로 작동 할 것이 아무것도 없다. – m3h0w

+1

여전히 질문에 대한 대답입니다. 두 이미지간에 키포인트를 일치시킬 수 있습니다. 기본적으로 움직이는 물체 (파노라마에서 두 번 볼 수 있음)를 필터링하는 옵션을 사용하여 이미지 모자이크를 생각해보십시오. 그러나 원하는 결과가 나오기 때문에 해당 오브젝트를 제거하는 대신 – Micka

관련 문제