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/09 06:01] – 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 80% centeralign> | + | |
+ | <WRAP half column> | ||
+ | <WRAP center round box 95% centeralign> | ||
// | // | ||
</ | </ | ||
- | {{ :2019_05: | + | {{ media_03: |
+ | 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. |
- | {{ : | + | Ce projet crée ce même sémaphore dans le Blender Game Engine donc dans un monde virtuel dans lequel je suis dieu tout puissant. Ce sémaphore est parfait. |
+ | Cela permet d' | ||
+ | Le BGE permet de faire varier les éclairage et leur couleurs, de le faire bouger et donner du random sur les angles des bras. | ||
+ | |||
+ | Par contre, le BGE ne permet une sortie d' | ||
=====Les sources sur GitHub===== | =====Les sources sur GitHub===== | ||
- | * [[https:// | + | |
+ | =====Installation===== | ||
+ | Voir | ||
+ | * [[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: | ||
+ | sudo apt-get install blender | ||
+ | =====Fabrication des images===== | ||
+ | Avec le lanceur create_shot.sh | ||
+ | |||
+ | Important: Ne pas déplacer ou agrandir la fenêtre de Blender pendant que les | ||
+ | images défilent. | ||
+ | |||
+ | ===Contrôle de la pertinence des fichiers txt=== | ||
+ | Avec le script control.py du dossier control, en modifiant les chemins. | ||
+ | |||
+ | ===Conversion en jpg=== | ||
+ | Avec convert_png_to_jpg.py, | ||
+ | |||
+ | ===Ajout d'un flou convolutionnel=== | ||
+ | Avec blur_jpg.py, | ||
+ | |||
+ | Le flou est important (0 à 5), enregistrées en jpg 90%. Des images parfaites semble ne pas convenir pour l' | ||
+ | |||
+ | =====Apprentissage===== | ||
+ | ====cfg==== | ||
+ | Relire tout le readme pour bien configurer en particulier: | ||
+ | * for training for both small and large objects use modified models: **yolov3-tiny_3l.cfg** soit [[https:// | ||
+ | * If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/ | ||
+ | |||
+ | ====Apprentissage==== | ||
+ | Adapter les chemins ! | ||
+ | ./darknet partial blend/ | ||
+ | ./darknet detector train blend/ | ||
+ | |||
+ | ====3 calcul==== | ||
+ | ===Calcul 1 sur 1060 GTX=== | ||
+ | * **jpg 90, faible variation d' | ||
+ | * 9 000 itérations | ||
+ | {{ media_03: | ||
+ | * Détails des résultats: [[: | ||
+ | |||
+ | ===Calcul 2 sur 1060 GTX=== | ||
+ | Suite du calcul 1, en repartant à 12000, et avec 54 000 itérations. | ||
+ | {{ media_03: | ||
+ | * Détails des résultats: [[: | ||
+ | |||
+ | ===Calcul 3 sur 765 GTX=== | ||
+ | * **jpg 100, forte variation d' | ||
+ | * 12 000 itérations sur carte 765 GTX et subdivision=32 pour palier à la trop faible RAM du GPU. | ||
+ | {{ media_03: | ||
+ | * Détails des résultats: [[: | ||
+ | |||
+ | |||
+ | ====Comparaison==== | ||
+ | {{ media_03: | ||
+ | {{media_03: | ||
+ | =====Reconnaissance dans le monde réel===== | ||
+ | La partie reconnaissance est dans le dossier [[https:// | ||
+ | |||
+ | Une webcam regarde le sémaphore. Cette webcam ne peut-être que: | ||
+ | * **Microsoft HD5000** ça m’attriste cette pub ! | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====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/ | ||
+ | |||
+ | Copier le fichier libdarknet.so des sources compilées de darknet dans semaphore_blend_yolo/ | ||
+ | |||
+ | ====Exécution de la reconnaissance==== | ||
+ | Dans le dossier semaphore_blend_yolo/ | ||
+ | python3 get_semaphore_message 0 2 | ||
+ | |||
+ | ===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 | ||
+ | |||
+ | ===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) | ||
+ | |||
+ | ===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> | ||
+ | {{ 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 | ||
+ | </ | ||
+ | </ | ||
- | {{tag> ia sb semaphore}} | + | {{ vimeo> |
+ | =====Bonus: Réglage d'une webcam en cours d' | ||
+ | sudo apt install v4l2ucp | ||
+ | v4l2ucp | ||
+ | Reporter dans un fichier de configuration. | ||
+ | {{tag> | ||
yolo_darknet_avec_un_vrai_semaphore.txt · Dernière modification : 2020/12/27 15:09 de serge