12

I saw MTCNN being recommended but haven't seen a direct comparison of DLIB and MTCNN.

I assume since MTCNN uses a neural networks it might work better for more use cases, but also have some surprisingly horrible edge cases?

Has anyone done an analysis of error rate, performance under different conditions (GPU and CPU), and general eyeball observations of the two?

tt_Gantz
  • 2,786
  • 3
  • 23
  • 43
  • Is there any comment from @davis-king . I would love to see a comparison between MTCNN vs dlib CNN – Rahibe Meryem Mar 26 '18 at 13:06
  • I have update my answer, with FDDB accuracy test and performance test, hope it helps(it cost me several hours). @RahibeMeryem – Jayhello Jul 13 '18 at 00:57
  • You can see some discussion of how dlib's CNN performs on FDDB here for reference: http://blog.dlib.net/2016/10/easily-create-high-quality-object.html. And also see my comments on this here as well: https://github.com/davisking/dlib/issues/1410 – Davis King Jul 13 '18 at 02:29
  • I don't think so, anyone who see this question can see the github link. I test FDDB using face_recogniton py lib to detect face(which use dlib to do face detect). And I don't think I do anything wrong. If there is anything wrong is py face_recogniton https://github.com/ageitgey/face_recognition wrong not me. – Jayhello Jul 13 '18 at 02:39
  • I have post my C++ dlib test code to https://github.com/davisking/dlib/issues/1410 – Jayhello Jul 13 '18 at 04:15

2 Answers2

2

You can have a look at this amazing kaggle notebook by timesler. Comparison is made between facenet-pytorch, DLIB & MTCNN.

https://www.kaggle.com/timesler/comparison-of-face-detection-packages

"Each package is tested for its speed in detecting the faces in a set of 300 images (all frames from one video), with GPU support enabled. Detection is performed at 3 different resolutions.

Any one-off initialization steps, such as model instantiation, are performed prior to performance testing."

0

You can test it within deepface easily. My experiments show that mtcnn overperforms than dlib.

#!pip install deepface
from deepface import DeepFace
backends = ['opencv', 'ssd', 'dlib', 'mtcnn']
DeepFace.detectFace("img.jpg", detector_backend = backends[0])
johncasey
  • 1,250
  • 8
  • 14