- Contexte du Projet
- Architecture du Système
- Fonctionnalités
- Prérequis et Installation
- Configuration
- Utilisation
- Structure du Code
- Détails Techniques
- Captures d'Écran
- FAQ
- Contributions
- Licence
Ce projet a été développé dans le cadre du cours de Systèmes Multi-Agents (SMA) et Projet Système Expert à Polytechnique. L'objectif était de concevoir et implémenter un agent cognitif orienté but utilisant Java et JADE, avec OpenCV pour la détection d'objets et l'estimation de distance en temps réel.
L'agent cognitif se compose de deux parties principales :
- Agent Vision Cognitif : Capture des images via une caméra, détecte les objets, calcule leur distance et envoie ces informations à un agent récepteur.
- Agent Récepteur : Reçoit les données de l'agent vision, les affiche dans une interface graphique et génère des statistiques.
Le système repose sur une architecture multi-agents avec les composants suivants :
- MainContainer : Conteneur principal JADE qui gère la plateforme.
- VisionContainer : Conteneur pour l'agent de vision cognitive.
- ReceiverContainer : Conteneur pour l'agent récepteur.
+-------------------+ +-------------------+ +-------------------+
| VisionContainer | <---> | MainContainer | <---> | ReceiverContainer |
| (Agent Vision) | | (JADE Platform) | | (Agent Récepteur) |
+-------------------+ +-------------------+ +-------------------+
- Détection d'Objets :
- Utilisation de modèles pré-entraînés (YOLOv4 pour les objets, ResNet pour les visages).
- Détection en temps réel avec ajustement du seuil de confiance.
- Estimation de Distance :
- Calcul basé sur la taille connue des objets et la longueur focale de la caméra.
- Communication entre Agents :
- Envoi des résultats de détection via des messages ACL (Agent Communication Language).
- Interface Graphique :
- Affichage des résultats, logs et statistiques.
- Configuration des paramètres de détection.
- Java JDK 11 ou supérieur
- Maven
- OpenCV 4.5.x
- JADE (inclus dans le projet)
- Modèles de détection (YOLOv4 et ResNet)
-
Cloner le dépôt :
git clone https://github.com/Tiger-Foxx/SMA_Object_DETECTION.git cd projet-sma -
Installer les dépendances :
- Téléchargez OpenCV et configurez le chemin dans
pom.xml. - Placez les modèles de détection dans le dossier
models/:yolov4.cfgyolov4.weightsdeploy.prototxtres10_300x300_ssd_iter_140000.caffemodel
- Téléchargez OpenCV et configurez le chemin dans
-
Compiler le projet :
mvn clean install
MainContainer.java: Conteneur principal JADE.VisionContainer.java: Interface pour l'agent de vision.ReceiverContainer.java: Interface pour l'agent récepteur.
- Seuil de confiance : Ajustable via l'interface graphique.
- Adresse IP du MainContainer : Saisie dans les champs dédiés.
- Mode de détection : Tous les objets, visages uniquement, ou objets spécifiques.
-
Démarrer le MainContainer :
java -cp target/projet-sma.jar MainContainer
-
Démarrer l'Agent Vision :
java -cp target/projet-sma.jar VisionContainer
- Saisir l'adresse IP du MainContainer (par défaut
localhost).
- Saisir l'adresse IP du MainContainer (par défaut
-
Démarrer l'Agent Récepteur :
java -cp target/projet-sma.jar ReceiverContainer
- Saisir la même adresse IP que pour l'agent vision.
-
Utiliser l'Interface :
- Activer/désactiver la détection.
- Ajuster le seuil de confiance.
- Visualiser les résultats et statistiques.
projet-sma/
├── src/
│ ├── main/java/
│ │ ├── Agents/
│ │ │ ├── AgentVisionCognitif.java
│ │ │ └── ReceiverAgent.java
│ │ ├── Containers/
│ │ │ ├── MainContainer.java
│ │ │ ├── VisionContainer.java
│ │ │ └── ReceiverContainer.java
│ │ └── Utils/
│ │ ├── DetectionData.java
│ │ └── ObjectTracker.java
├── models/
│ ├── yolov4.cfg
│ ├── yolov4.weights
│ ├── deploy.prototxt
│ └── res10_300x300_ssd_iter_140000.caffemodel
└── screens/
├── 0.png
├── 1.png
└── ...
- YOLOv4 : Pour la détection d'objets génériques.
- ResNet : Pour la détection de visages.
- Calcul de Distance : [ \text{Distance (cm)} = \frac{\text{Taille Réelle (cm)} \times \text{Longueur Focale (pixels)}}{\text{Taille en Pixels}} ]
- Messages ACL entre agents.
- Utilisation du DF (Directory Facilitator) pour la découverte des agents.
R : Utilisez le curseur dans l'interface de l'agent vision pour modifier le seuil de confiance.
R : Vérifiez que la taille réelle de l'objet est correctement définie dans OBJECT_SIZES.
R : Saisissez l'IP du MainContainer dans les champs dédiés des containers Vision et Receiver.
- Équipe : [GROUPE 10]
- Encadrant : [Pr Batchakui B.]
- Code : Contribuez via les pull requests.
Pour toute question, contactez THE FOX : [donfackarthur750@gmail.com]




