web-dev-qa-db-fra.com

dlib vs opencv lequel utiliser quand

J'apprends actuellement OpenCV API avec Python et tout va bien. Je fais des progrès décents. Une partie vient de la simplicité de la syntaxe Python par rapport à son utilisation avec C++ que je n'ai pas encore essayé. J'ai réalisé que je devais me salir avec les liaisons C++ pour OpenCV à un moment donné si j'ai l'intention de faire quoi que ce soit de qualité de production.

Tout récemment, je suis tombé sur dlib qui prétend également faire tout ce que fait OpenCV et plus encore. Il est écrit en C++ et offre Python API aussi (surprise). Quelqu'un peut-il se porter garant de dlib en fonction de sa propre expérience de mise en œuvre?

18
ultrasounder

J'ai largement utilisé OpenCV et dlib pour la détection et la reconnaissance des visages et dlib est beaucoup plus précis que le détecteur de visage basé sur OpenCV Haar. (Notez qu'OpenCV a maintenant un module DNN où nous obtenons des modèles de détecteur de visage et de reconnaissance de visage basés sur l'apprentissage profond.)

Je suis en train de comparer l'OpenCV-DNN à Dlib pour la détection/reconnaissance des visages. Publiera les résultats une fois que j'en aurai fini.

Il existe de nombreuses fonctions utiles disponibles dans dlib, mais je préfère OpenCV pour toute autre tâche CV.

EDIT: Comme promis, j'ai fait une comparaison détaillée des méthodes OpenCV vs Dlib Face Detection.

Voici ma conclusion:

Cas général

Dans la plupart des applications, nous ne connaîtrons pas la taille du visage dans l'image au préalable. Ainsi, il est préférable d'utiliser la méthode OpenCV - DNN car elle est assez rapide et très précise, même pour les visages de petite taille. Il détecte également les visages sous différents angles. Nous recommandons d'utiliser OpenCV-DNN dans la plupart

Pour les tailles d'image moyennes à grandes

Dlib HoG est la méthode la plus rapide sur CPU. Mais il ne détecte pas les visages de petite taille (<70x70). Donc, si vous savez que votre application ne traitera pas de visages de très petite taille (par exemple une application selfie), alors le détecteur de visage basé sur HoG est une meilleure option. De plus, si vous pouvez utiliser un GPU, le détecteur de visage MMOD est la meilleure option car il est très rapide sur le GPU et fournit également une détection sous différents angles.

Pour plus de détails, vous pouvez consulter ce blog

22
Vikas Gupta