Segmentation d’Images pour Véhicules Autonomes

Présentation du Projet

Ce projet a pour objectif de développer une application de segmentation d’images de bout en bout, conçue pour améliorer la perception des véhicules autonomes dans les environnements urbains complexes. En utilisant des techniques de Deep Learning avancées et des technologies cloud, l’application est capable de segmenter avec précision les scènes de rue en identifiant les objets clés tels que les voitures, les piétons, les routes et les bâtiments. L’application comprend un modèle de segmentation sémantique puissant, une API RESTful pour l’inférence en temps réel et une interface utilisateur interactive pour la visualisation des résultats.

Les points clés

Algorithme Utilisé

  • VGG16 U-Net :
    • Le cœur de ce projet est un modèle de segmentation sémantique basé sur l’architecture VGG16 U-Net. Cette architecture combine la puissance de l’encodeur VGG16 pré-entraîné avec la flexibilité du décodeur U-Net, permettant une segmentation précise et détaillée.
    • Le modèle a été entraîné sur un ensemble de données de scènes urbaines, avec des augmentations de données pour améliorer la robustesse et la généralisation.
  • Générateurs de Données Personnalisés (Sequence) :
    • Pour optimiser l’entraînement du modèle, des générateurs de données personnalisés ont été mis en œuvre, permettant un chargement efficace des données et une augmentation en temps réel.
  • Albumentations :
    • Cette bibliothèque a été utilisée pour effectuer des augmentations de données avancées, telles que des retournements horizontaux, des ajustements de luminosité/contraste et des rotations, afin d’améliorer la performance du modèle.

Fonctionnalités du projet

  • Segmentation Sémantique :
    • Segmentation précise des scènes urbaines en 8 catégories principales : routes, trottoirs, bâtiments, murs, clôtures, poteaux/feux de circulation, végétation et terrain.
  • API RESTful (Flask) :
    • Une API RESTful a été développée avec Flask pour exposer le modèle de segmentation, permettant des prédictions en temps réel à partir d’images soumises.
    • L’API est intégrée à Google Cloud Storage pour le stockage et la récupération des images et des masques de segmentation.
    • Gestion des requêtes CORS pour permettre l’interaction avec des applications web frontales.
  • Interface Utilisateur (Streamlit) :
    • Une interface utilisateur interactive a été créée avec Streamlit, permettant aux utilisateurs de sélectionner et de visualiser les résultats de la segmentation.
    • L’interface affiche les images originales, les masques réels et les masques prédits, offrant une visualisation claire et détaillée des performances du modèle.
  • Déploiement Cloud (Google Cloud) :
    • L’API Flask et l’application Streamlit sont déployées sur Google Cloud Run, permettant un accès facile et évolutif.
    • Google Cloud Storage est utilisé pour le stockage des données, des modèles et des résultats.
    • Utilisation de Docker pour l’automatisation du déploiement.

Points forts du projet :

  • Précision de la Segmentation :
    • Le modèle VGG16 U-Net offre une segmentation précise et détaillée des scènes urbaines.
  • Performance en Temps Réel :
    • L’API Flask permet des prédictions en temps réel, essentielles pour les applications de véhicules autonomes.
  • Scalabilité et Fiabilité :
    • Le déploiement sur Google Cloud Run garantit la scalabilité et la fiabilité de l’application.
  • Interface Utilisateur Intuitive :
    • L’interface Streamlit offre une expérience utilisateur intuitive pour la visualisation des résultats.
  • Intégration Cloud :
    • L’intégration avec Google Cloud Storage permet un stockage et une gestion efficaces des données.

Applications potentielles

  • Véhicules Autonomes :
    • Amélioration de la perception des véhicules autonomes en fournissant une segmentation précise des scènes de rue.
  • Surveillance Urbaine :
    • Analyse automatisée des images de surveillance pour la détection d’objets et la compréhension des scènes.
  • Cartographie et Navigation :
    • Création de cartes sémantiques détaillées pour la navigation et la planification de trajets.
  • Analyse de Trafic :
    • Analyse automatisée des flux de trafic pour la gestion et l’optimisation des infrastructures routières.
  • Robotique :
    • Permettre aux robots d’analyser leur environnement.

Technologies Utilisées

  • Deep Learning : TensorFlow, Keras
  • Développement Web : Flask, Streamlit
  • Cloud Computing : Google Cloud Run, Google Cloud Storage
  • Traitement d’Images : OpenCV, PIL, Albumentations
  • Langages de Programmation : Python
  • Outils : Docker, Git

Défis Relevés

  • Gestion de grands ensembles de données d’images.
  • Optimisation du modèle pour la performance en temps réel.
  • Déploiement et gestion d’applications cloud.