diff --git a/data/raw/.gitignore b/data/raw/.gitignore new file mode 100644 index 0000000..28e94f5 --- /dev/null +++ b/data/raw/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this .gitignore file +!.gitignore \ No newline at end of file diff --git a/data/results/.gitkeep b/data/results/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/data/training/.gitkeep b/data/training/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/notes.md b/notes.md new file mode 100644 index 0000000..17f4f79 --- /dev/null +++ b/notes.md @@ -0,0 +1,59 @@ + +## 📄 Résumé Technique du Projet + +Votre projet vise à créer un système capable d'**identifier et de classer les personnes** dans des images et +des vidéos, en allant au-delà de la simple classification d'objets. + +### 🎯 Objectif Principal : Reconnaissance d'Identité + +L'objectif n'est pas seulement de classer des catégories (ex: "chat"), mais d'identifier des **entités +uniques** (ex: "Cette personne est Alice"), ce qui nécessite une approche de **Reconnaissance d'Identité** +basée sur l'apprentissage des similarités. + +### ⚙️ Le Pipeline Technique Recommandé + +Le système se décompose en quatre étapes principales, utilisant des techniques de **Vision par Ordinateur** et +de **Deep Learning**. + +| Étape | Objectif | Technique Clé | Rôle | +| :--- | :--- | :--- | :--- | +| **1. Détection** | Localiser les visages/têtes dans l'image. | Détection d'objets (YOLO, MTCNN) | Trouver la +position exacte de la tête. | +| **2. Extraction (Embedding)** | Transformer le visage en une représentation numérique unique. | Réseaux +Neuronaux (CNNs) | Générer un vecteur (Embedding) unique pour chaque personne. | +| **3. Stockage** | Sauvegarder les identités. | Base de données (SQL) | Stocker les vecteurs d'identité +(Embeddings) de toutes les personnes. | +| **4. Comparaison** | Identifier les correspondances. | Calcul de similarité (Distance Euclidienne) | Comparer +un nouvel embedding avec ceux stockés pour déterminer l'identité. | + +### 🛠️ Technologies et Librairies Python + +Pour implémenter ce pipeline, voici les outils que vous devrez maîtriser : + +| Catégorie | Technologies Recommandées | Usage Spécifique | +| :--- | :--- | :--- | +| **Traitement d'Image** | **OpenCV (cv2)** | Lecture, manipulation (recadrage), et gestion des flux vidéo. | +| **Détection** | **dlib, YOLO** | Détection rapide et précise des visages et des têtes. | +| **Deep Learning** | **TensorFlow** ou **PyTorch** | Construire et entraîner les modèles de Réseaux Neuronaux. +| +| **Modèles Spécifiques** | **FaceNet, ArcFace** | Implémentations de modèles spécialisés pour la +reconnaissance d'identité (génération des *Embeddings*). | +| **Interface Utilisateur**| **Streamlit** ou **Flask** | Créer une interface simple pour téléverser les images +et afficher les résultats. | +| **Base de Données** | **SQLite** ou **PostgreSQL** | Stocker de manière structurée les identités et les +métadonnées. | + +### 💡 Conclusion sur l'Entraînement + +**Oui, l'entraînement est nécessaire**, mais il ne s'agit pas d'une simple classification de catégorie. Il +s'agit d'un entraînement pour que le modèle apprenne à créer des **représentations (Embeddings)** uniques pour +chaque personne, ce qui permet ensuite de faire la **reconnaissance d'identité** (comparer la similarité des +vecteurs). + +**Stratégie de Démarrage :** + +1. **Maîtriser la Détection :** Commencez par utiliser OpenCV pour détecter les visages. +2. **Explorer les Modèles Pré-entraînés :** Utilisez des bibliothèques existantes comme **`face_recognition`** +(basée sur dlib) ou des implémentations de **FaceNet** pour valider le concept de l'embedding. +3. **Intégrer le Deep Learning :** Une fois les bases acquises, intégrez un framework comme TensorFlow/PyTorch +pour entraîner votre propre modèle de *FaceNet* ou *ArcFace* sur votre propre jeu de données. \ No newline at end of file diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29