Skip to content

DavidScanu/e1-projet-chef-oeuvre

Repository files navigation

🚢⛵🛥️ E1 - Projet chef d'œuvre : Détection de bateaux à partir de vues aériennes

Ce projet chef-d'œuvre (réf. E1) témoigne de la maîtrise des compétences visées pour l'obtention du titre professionnel : Développeur en intelligence artificielle (RNCP 34757), délivré par Simplon, dans le cadre de l'École Microsoft IA Caen par Simplon et ISEN. Ce projet chef-d'œuvre implique la création d'un programme d'intelligence artificielle complet, ainsi que le développement d'une application web qui le déploie.

🎓 Projet développé par David Scanu, étudiant en intelligence artificielle 🤖 à l'École Microsoft IA Caen par Simplon et ISEN, 1ère promotion de Caen (2023-2024).

🛳️ Résumé

Ce projet se concentre sur la détection de bateaux à partir de vues aériennes. L'objectif principal est d'implémenter un modèle de détection d'objets pour identifier et suivre les bateaux dans une scène.

Domaine Vision par ordinateur
Tâches Détection d'objet et suivi d’instance

💻 Application Streamlit

Cette application web de détection propose la détection de bateau à partir d'images. Ses fonctionnalités principales comprennent :

  • Importation d'images.
  • Détection en temps réel grâce à une interface web performante.
  • Annotation des résultats directement sur le navigateur, avec chaque objet entouré d'une boîte de délimitation.
  • Utilisation simple : il suffit d'ouvrir l'application dans le navigateur, d'importer le fichier ou d'insérer l'URL YouTube, et de laisser l'application travailler.
  • Exploration des résultats : Consultation des annotations (labels de classe, coordonnées des boîtes de détection et score de confiance) pour obtenir des informations détaillées sur chaque objet détecté.

Technologies utilisées

  • Yolov8 : Un modèle Yolov8 personnalisé pour réaliser les détections dans les images et les vidéos.
  • Streamlit : Le framework front-end Python Streamlit, reconnu pour sa simplicité, son prototypage rapide et interactif, ainsi que pour son caractère open-source et gratuit.
  • PostgreSQL : Une base de données PostgreSQL pour sauvegarder les détections.

Utilisation

🐳 Lancer l'application avec Docker

  1. Créer un fichier .env à la racine du projet, contenant les variables suivantes :
  • DB_PSY_URI : L'adresse de la base de données au format postgresql+psycopg://username:password@host:port/database
  • EMAIL_ADDRESS : L'email Gmail du compte du mot de passe d'application
  • EMAIL_PASSWORD : Mot de passe d'application Gmail (pour l'envoie des alertes)
  1. Construire l'image Docker
docker build -t st-app . 
  1. Lancer le conteneur
docker run --name st-app-container --env-file .env -e PORT=5001 -v .:/streamlit-app -p 5001:5001 st-app
  1. Ouvrir l'application dans votre navigateur:
http://localhost:5001

🖼️ Détection sur une image

  • Téléchargez une image en cliquant sur le bouton "Parcourir les fichiers".
  • Cliquez sur le bouton Détecter les objets pour exécuter l'algorithme de détection d'objets sur l'image téléchargée avec le seuil de confiance sélectionné.
  • L'image résultante avec les objets détectés sera affichée sur la page.

❌ Problèmes rencontrés

Titre Solution URL
1 Problème d'importation des dépendances de CV2. Solution 1 : sudo apt update puis sudo apt install libgl1-mesa-glx - Solution 2 : pip uninstall -y opencv-python et pip install opencv-python-headless Stackoverflow

Améliorations possibles

  • Adapter l'application pour les fichiers .png
  • 🐳 docker-compose.yaml : Ajouter postgreSQL et pgAdmin
  • API REST avec FastAPI (séparer front-end et back-end)

📦 Livrables

Nom Desription URL
📝 Rapport Un rapport qui reprend les différentes étapes de conception et de production du projet. Google Docs
📢 Présentation Une présentation du projet, incluant une démonstration. Google Slides
💻 Application Streamlit Une application web fonctionnelle. Dépôt GitHub
🖼️ Jeu de données Les images annotées pour l'entraînement du modèle Yolov8. Aerial views of boats Computer Vision Project (Roboflow)
📅 Gestion de projet La page de gestion de projet GitHub Projects

📚 Notebooks de développement du modèle de détection Yolov8

Titre Colab
1 🖼️ Téléchargement des vidéos et des images Open In Colab
2 🏷️ Annotations automatiques avec Autodistill Open In Colab
3 🗃️ Sauvegarder les données analytiques dans la base de donnée Open In Colab
4 🔥 Entraînement du modèle YOLOv8 Open In Colab
5 ⚖️ Evaluation des performances du modèle Open In Colab

🎓 L’École IA Microsoft par Simplon et ISEN

L'École Microsoft IA Caen par Simplon et ISEN est une formation en intelligence artificielle offrant :

  • Une certification professionnelle reconnue par l'État (RNCP34757)
  • Une certification Agile
  • Deux certifications Microsoft Azure.

En 2018, Microsoft a créé cette école en partenariat avec Simplon, un réseau de fabriques numériques, pour offrir des opportunités d'emploi dans le domaine de l'IA. La formation comprend l'apprentissage des bases du développement, la maîtrise des données et la conception et le développement de modèles prédictifs de Machine Learning et de Deep Learning.

Cette formation s’effectue en deux temps: après avoir suivi une formation intensive de 7 mois, nous sommes entrés en contrat de professionnalisation de 14 mois en alternance au sein d’une entreprise locale.

About

Application de détection de bateaux à partir de vues aériennes utilisant Yolov8.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published