Face Detection is not detected using detectMultiScale when GPU is enabled
Installed Packages
Operating System -> Ubuntu 18.04
NVIDIA Driver -> Tesla Driver for Ubuntu 18.04 Version: 418.87.00
CUDA -> CUDA Toolkit 10.1
CuDNN -> CuDNN 7.6
CMake -> 3.15.2
OpenCV -> 3.4.1
Caffe -> 1.0.0
Tensorflow-GPU -> 1.4.0
GPU -> Tesla T4
Issue while Executing Application
In CPU Mode
When we disable GPU Mode and run through CPU Mode the face detection is working ..
int flag = CV_HAAR_DO_ROUGH_SEARCH|CV_HAAR_SCALE_IMAGE; this->face_detector_cpu.detectMultiScale(gray, faces_tmp, 1.2, 1, flag, cv::Size(param.minFaceSize, param.minFaceSize), cv::Size(param.maxFaceSize, param.maxFaceSize));
FPS: Face Detection is detecting with less FPS
In GPU Mode
When we disable the GPU mode and executing our Application the face detection is working fine
But if we enable the GPU mode the face detection is not working its getting freezed in detectMultiScale function
The following is the code for the reference
FaceDetector::getInstance().detect(frame, faces_haar, faceParam, FaceDetectionType == "HAAR", enable_gpu, scale);
this->face_detector_gpu->detectMultiScale(im_gpu, faces_gpu);
you cannot use the same xml cascade file for cpu and gpu, you need special xml files for gpu
3.4.1 is one of the last versions, that have cuda support for cascades, it's a dead end. no more in current opencv.
please have a look at alternative cnn based face detectors, they're much faster and better supported.