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);
}
}
당신이 모바일에서 무거운 짐을 옮겨서 클라우드에서 그 부분을한다면 어떻게 될까요? – Wayne
빠른 답변 주셔서 대단히 감사합니다. 내가 생각하기에 좋은 인터넷을 갖는 데 많은 도움이되지만 아주 좋은 생각이라고 생각합니다. 저를 인도하기 위해 클라우드에 대한 일부 처리 부분을 제거하는 부분이 있습니까? 그렇다면 큰 도움이 될 것입니다. 대단히 감사합니다. –
@Wayne 이미지 당 약 1 메가 바이트가 서버에 전달된다는 것을 명심하십시오. 나는 시내에 있고 내 LTE 업스트림은 간신히 2Mbps에 불과하다. (그리고 나는 많은 사람들이 훨씬 더 나 빠진다) –