Différences entre versions de « Projets:CanAÏ »

De wikilab
 
(41 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
{{Infobox projet
 +
|Image principale=20220127 160453.jpg
 +
|Description=Appareil muni d’une caméra pouvant détecter et analyser la couleur des feux piétons.
 +
|Porteur de projet=Augustin J.
 +
|Contributeurs=Aristide B., Emma C., Emma F., Laure S., Pablo Z.
 +
|Fabmanager=Delphine
 +
|Référent documentation=Emma C.
 +
|Catégorie de handicap=Malvoyance
 +
|Etat d'avancement=Réalisés
 +
|Statut de la documentation=Complète
 +
|Relecture de la documentation=Non vérifiée
 +
|Niveau=Moyen
 +
|Licence=by-sa
 +
|Projet date=2022-01-26
 +
|Nom humanlab=Humanlab_MHK
 +
}}
 +
<gallery>
 +
[[|thumb]]
 +
</gallery>
 
== Description du projet ==
 
== Description du projet ==
 +
 +
<gallery>
 +
20220127_160453.jpg
 +
</gallery>
  
 
Projet porté par une équipe de 6 étudiants en dernière année à l'école d'ingénieur ECE Paris.  
 
Projet porté par une équipe de 6 étudiants en dernière année à l'école d'ingénieur ECE Paris.  
Ligne 63 : Ligne 86 :
 
* Animateur (coordinateur du projet): Augustin J.
 
* Animateur (coordinateur du projet): Augustin J.
  
* Concepteurs/contributeurs : Aristide B., Emma C., Emma F., Laure S., Pablo Z.
+
* Concepteurs/contributeurs : Aristide B. , Emma C. , Emma F. , Laure S. , Pablo Z.
  
 
== Matériel nécessaire ==
 
== Matériel nécessaire ==
Ligne 81 : Ligne 104 :
 
Le kit Raspberry Pi contient :  
 
Le kit Raspberry Pi contient :  
  
- Raspberry Pi 4 modèle B 8 Go de RAM
+
* 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  
+
* 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
+
* Alimentation 5,1 V 3A avec interrupteur
  
- Boîtier Noir premium pour Pi 4B  
+
* Boîtier Noir premium pour Pi 4B  
  
- Module de dissipateur de chaleur / ventilateurs  
+
* Module de dissipateur de chaleur / ventilateurs  
  
- Câble Micro HDMI vers HDMI
+
* Câble Micro HDMI vers HDMI
  
- Lecteur de carte Micro SD (USB-C et USB-A)  
+
* Lecteur de carte Micro SD (USB-C et USB-A)  
  
- Tournevis magnétique  
+
* Tournevis magnétique  
  
- Manuel en cinq langues
+
* Manuel en cinq langues
 
   
 
   
- 4 vis  
+
* 4 vis  
  
- 4 écrous
+
* 4 écrous
 +
 
 +
Pour ce projet, nous pensons qu'une carte Raspberry Pi de 4 Go serait suffisante.
  
 
==Outils nécessaires==
 
==Outils nécessaires==
Ligne 108 : Ligne 133 :
 
* Un clavier
 
* Un clavier
 
* Une souris
 
* Une souris
* Google colab pour entraîner le modèle du réseau de neurones
+
* 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
 
* Python 3.7
  
==Coût==
+
==Fichiers source==
  
==Délai estimé==
+
===== Repository sur Github =====
  
==Fichiers source==
+
[https://github.com/Pablo18D/Canai Lien de notre projet sur Github]
 +
 
 +
===== Code Google Colab =====
 +
 
 +
[https://colab.research.google.com/github/Pablo18D/canai/blob/main/Entrainement_TinyYoloV4_Feux_Pi%C3%A9tons.ipynb Code Google Colab]
 +
 
 +
===== Prototype du boîtier =====
  
 
==Étapes de fabrication pas à pas==
 
==Étapes de fabrication pas à pas==
  
*  
+
=== Étapes à réaliser pour reproduire le prototype ===
===== Réception des composants commandés =====
+
 
 +
* Connecter la Pi Caméra [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
 +
 
 +
Réseau de neurones sur Google Colab : [https://colab.research.google.com/github/Pablo18D/canai/blob/main/Entrainement_TinyYoloV4_Feux_Pi%C3%A9tons.ipynb Entrainement TinyYoloV4 Feux Piétons]
 +
 
 +
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.
 +
 
 +
* 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]
 +
 
 +
* 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]
 +
 
 +
=== Toutes nos étapes de fabrication ===
 +
* Réception des composants commandés  
 +
 
 +
* Démarrage de la Raspberry Pi et son ventilateur
 
   
 
   
===== Démarrage de la Raspberry Pi et son ventilateur =====
+
* Prise en main de l'OS intégré et visualisation sur un moniteur
 
   
 
   
===== Prise en main de l'OS intégré et visualisation sur un moniteur =====
+
* Connexion de la Pi Caméra  
 
===== Connexion de la Pi Caméra : =====
 
  
- Première photos et vidéos prises et stockées sur la carte
+
- Premières photos et vidéos prises et stockées sur la carte
  
===== Implémentation d'un premier algorithme de détection d'objets =====
+
* Implémentation d'un premier algorithme de détection d'objets  
 
   
 
   
===== Constitution par les membres du groupe d'un dataset d'images =====
+
* 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
 
- 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
 
- Tri des photos pour ne garder que des images de même taille : 300 images au final environ
  
===== Labellisation des images avec l'outil [https://www.makesense.ai/ makesense] =====
+
* Labellisation des images avec l'outil [https://www.makesense.ai/ makesense]  
  
 
- Délimitation par un carré des feux piétons sur les images du dataset
 
- Délimitation par un carré des feux piétons sur les images du dataset
Ligne 144 : Ligne 193 :
 
- 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
 
- 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 =====
+
* 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 =====
+
* 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 données  
Ligne 156 : Ligne 203 :
 
- Tests avec des images prises par la Pi Caméra
 
- Tests avec des images prises par la Pi Caméra
  
===== Améliorations de la durée et du taux de détection des images =====
+
* 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é'')
  
- Redimensionnement des images du dataset au même format que la Pi Caméra : 416 x 416
+
* Implémentation du code python sur la carte pour les différents cas d'usage
  
- Overclock de la carte Raspberry Pi pour augmenter la puissance de calcul
+
* Connexion de l'enceinte Bluetooth pour transmettre le signal
  
 
==Durée de fabrication du prototype final==
 
==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==
 
==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
 +
  
 
[[Category:Projets]]
 
[[Category:Projets]]
 
[[Category:En cours]]
 
[[Category:En cours]]
 
[[Category:Malvoyance]]
 
[[Category:Malvoyance]]

Version actuelle datée du 12 juillet 2022 à 10:23

CanAÏ

20220127 160453.jpg

Informations
Description Appareil muni d’une caméra pouvant détecter et analyser la couleur des feux piétons.
Catégorie Malvoyance
Etat d'avancement Réalisés
Techniques
Durée de fabrication
Coût matériel
Niveau Moyen
Licence by-sa
Date de création 2022-01-26
Équipe
Porteur de projet Augustin J.
Contributeurs Aristide B., Emma C., Emma F., Laure S., Pablo Z.
Fabmanager Delphine
Référent documentation Emma C.
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Complète
Relecture de la documentation Non vérifiée

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 reproduire 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

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