yolo_darknet_avec_un_vrai_semaphore
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
y:yolo_darknet_avec_un_vrai_semaphore [2019/05/26 18:00] – [Installation] serge | yolo_darknet_avec_un_vrai_semaphore [2020/10/04 08:55] – Tag0 Removed: apprentissage_automatique serge | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
**{{tagpage> | **{{tagpage> | ||
</ | </ | ||
- | <WRAP center round box 60% centeralign> | + | |
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | <WRAP center round box 95% centeralign> | ||
C'est quoi un sémaphore ? | C'est quoi un sémaphore ? | ||
{{ youtube> | {{ youtube> | ||
{{ : | {{ : | ||
</ | </ | ||
- | \\ \\ | + | </ |
- | <WRAP center round box 60% centeralign> | + | |
+ | <WRAP half column> | ||
+ | <WRAP center round box 95% centeralign> | ||
// | // | ||
</ | </ | ||
- | <WRAP center box 60% centeralign> | + | {{ media_03: |
- | Ce sémaphore est une image virtuelle, mais c'est copie conforme du vrai ! | + | Ce sémaphore est une image virtuelle ! |
+ | </ | ||
</ | </ | ||
- | |||
=====Suite et fin===== | =====Suite et fin===== | ||
- | De **[[y:yolo_darknet_sur_un_portable_optimus|Yolo Darknet sur un portable Optimus]]** | + | De **[[yolo_darknet_sur_un_portable_optimus|Yolo Darknet sur un portable Optimus]]** |
Un sémaphore a été construit dans le monde réel avec des pièces réalisées sur Imprimante 3D. | Un sémaphore a été construit dans le monde réel avec des pièces réalisées sur Imprimante 3D. | ||
Ligne 27: | Ligne 32: | ||
Par contre, le BGE ne permet une sortie d' | Par contre, le BGE ne permet une sortie d' | ||
+ | =====Les sources sur GitHub===== | ||
+ | * **[[https:// | ||
=====Installation===== | =====Installation===== | ||
Voir | Voir | ||
- | * [[y:yolo_darknet_sur_un_portable_optimus# | + | * [[yolo_darknet_sur_un_portable_optimus# |
- | * [[y:yolo_darknet_sur_un_portable_optimus# | + | * [[yolo_darknet_sur_un_portable_optimus# |
Blender 2.79b mais pas 2.80 qui n'a plus de BGE. Sur Xubuntu 18.04: | Blender 2.79b mais pas 2.80 qui n'a plus de BGE. Sur Xubuntu 18.04: | ||
- | sudo apt install blender | + | sudo apt-get install blender |
=====Fabrication des images===== | =====Fabrication des images===== | ||
Avec le lanceur create_shot.sh | Avec le lanceur create_shot.sh | ||
Ligne 54: | Ligne 61: | ||
====cfg==== | ====cfg==== | ||
Relire tout le readme pour bien configurer en particulier: | Relire tout le readme pour bien configurer en particulier: | ||
- | * for training for both small and large objects use modified models: yolov3-tiny_3l.cfg | + | * for training for both small and large objects use modified models: |
* If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/ | * If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/ | ||
====Apprentissage==== | ====Apprentissage==== | ||
- | | + | Adapter les chemins ! |
- | ./darknet detector train blend/ | + | ./darknet partial blend/calcul_1_9000_jpg_90_small_var.cfg yolov3-tiny.weights yolov3-tiny.conv.15 15 |
+ | ./darknet detector train blend/ | ||
| | ||
====3 calcul==== | ====3 calcul==== | ||
Ligne 65: | Ligne 73: | ||
* **jpg 90, faible variation d' | * **jpg 90, faible variation d' | ||
* 9 000 itérations | * 9 000 itérations | ||
- | {{ :y: | + | {{ media_03: |
* Détails des résultats: [[: | * Détails des résultats: [[: | ||
===Calcul 2 sur 1060 GTX=== | ===Calcul 2 sur 1060 GTX=== | ||
Suite du calcul 1, en repartant à 12000, et avec 54 000 itérations. | Suite du calcul 1, en repartant à 12000, et avec 54 000 itérations. | ||
- | {{ :y: | + | {{ media_03: |
* Détails des résultats: [[: | * Détails des résultats: [[: | ||
Ligne 76: | Ligne 84: | ||
* **jpg 100, forte variation d' | * **jpg 100, forte variation d' | ||
* 12 000 itérations sur carte 765 GTX et subdivision=32 pour palier à la trop faible RAM du GPU. | * 12 000 itérations sur carte 765 GTX et subdivision=32 pour palier à la trop faible RAM du GPU. | ||
- | {{ :y: | + | {{ media_03: |
* Détails des résultats: [[: | * Détails des résultats: [[: | ||
====Comparaison==== | ====Comparaison==== | ||
- | {{ :y:result.pdf |}} | + | {{ media_03:result.pdf |}} |
- | {{:y: | + | {{media_03: |
=====Reconnaissance dans le monde réel===== | =====Reconnaissance dans le monde réel===== | ||
La partie reconnaissance est dans le dossier [[https:// | La partie reconnaissance est dans le dossier [[https:// | ||
- | ====Installation==== | + | Une webcam regarde le sémaphore. Cette webcam ne peut-être que: |
- | * Installation de cuda, cudnn, opencv, .... [[:y/yolo_darknet_sur_un_portable_optimus# | + | * **Microsoft HD5000** ça m’attriste cette pub ! |
- | * Installation de darnet [[:y/yolo_darknet_sur_un_portable_optimus# | + | |
- | ====Préparation==== | + | |
- | Copier | + | |
- | dans le dossier darknet, | + | |
+ | ====Rappel des pages pour l' | ||
+ | * Installation de cuda, cudnn, opencv, .... [[yolo_darknet_sur_un_portable_optimus# | ||
+ | * Installation de darnet [[yolo_darknet_sur_un_portable_optimus# | ||
+ | |||
+ | ====Mise à jour des sources==== | ||
+ | * Dans le dossier | ||
+ | |||
+ | git reset --hard origin/master | ||
+ | |||
+ | Copier | ||
====Exécution de la reconnaissance==== | ====Exécution de la reconnaissance==== | ||
- | export PATH=/usr/local/ | + | Dans le dossier semaphore_blend_yolo/darknet |
- | python3 get_semaphore_message.py 0 2 | + | python3 get_semaphore_message 0 2 |
- | 0 est le numéro de cam | + | |
+ | ===Arguments=== | ||
+ | * numéro de cam: 0 de / | ||
+ | * numéro du calcul: 2 (1 ou 2 ou 3 sont possibles, 2 semble le meilleur)! | ||
+ | |||
+ | ===Fenêtre de message=== | ||
+ | * Espace: reset du message | ||
+ | * Echap: Quitter | ||
- | 2 est le numéro du calcul, 2 semble le meilleur | + | ===Fenêtre de réglage=== |
- | =====Les sources sur GitHub===== | + | * threshold: entre 1 et 100, commencer entre 20 et 50. |
- | * [[https://github.com/ | + | * pile_size: Taille de la pile FIFO qui sert à valider les lettres, entre 1 et 2 fois le FPS (sur 1060GTX: FPS = 30) |
+ | ===Principe de la construction du message=== | ||
+ | * une lettre est validée si toutes les lettres de la pile sont les mêmes, cela bloque l' | ||
+ | * une nouvelle lettre est possible si il y a au moins un intrus dans la pile, c'est le débloquage. | ||
+ | * Retour à la ligne toutes les 20 lettres | ||
+ | * Reset du message si plus de 100 lettres | ||
+ | |||
+ | =====Nvidia Jetson Nano===== | ||
+ | * Reconnaissance sur une **[[: | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | {{ semaphore_jetson_nano_1.jpg? | ||
+ | Affichage d'un sémaphore virtuel devant la webcam du Jetson Nano | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{ semaphore_jetson_nano_2.jpg? | ||
+ | La reconnaissance sur le jetson Nano | ||
+ | </ | ||
+ | </ | ||
+ | {{ vimeo> | ||
=====Bonus: Réglage d'une webcam en cours d' | =====Bonus: Réglage d'une webcam en cours d' | ||
sudo apt install v4l2ucp | sudo apt install v4l2ucp | ||
v4l2ucp | v4l2ucp | ||
Reporter dans un fichier de configuration. | Reporter dans un fichier de configuration. | ||
- | {{tag> ia sb semaphore}} | + | {{tag> |
yolo_darknet_avec_un_vrai_semaphore.txt · Dernière modification : 2020/12/27 15:09 de serge