2017-09-04 6 views
1

OpenCV를 사용하여 카메라를 통해 얼굴을 감지하는 Android 프로젝트를 진행하고 있습니다. 응용 프로그램이 얼굴을 올바르게 감지하지만 성능이 매우 느립니다. 이 문제에 대해 여러 번 확인했지만 해결책을 찾지 못했습니다. 성능을 향상시킬 방법이 있습니까?Android에서 OpenCV로 얼굴 인식 성능을 향상시키는 방법은 무엇입니까?

내 코드는 다음과 같습니다

 QVideoFrame FilterRunnable::run(QVideoFrame *input, 
          const QVideoSurfaceFormat &surfaceFormat, 
          QVideoFilterRunnable::RunFlags flags) 
     { 
      input->map(QAbstractVideoBuffer::ReadOnly); 
      QImage image = imageWrapper(*input); 
      image = image.scaled(640,480); 
      cv::Mat mat(image.width(),image.height(),CV_8UC3,image.bits(),    image.bytesPerLine()); 

      vector<Rect> detectedFaces; 
      detectedFaces.clear(); 
      frontalFaceClassifier.detectMultiScale(mat, detectedFaces, 
            1.6, 3, 2 | CV_HAAR_SCALE_IMAGE , Size(60,60)); 

      qDebug()<<"Cantidad de caras en el vector : " << detectedFaces.size(); 
      if(detectedFaces.size() > 0){ 
       actualFace = detectedFaces.at(0); 

      countDetectedFaces++; 
      qDebug()<<"**********qwerty**********"<<detectedFaces.size(); 
      } 
      for(int i=0;i<detectedFaces.size();i++) 
      { 
      Rect dibujarCuadrado = detectedFaces.at(i); 

      cv::rectangle (mat, dibujarCuadrado, 20, 1, LINE_8, 0); 
      } 
     } 
+0

당신이 모바일에서 무거운 짐을 옮겨서 클라우드에서 그 부분을한다면 어떻게 될까요? – Wayne

+0

빠른 답변 주셔서 대단히 감사합니다. 내가 생각하기에 좋은 인터넷을 갖는 데 많은 도움이되지만 아주 좋은 생각이라고 생각합니다. 저를 인도하기 위해 클라우드에 대한 일부 처리 부분을 제거하는 부분이 있습니까? 그렇다면 큰 도움이 될 것입니다. 대단히 감사합니다. –

+0

@Wayne 이미지 당 약 1 메가 바이트가 서버에 전달된다는 것을 명심하십시오. 나는 시내에 있고 내 LTE 업스트림은 간신히 2Mbps에 불과하다. (그리고 나는 많은 사람들이 훨씬 더 나 빠진다) –

답변

1

난 당신이 하나의 하르 분류를 구현했다. 나는 당신이 앞면을 사용한다고 생각했다. 정확성을 높이기 위해 프로필 얼굴 분류 자 ​​(opencv haar 패키지에서 사용 가능)를 else 문에 통합 할 수 있습니다. 일반적으로 원하는 분류자를 훈련하고 통합 할 수 있습니다. 분류자를 훈련시키기 위해, 이것은 굉장한 비디오입니다 here

+0

대단히 고맙습니다. 아이디어는 당신이 말하는 것을 구현하는 것이지만 우선 카메라의 속도를 높이는 것입니다. 왜냐하면 내가 하나의 분류 자로는 천천히 움직이면 2로 분류하면 더 나빠질 것이기 때문입니다. –

+1

전에 파이썬으로 비슷한 작업을했는데, haar 캐스케이드로 얼굴을 탐지하는 데 프레임이 XML로 처리되기 때문에 대기 시간이 거의 없습니다. yr 프레임을 회색으로 바꿨습니까? – chrisckwong821

+0

프로젝트에서 회색으로 프레임을 돌리면 성능이 향상되고 얼굴 인식의 정확성이 떨어지지 않고 조언을 해주셔서 감사합니다. –