Outils pour utilisateurs

Outils du site


yolo_darknet_avec_un_vrai_semaphore

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
y:yolo_darknet_avec_un_vrai_semaphore [2019/05/28 10:40] – [Préparation] sergeyolo_darknet_avec_un_vrai_semaphore [2020/02/04 16:43] – ↷ Liens modifiés en raison d'un déplacement. serge
Ligne 3: Ligne 3:
 **{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** ....  **{{tagpage>ia|Intelligence Artificielle}}** **{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** ....  **{{tagpage>ia|Intelligence Artificielle}}**
 </WRAP> </WRAP>
-<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>F3sY6_fOx2I?medium }} {{ youtube>F3sY6_fOx2I?medium }}
 {{ :chappe.jpeg?400 }} {{ :chappe.jpeg?400 }}
 </WRAP> </WRAP>
-\\ \\  +</WRAP> 
-<WRAP center round box 60% centeralign>+ 
 +<WRAP half column> 
 +<WRAP center round box 95% centeralign>
 //**Reconnaissance d'un vrai sémaphore avec YOLO Darknet**//\\ //**Reconnaissance d'un vrai sémaphore avec YOLO Darknet**//\\
 </WRAP> </WRAP>
-<WRAP center box 60% centeralign>{{ :2019_05:shot_106_y.png?600 |}} +{{ media_03:shot_106_y.png?400 |}} 
-Ce sémaphore est une image virtuelle, mais c'est copie conforme du vrai !+Ce sémaphore est une image virtuelle ! 
 +</WRAP>
 </WRAP> </WRAP>
- 
  
 =====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'image qu'en png. Il faut les convertir en jpg et les flouter en convolutive. Par contre, le BGE ne permet une sortie d'image qu'en png. Il faut les convertir en jpg et les flouter en convolutive.
  
 +=====Les sources sur GitHub=====
 +  * **[[https://github.com/sergeLabo/semaphore_blend_yolo|semaphore_blend_yolo]]**
 =====Installation===== =====Installation=====
 Voir Voir
-  * [[y:yolo_darknet_sur_un_portable_optimus#installation_de_cuda_100_sur_xubuntu_1804|Cuda]] +  * [[yolo_darknet_sur_un_portable_optimus#installation_de_cuda_100_sur_xubuntu_1804|Cuda]] 
-  * [[y:yolo_darknet_sur_un_portable_optimus#installation_de_yolo_darknet|Darknet]]+  * [[yolo_darknet_sur_un_portable_optimus#installation_de_yolo_darknet|Darknet]]
  
 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: **yolov3-tiny_3l.cfg** soit [[https://github.com/sergeLabo/semaphore_blend_yolo/blob/master/darknet/calcul_1/calcul_1_9000_jpg_90_small_var.cfg|calcul_1_9000_jpg_90_small_var.cfg]]
   * If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/right-turn on road signs, ...) then for disabling flip data augmentation - add flip=0   * If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/right-turn on road signs, ...) then for disabling flip data augmentation - add flip=0
  
 ====Apprentissage==== ====Apprentissage====
-   export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} +Adapter les chemins ! 
-  ./darknet detector train blend/obj.data blend/yolov3-obj_3l_blend.cfg darknet53.conv.74 -map+  ./darknet partial blend/calcul_1_9000_jpg_90_small_var.cfg yolov3-tiny.weights yolov3-tiny.conv.15 15 
 +  ./darknet detector train blend/obj.data blend/calcul_1_9000_jpg_90_small_var.cfg  yolov3-tiny.conv.15 -map
      
 ====3 calcul==== ====3 calcul====
Ligne 65: Ligne 73:
   * **jpg 90, faible variation d'angle, faible variation de couleur et lumière**   * **jpg 90, faible variation d'angle, faible variation de couleur et lumière**
   * 9 000 itérations   * 9 000 itérations
-{{ :y:chart_avec_blur_sub_16_9000.png?200 |}}+{{ media_03:chart_avec_blur_sub_16_9000.png?200 |}}
   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_1|Calcul 1]]   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_1|Calcul 1]]
  
 ===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:chart_54000.png?200 |}}+{{ media_03:chart_54000.png?200 |}}
   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_2|Calcul 2]]   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_2|Calcul 2]]
  
Ligne 76: Ligne 84:
   * **jpg 100, forte variation d'angle, forte variation de couleur et lumière, grand mât**   * **jpg 100, forte variation d'angle, forte variation de couleur et lumière, grand mât**
   * 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:chart_big_var_12000.png?200 |}}+{{ media_03:chart_big_var_12000.png?200 |}}
   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_3|Calcul 3]]   * Détails des résultats: [[:yolo_darknet_avec_un_vrai_semaphore_resultat_des_calculs#calcul_3|Calcul 3]]
  
  
 ====Comparaison==== ====Comparaison====
-{{ :y:result.pdf |}} +{{ media_03:result.pdf |}} 
-{{:y:result.png?300|}}+{{media_03:result.png?300|}}
 =====Reconnaissance dans le monde réel===== =====Reconnaissance dans le monde réel=====
 La partie reconnaissance est dans le dossier [[https://github.com/sergeLabo/semaphore_blend_yolo/tree/master/darknet|semaphore_blend_yolo/darknet]] La partie reconnaissance est dans le dossier [[https://github.com/sergeLabo/semaphore_blend_yolo/tree/master/darknet|semaphore_blend_yolo/darknet]]
Ligne 89: Ligne 97:
   * **Microsoft HD5000** ça m’attriste cette pub !   * **Microsoft HD5000** ça m’attriste cette pub !
  
-====Sur la tour 1060 GTX====+ 
 + 
 + 
 +====Rappel des pages pour l'installation sur xubuntu amd64==== 
 +  * Installation de cuda, cudnn, opencv, .... [[yolo_darknet_sur_un_portable_optimus#installation_de_cuda_100_sur_xubuntu_1804]] 
 +  * Installation de darnet [[yolo_darknet_sur_un_portable_optimus#installation_de_yolo_darknet]] 
 + 
 +====Mise à jour des sources====
   * Dans le dossier /data/projets/semaphore_blend_yolo   * Dans le dossier /data/projets/semaphore_blend_yolo
  
   git reset --hard origin/master   git reset --hard origin/master
-\\  
-  * Lancer avec le lanceur sur le bureau 
-  * Régler la webcam 
-  * C'est tout ! 
-====Installation si elle n'a pas été faite pour l'apprentissage==== 
-  * Installation de cuda, cudnn, opencv, .... [[:y/yolo_darknet_sur_un_portable_optimus#installation_de_cuda_100_sur_xubuntu_1804]] 
-  * Installation de darnet [[:y/yolo_darknet_sur_un_portable_optimus#installation_de_yolo_darknet]] 
-====Préparation==== 
-Copier le fichier libdarknet.so des sources compilées de darknet dans semaphore_blend_yolo/darknet .  
  
-**Dans les sources sur GitHub, le fichier de 1060GTX est déjà présent.**+Copier le fichier libdarknet.so des sources compilées de darknet dans semaphore_blend_yolo/darknet .
  
 ====Exécution de la reconnaissance==== ====Exécution de la reconnaissance====
 Dans le dossier semaphore_blend_yolo/darknet Dans le dossier semaphore_blend_yolo/darknet
-  export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} 
   python3 get_semaphore_message 0 2    python3 get_semaphore_message 0 2 
-   
-ou dans le dossier semaphore_blend_yolo/darknet, modifier semaphore.sh 
-puis 
-  ./semaphore.sh 
      
 ===Arguments=== ===Arguments===
   * numéro de cam: 0 de /dev/video0   * 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)!
 +  
 ===Fenêtre de message=== ===Fenêtre de message===
   * Espace: reset du message   * Espace: reset du message
Ligne 126: Ligne 127:
   * pile_size: Taille de la pile FIFO qui sert à valider les lettres, entre 1 et 2 fois le FPS (sur 1060GTX: FPS = 30)   * 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'ajout de lettre
 +  * 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 **[[:nvidia_jetson_nano|Nvidia Jetson Nano]]**
  
-=====Les sources sur GitHub===== +<WRAP group> 
-  * [[https://github.com/sergeLabo/semaphore_blend_yolo|semaphore_blend_yolo]] +<WRAP half column> 
 +{{ semaphore_jetson_nano_1.jpg?400 |}}\\ 
 +Affichage d'un sémaphore virtuel devant la webcam du Jetson Nano 
 +</WRAP> 
 +<WRAP half column> 
 +{{ semaphore_jetson_nano_2.jpg?400 |}}\\ 
 +La reconnaissance sur le jetson Nano 
 +</WRAP> 
 +</WRAP>
  
 +{{ vimeo>344757901?large }}
 =====Bonus: Réglage d'une webcam en cours d'utilisation par un programme===== =====Bonus: Réglage d'une webcam en cours d'utilisation par un programme=====
   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> ia sb semaphore bge yolo_darknet deap_learning}}
  
yolo_darknet_avec_un_vrai_semaphore.txt · Dernière modification : 2020/12/27 15:09 de serge