Différences entre versions de « Projets:CanAÏ »
Ligne 137 : | Ligne 137 : | ||
=== Étapes à réaliser pour le prototype === | === Étapes à réaliser pour le prototype === | ||
− | * Connecter la Pi Caméra | + | * Connecter la Pi Caméra [https://www.gotronic.fr/pj2-tutopicam-1585.pdf Tutoriel ] |
− | |||
− | [https://www.gotronic.fr/pj2-tutopicam-1585.pdf Tutoriel ] | ||
* Entrainement d’un modèle de réseau de neurones sur Google Colab avec le dataset constitué préalablement | * Entrainement d’un modèle de réseau de neurones sur Google Colab avec le dataset constitué préalablement | ||
Ligne 147 : | Ligne 145 : | ||
Tutoriel pour entraîner le modèle : [https://github.com/AlexeyAB/darknet Tutoriel Google Colab] | Tutoriel pour entraîner le modèle : [https://github.com/AlexeyAB/darknet Tutoriel Google Colab] | ||
− | Utilisez le modèle TinyYOLO pour réduire la durée de détection des images. | + | -> 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 | * Overclock de la carte Raspberry Pi pour augmenter son nombre d'action à la seconde | ||
− | |||
[https://www.seeedstudio.com/blog/2020/02/12/how-to-safely-overclock-your-raspberry-pi-4-to-2-147ghz/ Tutoriel] | [https://www.seeedstudio.com/blog/2020/02/12/how-to-safely-overclock-your-raspberry-pi-4-to-2-147ghz/ Tutoriel] | ||
* Implémentation du code python sur la carte pour les différents cas d’usage | * Implémentation du code python sur la carte pour les différents cas d’usage | ||
− | + | * Connexion de l’enceinte Bluetooth pour transmettre le signal [https://howchoo.com/pi/bluetooth-raspberry-pi Tutoriel] | |
− | * Connexion de l’enceinte Bluetooth pour transmettre le signal | ||
− | |||
− | [https://howchoo.com/pi/bluetooth-raspberry-pi Tutoriel] | ||
=== Toutes nos étapes de fabrication === | === Toutes nos étapes de fabrication === |
Version du 31 janvier 2022 à 15:01
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 | 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
Prototype du boîtier
Étapes de fabrication pas à pas
Étapes à réaliser pour le prototype
- Connecter la Pi Caméra Tutoriel
- 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
- 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
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