"Cascade de classificateurs boostés utilisant des fonctionnalités de type Haar" est une méthode appelée Haar-like qui utilise un motif rectangulaire composé de lumière et d'obscurité pour la détection. La fonction de type Haar et l'image cible sont superposées pour déterminer s'il existe un motif.
Les classificateurs d'entités de type Haar suivants sont fournis à l'avance dans OpenCV. [OpenCV Install Dir]/Library/etc/haarcascades/
nom de fichier | Contenu |
---|---|
haarcascade_eye.xml | Œil |
haarcascade_eye_tree_eyeglasses.xml | des lunettes |
haarcascade_frontalcatface.xml | Visage de chat (avant) |
haarcascade_frontalcatface_extended.xml | Visage de chat (avant) |
haarcascade_frontalface_alt.xml | Face (avant) |
haarcascade_frontalface_alt2.xml | Face (avant) |
haarcascade_frontalface_alt_tree.xml | Face (avant) |
haarcascade_frontalface_default.xml | Face (avant) |
haarcascade_fullbody.xml | Tout le corps |
haarcascade_lefteye_2splits.xml | oeil gauche |
haarcascade_licence_plate_rus_16stages.xml | Plaque d'immatriculation russe (entière) |
haarcascade_lowerbody.xml | Bas du corps |
haarcascade_profileface.xml | Visage (photo de certification) |
haarcascade_righteye_2splits.xml | l'œil droit |
haarcascade_russian_plate_number.xml | Plaque d'immatriculation russe (numéro) |
haarcascade_smile.xml | Sourire |
haarcascade_upperbody.xml | Haut du corps |
Cette fois, je vais essayer la reconnaissance faciale en utilisant le classificateur de caractéristiques de type Haar d'OpenCV.
OpenCV OpenCV (Open Source Computer Vision Library) est une collection de bibliothèques de traitement vidéo / image sous licence BSD. Il existe de nombreux algorithmes tels que le filtrage d'image, la correspondance de modèles, la reconnaissance d'objets, l'analyse vidéo et l'apprentissage automatique.
■ Exemple de suivi de mouvement avec OpenCV (OpenCV Google Summer of Code 2015) https://www.youtube.com/watch?v=OUbUFn71S4s
■ Cliquez ici pour une installation et une utilisation facile Installer OpenCV 3 (core + contrib) dans l'environnement Python 3 & Différence entre OpenCV 2 et OpenCV 3 & Easy operation check ★ Veuillez installer core + opencv_contrib pour exécuter le modèle de mouvement.
■ Cliquez ici pour filtrer les images fixes Essayez la détection des bords avec OpenCV Effectuer divers filtres avec OpenCV (Gradient, Highpass, Laplacian, Gaussian) Extraire des points caractéristiques avec OpenCV (AgastFeature, FAST, GFTT, MSER, AKAZE, BRISK, KAZE, ORB, SimpleBlob)
■ Cliquez ici pour le traitement des fichiers vidéo Essayez de convertir des vidéos en temps réel avec OpenCV Essayez de convertir des vidéos de caméra Web / caméra vidéo en temps réel avec OpenCV Dessinez un flux optique en temps réel avec OpenCV (méthode Shi-Tomasi, méthode Lucas-Kanade) Suivi d'objets à l'aide d'OpenCV (suivi des points caractéristiques spécifiés par la souris par la méthode Lucas-Kanade Analyse de modèles de mouvement à l'aide d'OpenCV (reconnaissance des objets et de leurs directions de déplacement en temps réel)
Le flux est le suivant.
face.py
import cv2
# Haar-comme le chargement du classificateur d'entités
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_eye.xml')
#Chargement du fichier image
img = cv2.imread('face.png')
#Conversion de l'échelle de gris
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Détection facial
faces = face_cascade.detectMultiScale(gray)
for (x,y,w,h) in faces:
#Entourez le visage détecté dans un rectangle
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
#Image du visage (échelle de gris)
roi_gray = gray[y:y+h, x:x+w]
#Augmentation du visage g (échelle de couleurs)
roi_color = img[y:y+h, x:x+w]
#Détecter les yeux de l'intérieur du visage
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
#Entourez l'œil détecté dans un rectangle
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
#Affichage de l'image
cv2.imshow('img',img)
#Appuyez sur n'importe quelle touche pour terminer
cv2.waitKey(0)
cv2.destroyAllWindows()
Si c'est une telle image, elle sera reconnue comme ça. Je reconnais tous les visages, mais les yeux ne reconnaissent pas grand-chose, probablement à cause de l'image vague.
Si c'est une telle image, elle sera reconnue comme ça. Le visage entier est tout à fait reconnaissable. En revanche, les yeux reconnaissent si la ligne de visée est tournée vers l'avant.
Si vous comprenez dans une certaine mesure les modèles de détection tels que les yeux et le profil, il semble que vous puissiez deviner la ligne de vue et les objets devant la ligne de vue.
Recommended Posts