2012-01-03 3 views
2

25 FPS에서 새 이미지를 얻는 응용 프로그램에서 SURF 기능 (또는 유사한 기능)을 추출하려고했습니다. 나는 적어도 실시간으로 가능한 한 특징 추출이 가능할 것이라고 생각했다. 데모 파일에서 제공하는 것과 동일한 매개 변수를 사용하여 OpenSURF를 시도했는데 640x480의 해상도에서 내 2GHz Core2 Duo가 단일 이미지의 경우 5 ~ 8 초가 걸린다는 사실을 알게되어 매우 황폐했습니다.SURF 기능 감지 - 성능에 실망했습니다.

1) 정상입니까?

2) 매개 변수를 조정하여 악화 된 결과를 얻을 수 있지만 실행 시간은 더 빨라질 수 있습니까?

3) 저는 실제로 스케일/회전 불변성, 프레임 사이를 추적하는 데 좋은 기능 (카메라가 고정 위치에 있음)/서로 다른 조명 조건 사이를 추적 할 필요가 없습니다. 실시간으로 (거의) 실행될 수있는 실행 가능한 대안이 있습니까?

+0

감소 공간 해상도는? 나는 알고리즘의 복잡성에 대해 전혀 몰랐다. SURF는 그 이름에 걸맞지 않은가? – Tobu

답변

4

1) 예 정상 SURF 내가 ORB가 가장 빠르고,하지만 내 의견 중 하나입니다 시험과 같이, 다른 기술자 및 검출기를 사용해야 성능 :(

2)에 가난한입니다 당신이 경우 fastets는 FAST 사용하고 회전 불변이없는 간단한 결과를 갖고 싶어하지만이며 매우 빠른 SURF :

를 비교에서 당신이 sattisfied됩니다 희망 읽고 이것을 시도이다 this

+1

와우, Orb은 실제로 매우 빠르며 우리의 응용 프로그램에 매우 유용합니다. 그것으로 좋은 결과를 얻었습니다. 만약 내가 당신을 투표 할 수 있다면 :-) –

+0

:) 괜찮습니다. – Csabi

+2

이제 다시 할 수 있습니다 :-) –

1

의 한 openCV에서 SURF의 문제는 매우 큰 유형 변환입니다 (double < -> flo at, float-> int)이 기본 함수를 자주 호출하기 때문에 시간이 걸립니다. 소스 코드를 살펴보고 더 나은 성능을 얻기 위해 소스 코드를 수정하려고 시도 할 수 있습니다.

+0

맞습니다. 여기에 설명되어 있듯이, 왜 개발자들이 그것을 고치지 않는지 궁금합니다. : http://computer-vision-talks.com/2011/06/a-few-thoughts-about-cvround/ – dynamic

2

성능 당신이 OpenCV의의 GPU 모듈에서 구현 SURF의 GPU 버전을 시도 할 수있는 문제의 경우 : 시간 분해능을 향상시키기 위해

OpenCV-2.3.1/modules/gpu/src/surf.cpp 
+3

고마워요, 그것은 대단히 도움이되었습니다! –

+0

@Laurel, GPU SURF 대 CPU에서 얼마나 큰 개선이 있었습니까? –