Étape 8: Analyse vidéo pour détecter et reconnaître les visages
Dans cette étape, nous aurons un oeil à l’extrait de code qui prend une seule image de la vidéo enregistrée à la dernière étape et il analyse pour toutes les faces à l’aide d’OpenCV fonction cascadeClassifier. Si toutes les faces sont trouvés, il envoie la partie rognée de l’image à une autre fonction demandant à prédire le visage dans l’image.
Le nom du sujet / intrus est envoyé à l’extrait de code à l’étape précédente, qui dessine un rectangle englobant autour du sujet tout en nom d’impression du sujet.
À l’heure actuelle la toute détection et système de reconnaissance a une précision de 70 à 80 pour cent seulement. Alors, plutôt que de modifier le nom de la question en que se fondant uniquement sur la présente étiquette, nous prendrons les vingt dernières étiquettes en considération. Donc, nous stockerons les vingt dernières étiquettes et réclame une étiquette plus répétée de ce tableau de last_20. Nous prennent le nom d’intrus de cette façon et passer à l’étape précédente qui dessine le rectangle englobant.
Code
Remarque : Ce code est une petite partie du code terminé et ne fonctionne pas individuellement. J’ai utilisé ici pour expliquer le code.
def detect_faces(image): ''' Takes an image as input and returns an array of bounding box(es). ''' frontal_face= cv2.CascadeClassifier("haarcascade_frontalface_default.xml") bBoxes= frontal_face.detectMultiScale(image, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE) return bBoxes</p><p>def majority(mylist): ''' Takes a list and returns an element which has highest frequency in the given list. ''' myset= set(mylist) ans= mylist[0] ans_f= mylist.count(ans) for i in myset: if mylist.count(i)> ans_f: ans= i ans_f= mylist.count(i) return ans