2017-06-29 1 views
1

J'essaie de reproduire le processus d'entraînement de frontlface_detector() de dlib. J'utilise le même ensemble de données (à partir de http://dlib.net/files/data/dlib_face_detector_training_data.tar.gz) comme dlib disent qu'ils ont utilisé, par l'union des faces frontales et des profils + leurs réflexions.reproduction dlib frontale_face_detector() formation

Mes problèmes sont les suivants: 1. utilisation de la mémoire très élevée pour l'ensemble des données (30 + Gb) 2. Formation sur dataset partielle ne donne pas très élevé taux de rappel, 50-60 pour cent par rapport à celui 80-90 frontal_face_detector (test sur un sous-ensemble d'images non utilisées pour la formation). 3. Les détecteurs fonctionnent mal sur les images à basse résolution et ne parviennent donc pas à détecter les visages de plus de 1-1,5 mètres de profondeur. 4. augmente le temps de fonctionner de formation de manière significative avec le paramètre SVM C que je dois augmenter pour obtenir un meilleur taux de rappel (je soupçonne que c'est juste artefact surapprentissage)

Ma motivation originale trainig était a. acquérir la capacité de s'adapter à l'environnement spécifique dans lequel la caméra est installée, par ex. exploitation minière négative b. amélioration de la détection en profondeur + temps d'exécution en réduisant la fenêtre 80x80 à 64x64 ou même 48x48.

Suis-je sur le bon chemin? Est-ce que je manque quelque chose? S'il vous plaît aider ...

Répondre

1

Les paramètres de formation utilisés ont été enregistrés dans un commentaire dans le code de Dlib ici http://dlib.net/dlib/image_processing/frontal_face_detector.h.html. Pour référence:

 It is built out of 5 HOG filters. A front looking, left looking, right looking, 
    front looking but rotated left, and finally a front looking but rotated right one. 

    Moreover, here is the training log and parameters used to generate the filters: 
    The front detector: 
     trained on mirrored set of labeled_faces_in_the_wild/frontal_faces.xml 
     upsampled each image by 2:1 
     used pyramid_down<6> 
     loss per missed target: 1 
     epsilon: 0.05 
     padding: 0 
     detection window size: 80 80 
     C: 700 
     nuclear norm regularizer: 9 
     cell_size: 8 
     num filters: 78 
     num images: 4748 
     Train detector (precision,recall,AP): 0.999793 0.895517 0.895368 
     singular value threshold: 0.15 

    The left detector: 
     trained on labeled_faces_in_the_wild/left_faces.xml 
     upsampled each image by 2:1 
     used pyramid_down<6> 
     loss per missed target: 2 
     epsilon: 0.05 
     padding: 0 
     detection window size: 80 80 
     C: 250 
     nuclear norm regularizer: 8 
     cell_size: 8 
     num filters: 63 
     num images: 493 
     Train detector (precision,recall,AP): 0.991803 0.86019 0.859486 
     singular value threshold: 0.15 

    The right detector: 
     trained left-right flip of labeled_faces_in_the_wild/left_faces.xml 
     upsampled each image by 2:1 
     used pyramid_down<6> 
     loss per missed target: 2 
     epsilon: 0.05 
     padding: 0 
     detection window size: 80 80 
     C: 250 
     nuclear norm regularizer: 8 
     cell_size: 8 
     num filters: 66 
     num images: 493 
     Train detector (precision,recall,AP): 0.991781 0.85782 0.857341 
     singular value threshold: 0.19 

    The front-rotate-left detector: 
     trained on mirrored set of labeled_faces_in_the_wild/frontal_faces.xml 
     upsampled each image by 2:1 
     used pyramid_down<6> 
     rotated left 27 degrees 
     loss per missed target: 1 
     epsilon: 0.05 
     padding: 0 
     detection window size: 80 80 
     C: 700 
     nuclear norm regularizer: 9 
     cell_size: 8 
     num images: 4748 
     singular value threshold: 0.12 

    The front-rotate-right detector: 
     trained on mirrored set of labeled_faces_in_the_wild/frontal_faces.xml 
     upsampled each image by 2:1 
     used pyramid_down<6> 
     rotated right 27 degrees 
     loss per missed target: 1 
     epsilon: 0.05 
     padding: 0 
     detection window size: 80 80 
     C: 700 
     nuclear norm regularizer: 9 
     cell_size: 8 
     num filters: 89 
     num images: 4748 
     Train detector (precision,recall,AP):  1 0.897369 0.897369 
     singular value threshold: 0.15 

quels sont les paramètres et comment les régler est expliqué dans la documentation Dlib. Il y a aussi un article qui décrit l'algorithme d'apprentissage: Max-Margin Object Detection.

Oui, cela peut prendre beaucoup de RAM pour exécuter le formateur.

+0

Où puis-je trouver l'ensemble de données et les fichiers XML à télécharger? –

+0

C'est l'URL que vous avez publiée. –

+0

Trouvé, merci. En ce qui concerne les versions rotation-gauche, rotation-droite: sont-elles augmentées, c'est-à-dire, calculées artificiellement à partir des faces frontales, et comment? –