Projets:CanAÏ

De wikilab

Description du projet

Projet porté par une équipe de 6 étudiants en dernière année à l'école d'ingénieur ECE Paris.

Avec ce projet CanAÏ, nous souhaitons proposer un appareil muni d’une caméra pouvant détecter et analyser la couleur des feux piétons. Il a pour but d'avertir les personnes malvoyantes et aveugles lors de leur déplacement en ville, de leur donner plus de sécurité et d'autonomie.

Un signal sonore indique aux utilisateurs la présence d'un feu piéton et sa couleur.

Cahier des charges

Caractéristiques souhaitées

  • Léger
  • Abordable financièrement
  • Discret
  • Autonome en énergie
  • Haute fiabilité de détection

Cas d'usage pris en charge

  • Détection du feu piéton
  • Reconnaissance de la couleur du feu
  • Transmission d'un signal sonore à l'utilisateur

Analyse de l'existant

Il existe sur le marché de nombreux dispositifs qui permettent de la détection d'objet mais aucun ne se focalise sur la détection de feux piétons.

Les dispositifs existants sont par exemple :

  • Le boitier Tom Pouce :

Détecte les obstacles mobiles et immobiles sur les trottoirs grâce à la technologie infrarouge/laser.

Transmission à l'utilisateur en vibration.

  • L'ultracane :

Détecte les obstacles immobiles sur le sol et en hauteur.

Transmission à l'utilisateur en vibration.

  • Le boîtier Go Sense :

Détecte les obstacles immobiles sur le sol et en hauteur.

Transmission sonore du signal pour l'utilisateur.

  • Le tour de cou Panda Guide

Détecte les obstacles immobiles en milieu urbain.

Transmission à l'utilisateur en vibration.

Equipe (Porteur de projet et contributeurs)

  • Animateur (coordinateur du projet): Augustin J.
  • Concepteurs/contributeurs : Aristide B. , Emma C. , Emma F. , Laure S. , Pablo Z.

Matériel nécessaire

Matériel utilisé
Matériel Prix Lien
Kit Raspberry Pi 176 € https://www.amazon.fr/Raspberry
Module de Caméra Raspberry Pi V2.1 8Mp 1080P 30 € https://www.amazon.fr/dp/B09J8L1F9V
Batterie externe 10000 mAh 20 € https://www.gotronic.fr/art-batterie

Le kit Raspberry Pi contient :

  • Raspberry Pi 4 modèle B 8 Go de RAM
  • Carte MicroSD 64 Go pré-installée avec le système d'exploitation Raspberry Pi (Raspbian) et un guide rapide avec des instructions détaillées
  • Alimentation 5,1 V 3A avec interrupteur
  • Boîtier Noir premium pour Pi 4B
  • Module de dissipateur de chaleur / ventilateurs
  • Câble Micro HDMI vers HDMI
  • Lecteur de carte Micro SD (USB-C et USB-A)
  • Tournevis magnétique
  • Manuel en cinq langues
  • 4 vis
  • 4 écrous

Pour ce projet, nous pensons qu'une carte Raspberry Pi de 4 Go serait suffisante.

Outils nécessaires

  • Un écran moniteur pour visualiser le système d'exploitation de la Raspberry Pi
  • Un clavier
  • Une souris
  • Une sortie audio ( Bluetooth, filaire,...)
  • Google Colab pour entraîner le modèle du réseau de neurones ( ou utilisation d'un ordinateur avec un GPU puissant)
  • Python 3.7

Fichiers source

Repository sur Github

Lien de notre projet sur Github

Code Google Colab

Code Google Colab

Prototype du boîtier

Étapes de fabrication pas à pas

Étapes à réaliser pour le prototype

  • Entrainement d’un modèle de réseau de neurones sur Google Colab avec le dataset constitué préalablement

Réseau de neurones sur Google Colab : Entrainement TinyYoloV4 Feux Piétons

Tutoriel pour entraîner le modèle : Tutoriel Google Colab

-> Utilisez le modèle TinyYOLO pour réduire la durée de détection des images.

  • Overclock de la carte Raspberry Pi pour augmenter son nombre d'action à la seconde

Tutoriel

  • Implémentation du code python sur la carte pour les différents cas d’usage
  • Connexion de l’enceinte Bluetooth pour transmettre le signal Tutoriel

Toutes nos étapes de fabrication

  • Réception des composants commandés
  • Démarrage de la Raspberry Pi et son ventilateur
  • Prise en main de l'OS intégré et visualisation sur un moniteur
  • Connexion de la Pi Caméra

- Premières photos et vidéos prises et stockées sur la carte

  • Implémentation d'un premier algorithme de détection d'objets
  • Constitution par les membres du groupe d'un dataset d'images

- Environ 500 photos prises dans la rue dans différents environnements et sous différentes luminosités

- Tri des photos pour ne garder que des images de même taille : 300 images au final environ

  • Labellisation des images avec l'outil makesense

- Délimitation par un carré des feux piétons sur les images du dataset

- Attribution d'un tag "feu_rouge" ou "feu_vert" selon les deux classes que nous souhaitons pouvoir reconnaître avec notre réseau de neurones

  • Entrainement d'un modèle de réseau de neurones avec le dataset constitué sur Google Colab

- Premier modèle YOLO v4

  • Implémentation de ce modèle sur la carte Raspberry Pi (2 min de temps de calcul)

- Tests avec des images données

- Tests avec des images prises par la Pi Caméra

  • Améliorations de la durée et du taux de détection des images

- Overclock de la carte Raspberry Pi pour augmenter son nombre d'action à la seconde (1 min 30 de temps de calcul)

- Utilisation d'un nouveau modèle TinyYOLO avec moins de couches de traitement (5/10 secondes de temps de calcul)

- Redimensionnement des images du dataset au même format que la Pi Caméra : 416 x 416 (5 secondes de temps de calcul, augmentation de la fiabilité)

  • Implémentation du code python sur la carte pour les différents cas d'usage
  • Connexion de l'enceinte Bluetooth pour transmettre le signal

Durée de fabrication du prototype final

Prototype 1.jpg

Nous avons travaillé un mois sur ce projet. Il nous a fallu faire de nombreuses recherches pour savoir comment implémenter le réseau de neurones puis constituer un dataset avec de nombreuses images et les labelliser puis entrainer le modèle et enfin régler les paramètres pour le faire fonctionner sur la Raspberry Pi avec la Pi Caméra.

Nous pensons que pour reproduire notre prototype en l'état, un temps beaucoup moins important serait nécessaire. En effet, nous partageons le code à la fois d'entrainement du modèle et le code à implémenter sur la Raspberry Pi.

Journal de bord

Améliorations possibles pour ce projet
  • Performance (Ajout d’un GPU pour baisser le temps de calcul)
  • Fiabilité (Création d’un dataset d'images plus complet : format d'image plus grand, plus d'images, luminosité faible...)
  • Ergonomie (Informations données à l'utilisateur par vibration ou par écouteur à conduction osseuse)
  • Détection (Ajouter d’autres objets : passages piéton, voitures ...)
  • Miniaturisation de l'appareil et discrétion
  • Réduction de la taille de la batterie externe