Maison >développement back-end >Tutoriel Python >Analyser l'émotion, l'âge et le sexe à l'aide de la bibliothèque Serengil/DeepFace en Python

Analyser l'émotion, l'âge et le sexe à l'aide de la bibliothèque Serengil/DeepFace en Python

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 14:32:11886parcourir

Dans cet article, nous verrons comment utiliser la bibliothèque DeepFace de Serengil pour analyser les émotions, l'âge et le sexe à partir d'images faciales. Cet article comprendra quatre sections principales : (1) discussion sur les bibliothèques utilisées, (2) comment utiliser les bibliothèques, (3) explication du code et (4) résultats d'analyse.

1. Discussion sur la bibliothèque DeepFace
DeepFace est une bibliothèque open source basée sur Python qui offre des capacités d'analyse faciale. Cette bibliothèque a été développée par Serengil et est devenue un outil puissant pour de nombreuses applications de reconnaissance faciale et d'analyse des attributs faciaux. DeepFace est capable de détecter et de reconnaître les visages, ainsi que d'analyser des attributs tels que l'émotion, l'âge et le sexe avec une grande précision.

DeepFace utilise un modèle d'apprentissage automatique qui a été formé sur un vaste ensemble de données d'images faciales. Ce modèle utilise l'apprentissage en profondeur pour extraire les traits du visage et effectuer une classification des attributs avec précision. Certains des modèles d'apprentissage profond utilisés par DeepFace incluent VGG-Face, Google FaceNet, OpenFace et bien d'autres. La possibilité de sélectionner et de combiner ces modèles offre flexibilité et fiabilité dans une variété de scénarios d'application.

2. Comment utiliser la bibliothèque
Pour utiliser DeepFace, nous devons d'abord installer certaines dépendances. Voici les étapes détaillées :

  • Assurez-vous que Python et pip sont installés sur votre système. Vous pouvez vérifier l'installation en exécutant la commande suivante dans le terminal :
python --version
pip --version
  • Installez la bibliothèque DeepFace avec la commande suivante :
pip install deepface
  • Outre DeepFace, nous avons également besoin d'autres bibliothèques telles que OpenCV pour le traitement d'images et NumPy pour la manipulation de tableaux. Installez la bibliothèque avec la commande suivante :
pip install opencv-python numpy

Une fois toutes les dépendances installées, nous sommes prêts à commencer à écrire du code pour analyser les visages.

3. Explication du code
Voici le code pour analyser l'émotion, l'âge et le sexe à partir d'images faciales. Ce code se compose de plusieurs fonctions principales qui seront expliquées en détail.

python
import json
import numpy as np
from deepface import DeepFace
import cv2

# Fungsi untuk menampilkan gambar
def show_image(img_path):
    img = cv2.imread(img_path)
    cv2.imshow("Image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# Fungsi untuk konversi data agar bisa di-serialisasi
def convert_to_serializable(obj):
    if isinstance(obj, np.float32):
        return float(obj)
    raise TypeError(f"Object of type {type(obj)} is not JSON serializable")

# Fungsi untuk analisis wajah
def analyze_face(img_path):
    result = DeepFace.analyze(img_path)
    print("Hasil Analisis:", result)
    return result

# Fungsi utama
def main():
    # Path gambar
    img_path = "images/happy.jpg"

    # Analisis wajah
    analysis_result = analyze_face(img_path)

    # Simpan hasil analisis ke file JSON
    with open('result_analysis.json', 'w') as json_file:
        json.dump(analysis_result, json_file, default=convert_to_serializable)

if __name__ == "__main__":
    main()

Explication du code
show_image(img_path) : Cette fonction est utilisée pour afficher des images à l'aide d'OpenCV. L'image sera affichée dans une fenêtre séparée et attendra la saisie de l'utilisateur avant de fermer la fenêtre.

convert_to_serializing(obj) : Cette fonction convertit un objet numpy float32 en float afin qu'il puisse être sérialisé au format JSON. Ceci est nécessaire car les types de données numpy ne sont pas directement compatibles avec JSON.

analyze_face(img_path) : Fonction principale d'analyse des visages. Cette fonction utilise DeepFace pour analyser l'image du visage donnée et renvoie les résultats de l'analyse.

main() : Cette fonction est le point d'entrée principal du script. Cette fonction détermine le chemin de l'image, appelle la fonction d'analyse du visage et enregistre les résultats de l'analyse dans un fichier JSON.

img_path : Contient l'image que vous souhaitez analyser, un exemple de l'image que j'ai utilisée pour analyser

Menganalisis Emosi, Umur, dan Gender Menggunakan Library Serengil/DeepFace di Python

4. Résultats d'analyse
Après avoir exécuté le code ci-dessus à l'aide de l'image, vous obtiendrez les résultats de l'analyse faciale enregistrés dans le fichier result_analysis.json. Ces résultats incluent des informations sur les émotions, l’âge et le sexe des visages analysés. Voici un exemple du résultat :

python --version
pip --version

Grâce à ces informations, vous pouvez en savoir plus sur les attributs du visage analysés à l'aide de DeepFace. Cette bibliothèque est très utile dans diverses applications telles que la sécurité, le marketing et la recherche. Par exemple, dans le domaine du marketing, l'analyse émotionnelle peut aider à comprendre les réactions des consommateurs à la publicité ou aux produits.

De plus, la capacité de détecter l'âge et le sexe peut être utilisée pour personnaliser les services, par exemple en fournissant des recommandations correspondant au profil de l'utilisateur. Cet article montre à quel point la bibliothèque DeepFace est puissante et flexible à des fins d'analyse faciale.

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:
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