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/27 17:08] – [Exécution de la reconnaissance] serge | yolo_darknet_avec_un_vrai_semaphore [2020/12/01 17:43] – ↷ Liens modifiés en raison d'un déplacement. 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> | ||
- | {{ : | + | {{ media_05: |
</ | </ | ||
- | \\ \\ | + | </ |
- | <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: | ||
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:// | ||
Une webcam regarde le sémaphore. Cette webcam ne peut-être que: | Une webcam regarde le sémaphore. Cette webcam ne peut-être que: | ||
- | * Microsoft HD5000 | + | |
- | ====Installation==== | + | |
- | * Installation de cuda, cudnn, opencv, .... [[:y/yolo_darknet_sur_un_portable_optimus# | + | |
- | * Installation de darnet [[:y/yolo_darknet_sur_un_portable_optimus# | + | |
- | ====Préparation==== | + | ====Rappel des pages pour l' |
- | Copier | + | * Installation de cuda, cudnn, opencv, .... [[yolo_darknet_sur_un_portable_optimus# |
- | dans le dossier darknet, | + | * 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==== | ||
Dans le dossier semaphore_blend_yolo/ | Dans le dossier semaphore_blend_yolo/ | ||
- | | + | python3 get_semaphore_message 0 2 |
- | | + | |
- | + | ||
- | ou dans le dossier semaphore_blend_yolo/ | + | |
- | puis | + | |
- | ./ | + | |
| | ||
===Arguments=== | ===Arguments=== | ||
- | * numéro de cam: 0 | + | * numéro de cam: 0 de /dev/video0 |
* numéro du calcul: 2 (1 ou 2 ou 3 sont possibles, 2 semble le meilleur)! | * numéro du calcul: 2 (1 ou 2 ou 3 sont possibles, 2 semble le meilleur)! | ||
- | | + | |
- | * hier_thresh: 0.5 (entre 0 et 1) | + | ===Fenêtre de message=== |
- | * nms: 0.45 (entre 0 et 1) | + | * Espace: reset du message |
+ | * Echap: Quitter | ||
+ | ===Fenêtre de réglage=== | ||
+ | * threshold: entre 1 et 100, commencer entre 20 et 50. | ||
+ | * pile_size: Taille de la pile FIFO qui sert à valider les lettres, entre 1 et 2 fois le FPS (sur 1060GTX: FPS = 30) | ||
- | =====Les sources sur GitHub===== | + | ===Principe de la construction du message=== |
- | * [[https:// | + | * 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> | ||
+ | {{ media_12: | ||
+ | Affichage d'un sémaphore virtuel devant la webcam du Jetson Nano | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | {{ media_12: | ||
+ | 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