2012-08-01 5 views
7

최근에 나는 객체 추적 문제에 대한 해결책을 연구 중입니다. 내가해야할 일은 2D 평면에서 움직일 수있는 3D 객체, 즉 x와 y의 이동과 z 주위의 회전을 식별하고 추적하는 것입니다. 추적 될 객체는 미리 알려지고 원하는 정보가 추출 될 수 있습니다. 또한 조명 조건이 심각한 변화를 겪지 않으며 배경이 상대적으로 고정되어 있다고 가정합니다. 추적 할 객체는 일반적으로 단일 색상이 아니므로 색상 별 추적은 옵션이 아닙니다.OpenCV : 2D 평면에서 움직이는 3D 객체 추적

배경 차감과 동적 템플릿 일치를 사용하여 여러 2D 개체를 추적하기위한 프로토 타입을 성공적으로 구현했습니다. 이제 3D 개체 추적으로 확장하고 싶지만, 지금까지 내가 찾거나 성취 한 것에 실망했습니다. 나는 누군가가 약간의 빛을 비출 수 있기를 희망하면서 내가 시도한 몇 가지 시도를 나열 할 것이다.

1) 동적 Template matching : 사용자가 비디오 프레임에서 개체를 선택한 다음 개체 주위에 검색 영역이 정의됩니다. 그런 다음이 물체는이 영역 내부에서 검색됩니다. This clip는 나에게 원래 아이디어를 주었다. 불행히도, 이것은 실제로 저에게 효과적이지 않았습니다. 왜냐하면 물체가 회전 할 때 잃어 버리기 때문에 (다시 카메라로 되돌아갑니다). 개체를 찾을 때 템플릿을 계속 업데이트하려고했지만 템플릿이 occluded이 될 때마다 템플릿이 다른 (외부) 개체가됩니다.

2.) Lucas-Kanade 옵티컬 플로 : OpenCV의 goodFeaturesToTrack을 사용하여 추적 할 좋은 점을 찾고 calcOpticalFlowPyrLK를 사용하여 여러 점을 통해 이러한 점을 추적하려고했습니다. 그러나이 알고리즘의 성능은 다소 실망 스러웠습니다. Oxford Corridor 데이터 세트에 적용했지만 원래 감지 한 포인트는 곧 사라집니다.

3) SURF : SURF로 피쳐를 감지하려고했지만,이 문제는 서로 다른 시야각과 크게 다를 수있는 3D 오브젝트에이를 적용하는 것이 매우 어렵다는 것이 었습니다. cv2의 SURF에 대한 문서를 찾기를 희망했는데, SURF Feature 추출기에 keypoints (아마도 goodFeaturesToTrack)를 제공하는 기능을 제공하는 것처럼 보였습니다. 불행히도, 나는 이것을 할 수있는 방법을 아직 찾지 못했습니다. S.에 대한 내 질문 : OpenCV: Extract SURF Features from user-defined keypoints

배경 : 데스크톱 컴퓨터에서 처리 한 모든 단일 처리 된 고정 웹캠이 있습니다. 나는 OpenCV의 파이썬 래퍼와 Windows 7의 Eclipse 용 PyDev 플러그인을 사용하고있다.

누구나 이미 언급 된 기술의 성능을 향상시키기위한 추가 기술을 제안 할 수도 있고, 고맙습니다.

+2

어때 이것에 관하여 : http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html – moooeeeep

+0

나는 실제로 그것을보고있었습니다! 무슨 우연의 일치지만, 어쨌든 고마워 :) [멋진 비디오] (http://www.youtube.com/watch?v=1GhNXHCQGsM&feature=related) – casper

답변

0

추적하려는 개체를 보지 않고 몇 가지 유용한 제안을하기가 어렵습니다. 몇 장의 사진을 찍어서 토론에 도움이되는 문제를 보여 주면됩니다. 여기에있는 사람들은 때로는 제안/아이디어를 구현하고 공유합니다.

+0

안녕하세요, 귀하의 회신에 감사드립니다! 내 솔루션은 제시된 모든 개체를 추적 할 수 있어야합니다 (예 : 커피 머그잔, 체스 조각, 박제 동물, 장난감 자동차 또는 비슷한 대상. 이 객체가 무엇인지는 모르겠지만 일단 추적 알고리즘이 결정되면 어떤 종류의 모델도 만들 수 있습니다. – casper