2012-07-13 2 views
2

cvHaarDetectObjects C 기능을 사용하여 Android 애플리케이션에서 얼굴을 감지하지만 실행 시간이 특정 수의 비디오 프레임을 처리 할만큼 빠르지 않습니다. 둘째. 그래서, 저에게 불필요한 코드를 주석으로 처리하려고합니다. 주석 처리 할 수있는 플래그 및 메모리 할당 문에 대해 많은 분기 조건을 발견했습니다. cvHaarDetectObjects에서 호출되는 함수에 대해서도 동일한 작업을 수행 할 수 있습니다.OpenCV 2.4.0에서 얼굴 인식을위한 실행 시간을 개선하는 데 도움이 필요합니다.

전에 이런 종류의 최적화를 시도한 사람이 있습니까? 어떤 도움이라도 대단히 감사합니다.

코드 : 튜닝에 입력 매개 변수를 시도해야합니다 첫 번째 단계로

cascadeFile1 = (CvHaarClassifierCascade *) cvLoad(cascadeFace,0,0,0); 
CvSeq *face = cvHaarDetectObjects(img1, cascadeFile1, storage,1.1, 3,CV_HAAR_DO_CANNY_PRUNING,cvSize(0,0)); 
+0

코드를 최적화해야 최적화 할 수 있습니다. –

+0

@alex 내가 사용하는 코드는 다음과 같습니다. cascadeFile1 = (CvHaarClassifierCascade *) cvLoad (cascadeFace, 0,0,0); CvSeq * face = cvHaarDetectObjects (img1, cascadeFile1, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize (0,0)); –

+0

하지만이 코드를 최적화 할 수 있습니까? 나는 이전 코멘트에서 코드로 할 수있는 것이 아무것도 없다고 생각했다. 그래서 필자는 필자가 필요로하지 않는 기능을 주석 처리하여 opencv 소스 코드를 최적화하려고 생각했습니다. 소스 코드가 온라인에서 제공되어야한다고 생각합니다. 링크를 찾으면 찾을 수 있습니다. –

답변

0

, 다음으로는 분류기의 성능에 큰 영향을 미친다.

  1. 합리적인 값으로 소스 이미지 해상도를 줄일 수의 카메라 분야,
  2. 이 소량으로 scaleFactor 매개 변수를 사용자의 해상도에 따라 (예를 들어 0.1 단계)
  3. 을 증가 :에

    당신은 시도 할 수 얼굴의보기 및 거리에 따라 min_sizemax_size 매개 변수에 대한 값을 정의하십시오. 이것은 알고리즘이 수행해야하는 연산의 수에 극적인 영향을 줄 수 있습니다.

두 번째로 실제 매개 변수를 게시하면 프로파일 링 결과와 여기에있는 사람들이 개선해야 할 점에 대해 더 많은 힌트를 제공 할 수 있습니다.

사이드 노트 : 알고리즘을 작동 상태로두고 싶다면 분기 조건을 주석으로 처리하면 속도가 크게 달라지지 않을 것이라고 생각합니다.

+0

나는 이미 입력 매개 변수를 조정하고 사용 해왔다. 내가 한 일은 다음과 같습니다. 1. 이미지 해상도를 176 * 144로 낮 춥니 다. 2. 스케일링이 10 % 일 때 얼굴 검출이 가장 정확하다는 것을 알았으므로이 매개 변수를 변경하는 데별로 신경 쓰지 않습니다. 3. 내 이미지의 해상도가 176 * 144이고 입력 비디오 피드가 전화기의 정면 카메라에서 나온 경우 max_size 매개 변수를 (0,0)으로 설정하여 카메라가 너무 가까이에있을 때도 얼굴 감지가 작동하도록 결정했습니다. 얼굴. min_size에 대해서는 이미지 해상도의 약 1/5로 변경하겠습니다. –

관련 문제