Ce projet consiste à développer un prototype d’API capable de détecter un visage sur une photo, prédire l’émotion correspondante et enregistrer le résultat dans une base de données. L’objectif est d’évaluer la faisabilité d’une future solution SaaS d’analyse émotionnelle pour des tests produits et des expériences UX.
| N° | Tâche | Description courte |
|---|---|---|
| 1 | Documentation des outils et notions | Étudier les technologies et concepts nécessaires au projet. |
| 2 | Préparation et exploration des données | Analyser et nettoyer les données utilisées pour l’entraînement. |
| 3 | Entraînement du CNN | Créer et entraîner le modèle de classification des émotions. |
| 4 | Détection de visages (OpenCV & Haar Cascade) | Implémenter la détection automatique de visages sur les images. |
| 5 | Création de l’API FastAPI | Développer l’API pour recevoir les images et retourner les prédictions. |
| 6 | Tests unitaires & GitHub Actions | Mettre en place les tests et l’intégration continue. |
Detection_Emotions_Faciales/
├── backend/
│ ├── CNN_model.keras/
│ ├── database.py
│ ├── main.py
│ └── models.py
├── CNN/
│ ├── images/
│ ├── Analyse_kagglehub_data.ipynb
│ ├── detect_and_predict.py
│ └── haarcascade_frontalface_default.xml
├── .gitignore
├── README.md
├── requirements.txt
└── test_unitaire.py
-
Backend :
- fastapi - httpx - postresql - sqlalchemy - python-dotenv - pytest - joblib -
Convolutional Neural Network (CNN) :
- kagglehub - numpy - tensorflow / keras - matplotlib - opencv-python
-
Cloner le projet :
git clone https://github.com/SaidaAourras/Detection_Emotions_Faciales.git cd Detection_Emotions_Faciales -
Creer un enveronemnt virtuel:
python -m venv your_venv -
Activer la votre enveronemnt virtuel (win)
.\your_venv\Scripts\activate -
Installer les dépendances :
pip install -r requirements.txt -
Lancer l’API FastAPI :
uvicorn backend.main:app --reload -
Exécuter les tests unitaires :
pytest -v
-
Route POST /predict_emotion : envoyer une image pour obtenir l’émotion prédite.
-
Route GET /history : consulter l’historique des prédictions dans PostgreSQL.
-
Script detect_and_predict.py : détecte le visage et affiche la prédiction sur l’image.
-
Détection de visage automatique
-
Prédiction des émotions (happy, sad, angry, surprised, etc.)
-
Stockage des résultats dans PostgreSQL
-
API REST fonctionnelle
-
Tests unitaires et CI/CD avec GitHub Actions
Developped BY : SAIDA AOURRAS