Maison développement back-end Tutoriel Python Reconnaissance faciale en Python dans l'IA

Reconnaissance faciale en Python dans l'IA

Apr 29, 2017 am 09:41 AM

Avec les performances choquantes d'alphago l'année dernière, l'IA est redevenue la coqueluche des entreprises technologiques. L’IA implique de nombreux domaines, et la reconnaissance faciale dans la reconnaissance d’images est l’une des branches intéressantes. Le BFR de Baidu, la plate-forme ouverte Face++, Hanwang, iFlytek, etc. fournissent tous des API de reconnaissance faciale. Pour les codeurs expérimentés, vous pouvez écrire un petit morceau de code pour voir combien de personnes se trouvent sur une image. , juste pour le fun, et ne nécessite que 7 lignes de code.  

 import cv2
  face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
  sample_image = cv2.imread('/Users/abel/201612.jpg')
  faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))
  for (x, y, w, h) in faces:
  cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
  cv2.imwrite('/Users/abel/201612_detected.png', sample_image);
Copier après la connexion

  Ligne 1 Présentation d'OpenCV

L'open source c'est génial, il nous permet d'élargir nos horizons et n'a pas besoin de réinventer la roue. Au lieu d'utiliser PIL et de le combiner avec un algorithme spécifique, OpenCV (http://opencv.org) est utilisé directement. OpenCV est une bibliothèque de vision par ordinateur multiplateforme basée sur la licence BSD. Elle peut fonctionner sur les systèmes d'exploitation Linux, Windows et Mac OS. Elle est écrite en C/C++. MATLAB et autres interfaces pour implémenter de nombreux algorithmes généraux en traitement d'image et vision par ordinateur.

La ligne 2 charge le classificateur cv2.CascadeClassifier

CascadeClassifier est un classificateur en cascade utilisé pour la détection de visage dans Opencv. Cette classe encapsule le mécanisme de détection de cible, c'est-à-dire le mécanisme de fenêtre coulissante + les classificateurs en cascade. . La structure des données comprend deux parties principales : Data et FeatureEvaluator. Data stocke les données du classificateur chargées à partir du fichier XML obtenu lors de la formation, tandis que FeatureEvaluator concerne le chargement, le stockage et le calcul des fonctionnalités. Le fichier de formation utilisé ici est haarcascade frontalface default.xml fourni par défaut dans OpenCV. Quant aux principes spécifiques de Haar et LBP, vous pouvez vous référer aux documents pertinents d'opencv. Simplement, cela peut être compris comme les données caractéristiques du visage.

Ligne 3 Charger l'image cible imlue

Les systèmes de reconnaissance faciale sont généralement divisés en : collecte d'images de visage, prétraitement d'images de visage, extraction de caractéristiques d'images de visage, et correspondance et reconnaissance. Pour plus de simplicité, lisez dans l'image,

Ligne 4 Détection multi-échelles detectorMultiScale

Appelez la fonction detectMultiScale dans CascadeClassifier pour la détection multi-échelles, la méthode à échelle unique. sera appelé. detectSingleScale. Description du paramètre :

scaleFactor est le facteur d'échelle de l'image

minNeighbours est le nombre de voisins qui doivent être conservés pour chaque rectangle en cascade, ce qui peut être compris comme le nombre de visages autour d'une personne

MinSize est la taille de la fenêtre de détection

Ces paramètres peuvent être ajustés pour l'image, et le résultat du traitement renvoie une liste d'objets rectangulaires de visages.

Les lignes 5 et 6 dessinent un cadre pour chaque visage

Parcourez la liste d'objets rectangulaires du visage, obtenez les coordonnées, la largeur et la hauteur du rectangle du visage, puis dessinez-le dans l'image originale Pour quitter le cadre rectangulaire, la méthode rectangle d'OpenCV est appelée, dans laquelle la couleur du cadre rectangulaire est réglable.

Ligne 7 Enregistrez les résultats du test

Le mystère ne réside pas dans ces 7 lignes de code, mais dans l'implémentation associée dans OpenCV. Le site Web chinois d'OpenCV est également un bon endroit pour apprendre et expérimenter.

Par conséquent, les 7 lignes de code ne sont qu'un gadget, le véritable noyau est OpenCV. Ensuite, il existe quelques écueils lors de l’installation de l’environnement OpenCV, alors notez-les particulièrement.

Environnement OpenCV basé sur Mac

Il est recommandé d'utiliser Brew pour l'installation Si Brew n'est pas installé, exécutez d'abord la commande suivante :

 $/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
Copier après la connexion

Ensuite, spécifiez Target Warehouse $brew tap homebrew/science

Installer OpenCV3 $brew install opencv3

La vitesse d'installation dépend du réseau. Après l'installation, vous devez lier le développement Python. environnement. Il existe de nombreuses méthodes :

 1) Ajoutez des variables d'environnement et ajoutez les packages de site d'opencv au PYTHONPATH

 2) Utilisez ln soft connection pour lier cv2.so au site-. packages de l'environnement python

 3) Directement cp cv2.so dans le répertoire site-packages de l'environnement python

Plus simplement, exécutez la commande suivante :

 echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
  mkdir -p /Users/hecom/.local/lib/python2.7/site-packages
  echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/hecom/.local/lib/python2.7/site-packages/homebrew.pth
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment rédiger le dernier tutoriel sur la déclaration d'insertion SQL Comment rédiger le dernier tutoriel sur la déclaration d'insertion SQL Apr 09, 2025 pm 01:48 PM

L'instruction INSERT SQL est utilisée pour ajouter de nouvelles lignes à une table de base de données, et sa syntaxe est: Insérer dans Table_Name (Column1, Column2, ..., Columnn) VALEUR (VALEUR1, Value2, ..., Valuen);. Cette instruction prend en charge l'insertion de plusieurs valeurs et permet d'insérer des valeurs nulles dans des colonnes, mais il est nécessaire de s'assurer que les valeurs insérées sont compatibles avec le type de données de la colonne pour éviter de violer les contraintes d'unicité.

Comment utiliser Aws Glue Crawler avec Amazon Athena Comment utiliser Aws Glue Crawler avec Amazon Athena Apr 09, 2025 pm 03:09 PM

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.

Comment ajouter une nouvelle colonne dans SQL Comment ajouter une nouvelle colonne dans SQL Apr 09, 2025 pm 02:09 PM

Ajoutez de nouvelles colonnes à une table existante dans SQL en utilisant l'instruction ALTER TABLE. Les étapes spécifiques comprennent: la détermination des informations du nom de la table et de la colonne, rédaction des instructions de la table ALTER et exécution des instructions. Par exemple, ajoutez une colonne de messagerie à la table des clients (VARCHAR (50)): Alter Table Clients Ajouter un e-mail VARCHAR (50);

Quelle est la syntaxe pour ajouter des colonnes dans SQL Quelle est la syntaxe pour ajouter des colonnes dans SQL Apr 09, 2025 pm 02:51 PM

La syntaxe pour ajouter des colonnes dans SQL est alter table table_name Ajouter Column_name data_type [pas null] [default default_value]; Lorsque Table_Name est le nom de la table, Column_name est le nouveau nom de colonne, DATA_TYPE est le type de données, et non Null Spécifie si les valeurs NULL sont autorisées, et default default_value spécifie la valeur par défaut.

Tableau Clear SQL: Conseils d'optimisation des performances Tableau Clear SQL: Conseils d'optimisation des performances Apr 09, 2025 pm 02:54 PM

Conseils pour améliorer les performances de compensation de la table SQL: utilisez une table tronquée au lieu de supprimer, libre d'espace et réinitialiser la colonne d'identité. Désactivez les contraintes de clés étrangères pour éviter la suppression en cascade. Utilisez les opérations d'encapsulation des transactions pour assurer la cohérence des données. Supprimer les mégadonnées et limiter le nombre de lignes via Limit. Reconstruisez l'indice après la compensation pour améliorer l'efficacité de la requête.

Utilisez la déclaration de suppression pour effacer les tables SQL Utilisez la déclaration de suppression pour effacer les tables SQL Apr 09, 2025 pm 03:00 PM

Oui, l'instruction Delete peut être utilisée pour effacer une table SQL, les étapes sont les suivantes: Utilisez l'instruction Delete: Delete de Table_Name; Remplacez Table_Name par le nom de la table à effacer.

SQL Classic 50 Question Answers SQL Classic 50 Question Answers Apr 09, 2025 pm 01:33 PM

SQL (Language de requête structuré) est un langage de programmation utilisé pour créer, gérer et interroger les bases de données. Les fonctions principales incluent: la création de bases de données et de tables, d'insertion, de mise à jour et de suppression de données, de tri et de filtrage des résultats, d'agrégation des fonctions, de jonction de tables, de sous-requêtes, d'opérateurs, de fonctions, de mots clés, de manipulation de données / de définition / langage de contrôle, de types de connexion, d'optimisation de requête, de sécurité, d'outils, de ressources, de versions, d'erreurs communes, de techniques de débogage, de meilleurs pratiques, de tristes et de pliées.

Comment définir des valeurs par défaut lors de l'ajout de colonnes dans SQL Comment définir des valeurs par défaut lors de l'ajout de colonnes dans SQL Apr 09, 2025 pm 02:45 PM

Définissez la valeur par défaut des colonnes nouvellement ajoutées, utilisez l'instruction ALTER TABLE: Spécifiez des colonnes Ajouter et définissez la valeur par défaut: alter table table_name Ajouter Column_name data_type default_value; Utilisez la clause CONSTRAINT pour spécifier la valeur par défaut: ALTER TABLE TABLE_NAME ADD COLUMN COLUMN_NAME DATA_TYPE CONSTRAINT DEFAULT_CONSTRAINT DEFAULT_VALUE;

See all articles