La reconnaissance de l'expression du visage est une direction de recherche importante dans le domaine de la vision par ordinateur et est largement utilisée dans plusieurs scénarios pratiques tels que l'interaction humaine-ordinateur et la surveillance des émotions. Cet article présentera comment utiliser les bibliothèques PHP et OpenCV pour reconnaître les expressions du visage dans les images et joindre un exemple de code pertinent.
Avant de commencer, nous devons préparer les outils et environnements suivants.
OpenCV est une bibliothèque de vision par ordinateur open source qui fournit de nombreuses fonctions et classes pour le traitement d'image et la vision de l'ordinateur. Pour utiliser OpenCV, nous devons d'abord l'installer dans le système. Voici les commandes pour installer OpenCV sur le système Ubuntu:
sudo apt-get install libopenv-dev
Afin d'utiliser la bibliothèque OpenCV dans PHP, nous devons également installer l'extension OpenCV de PHP. Vous pouvez l'installer via la commande suivante:
sudo apt-get install php7.4-opencv
Afin de tester le code de reconnaissance d'expression faciale, vous devez préparer des images de test contenant le visage et différentes expressions. Vous pouvez télécharger des photos pertinentes sur Internet et les enregistrer localement.
Maintenant, nous pouvons commencer à écrire du code de reconnaissance d'expression faciale. Voici un exemple simple de code pour détecter les visages et identifier les expressions dans les images:
<?php // ImporterOpenCVetPHPÉtendu use OpenCVHighgui{CV_LOAD_IMAGE_COLOR, imshow, waitKey}; use OpenCV{CascadeClassifier, Mat}; // Modèle de détection de visage de chargement $cascade = new CascadeClassifier(); $cascade-> chargement ('haarcascade_frontalface_default.xml'); // Chargez le modèle de reconnaissance Emoticône $ Reconnateur = lbPhfaceCognizer :: Create (); $ Recognizer-> read ('face_recognnizer.yml'); // expression tag $ labels = [«en colère», «heureuse», «neutre», «triste»]; // Chargez l'image de test $ image = imread ('test_image.jpg', cv_load_image_color); // convertit l'image en niveaux de gris $ gris = cvtColor ($ image, cv_bgr2Gray); // détecter les visages $ visages = []; $ Cascade-> DetectMultiscale ($ gris, $ visages); // Reconnaissance d'expression foreach ($ visages comme $ face) { // Extraction de la zone de visage $ roi = $ gris-> subat ($ face); // redimensionner l'image $ redimensive = redimensive ($ roi, nouveau tapis (100, 100)); // Expression prédictive $ label = 0; $ confiance = 0; $ Reconnateur-> Prédire ($ Residize, $ Label, $ Confiance); // montre les résultats des émoticônes rectangle ($ image, $ face-> x, $ face-> y, $ face-> x + $ face-> largeur, $ face-> y + $ face-> hauteur, scalar :: all (255)); putText ($ image, $ étiquettes [$ label], nouveau point ($ face-> x, $ face-> y - 20), font_hershey_simplex, 0,8, scalar :: all (255)); } // Afficher l'image imshow («Reconnaissance d'expression faciale», $ image); WaitKey (0); ?>
Après avoir fini d'écrire le code, vous pouvez l'exécuter avec la commande suivante:
php facial_expression_recognition.php
Après la course, vous devriez être en mesure de voir les faces détectées dans l'image, et chaque zone de visage est marquée de l'expression correspondante.
En utilisant des bibliothèques PHP et OpenCV, vous pouvez facilement réaliser la reconnaissance d'expression faciale dans les images. L'exemple de code fourni dans cet article montre comment détecter les visages et reconnaître leurs expressions en images. Vous pouvez évoluer et optimiser ce code en fonction des besoins réels.
Veuillez noter que l'utilisation spécifique des bibliothèques et des classes utilisées dans les exemples peut changer avec les mises à jour de la version, veuillez vous adapter en fonction de la version que vous utilisez.