Outils pour utilisateurs

Outils du site


jeu_du_semaphore_dans_le_blender_game_engine

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
jeu_du_semaphore_dans_le_blender_game_engine [2019/01/16 17:21] sergejeu_du_semaphore_dans_le_blender_game_engine [2020/12/27 15:06] (Version actuelle) serge
Ligne 1: Ligne 1:
 ====== Jeu du sémaphore dans le Blender Game Engine ====== ====== Jeu du sémaphore dans le Blender Game Engine ======
  
-{{ shot_98_e.png?400 |}}+<WRAP center round box 60% centeralign> 
 +**{{tagpage>ia|Intelligence Artificielle}}**     **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fjeu_du_semaphore_dans_le_blender_game_engine|English Version]]** 
 +</WRAP> 
 +<WRAP center round box 60% centeralign> 
 +**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]** 
 +</WRAP>
  
-<WRAP center round box 40% centeralign> +<WRAP center round box 60% centeralign> 
-**Les pages sur {{tagpage>semaphore|Sémaphores}} et sur le {{tagpage>bge|Blender Game Engine}}**+**{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** 
 +</WRAP> 
 +<WRAP center round box 60% centeralign> 
 +C'est quoi un sémaphore ? 
 +{{ youtube>F3sY6_fOx2I?medium }} 
 +</WRAP> 
 +{{ media_05:chappe.jpeg?400 }} 
 +\\ \\ \\ 
 +<WRAP center round box 60% centeralign> 
 +Des images pour l'apprentissage\\ 
 +{{media_01:shot_0_a.png?100|}} 
 +{{media_01:shot_1_.png?100|}} 
 +{{media_01:shot_2_b.png?100|}}
 </WRAP> </WRAP>
  
-Ce jeu va permettre de générer 60000 images avec une multitude de positions du sémaphore, pour créer une **{{tagpage>ia|Intelligence Artificielle}}** capable de reconnaître les signes. 
  
-===== Principe ===== 
-Ce jeu lit des textes en latin, sans caractères accentués ni spéciaux. Chaque lettre est affiché dans le jeu, puis une capture de la fenêtre est enregistrée. 
-En arrière plan, défile le documentaire **NOTHING TO HIDE** pour avoir un fond très varié: 
-{{ youtube>djbwzEIv7gE?medium }} 
  
-La fréquence de défilement est de 10 frames par seconde. + 
-===== Les souces sur Github =====+===== Le projet sur Github =====
   * **[[https://github.com/sergeLabo/semaphore|Sémaphore]]**   * **[[https://github.com/sergeLabo/semaphore|Sémaphore]]**
 +  * **Réalisé sur Debian 10 Buster**, ne fonctionne pas sur Win$
 +  * **python 3.7**
  
-===== Ressources =====+ 
 +====Installation==== 
 +  * Blender 2.79b 
 +  * opencv 
 +  * numpy 
 +  * mon module perso pymultilame 
 +  
 + 
 +  sudo apt install python3-pip 
 +  sudo pip3 install numpy 
 +  sudo pip3 install opencv-python 
 +  sudo apt install blender 
 +Mon module personnel: 
 +  sudo pip3 install -e git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame 
 +Mise à jour: 
 +  sudo pip3 install --upgrade git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame 
 +   
 +====Excécution==== 
 +Lancer ./semaphore.sh 
 + 
 +et faire les 5 étapes, 3 heures et demi pour 1, et un certain temps pour les autres .... 
 + 
 +Bug connu: le treminal se ferme à la fin de la création des shots avec Blender ! Relancer le terminal et continuer avec 2 
 +===== L'intelligence du sémaphore ===== 
 +<WRAP group> 
 +<WRAP third column> 
 +Sortie Blender 320x320\\ 
 +{{media_01:shot_0_a_320.png?100|}} 
 +{{media_01:shot_1_space_320.png?100|}} 
 +{{media_01:shot_2_b_320.png?100|}} 
 +</WRAP> 
 +<WRAP third column> 
 +40x40, floue en gris\\ 
 +{{media_01:shot_0_a_gray.png?100|}} 
 +{{media_01:shot_1_space_gray.png?100|}} 
 +{{media_01:shot_2_b_gray.png?100|}} 
 +</WRAP> 
 +<WRAP third column> 
 +40x40 en Noir et Blanc\\ 
 +{{media_01:shot_0_a.png?100|}} 
 +{{media_01:shot_1_.png?100|}} 
 +{{media_01:shot_2_b.png?100|}} 
 +</WRAP> 
 +</WRAP> 
 + 
 +====1 - Création de 70 000 images==== 
 +Dans un jeu Blender, 70 000 images sont créées, 60 0000 pour entraîner l'IA, 10 000 pour la tester. 
 +Ce jeu lit soit un texte en latin de Cicéron, sans caractères accentués ni spéciaux, soit l'alphabet avec un espace. Il y a donc 27 caractères différents.  
 + 
 +Chaque lettre est affiché dans le jeu, puis une capture de la fenêtre est enregistrée. La fréquence est maxi de 6 fps, en allant plus vite l'image enregistrée n'a pas toujours la bonne lettre. Il faut plus de 3h pour récupérer ces images. 
 + 
 +<wrap em> 
 +<wrap hi> 
 +Ne jamais déplacer ou réduire la fenêtre de Blender pendant la création des images ! 
 +</wrap> 
 +</wrap> 
 +====2 - Retaillage et flou==== 
 +Le Blender Game Engine 2.79b permet un affichage mini de 320x280. Les images du jeu sont donc en 320x320. Un script python3 avec opencv resize les images à 40x40, les floutent. 
 + 
 + 
 +====3 - Compression==== 
 +Pour avoir une excécution plus rapide pour les étapes suivantes. 
 +====4 - Création du fichier de poids de l'IA==== 
 +  * **[[l_intelligence_du_semaphore|L'intelligence du sémaphore]]** 
 + 
 +====5 - Test de l'efficacité de l'IA==== 
 +Le résultat s'exprime par un pourcentage. L'objectif est d'avoir au moins 95% (de bonne reconnaissance). 
 + 
 +====6 - Modification de la configuration==== 
 +Choisir au moins 60000 images au total, avec: 
 +<WRAP group> 
 +<WRAP third column> 
 +  * training = 30000 
 +  * testing  = 30000 
 +</WRAP> 
 +<WRAP third column> 
 +  * training = 35000 
 +  * testing  = 35000  
 +</WRAP> 
 +<WRAP third column> 
 +  * training = 60000 
 +  * testing  = 10000  
 +</WRAP> 
 +</WRAP> 
 + 
 +Les meilleurs résultats sont obtenu avec: 
 +  * gray = 0 
 +  * blur = 6 
 +  * learningrate = 0.022 
 +====Recherche de la meilleure configuration possible==== 
 +**Les hyperparamètres sont tous les paramètres à optimiser : learningrate, nombre de couches, différentes méthodes d'initialisation aléatoire des poids ** 
 + 
 +  * **[[https://supportivy.com/algorithmes-doptimisation-dhyperparametre-en-python/|Algorithmes d'optimisation d'hyperparamètre en Python]]** 
 +  * http://www.datacorner.fr/tuninghpml/ 
 +  * [[https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV|GridSearchCV]] de [[https://scikit-learn.org/stable/index.html|scikit-learn.org]] 
 +  * [[https://github.com/scikit-learn/scikit-learn|scikit-learn]] sur github.com 
 +Le fichier best_config_search.py fait ce boulot en autodidacte, mais c'est un bricolage réservé aux spélialistes qui se sont plongés dans tout le projet. 
 + 
 +====Molière==== 
 +**Le chemin est long du projet à la chose.** 
 + 
 + 
 + 
 + 
 +===== Ressources sur les sémaphores et le télégraphe de Chappe =====
   * **[[https://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9graphe_Chappe|Télégraphe Chappe sur Wikipedia]]**   * **[[https://fr.wikipedia.org/wiki/T%C3%A9l%C3%A9graphe_Chappe|Télégraphe Chappe sur Wikipedia]]**
   * **[[http://visite.artsetmetiers.free.fr/chappe.html|Chappe au Musée des Arts et Métiers]]**   * **[[http://visite.artsetmetiers.free.fr/chappe.html|Chappe au Musée des Arts et Métiers]]**
  
-===== Un alphabet possible ====+==== Un alphabet possible ==== 
-====Ressources==== +{{media_12:semaphore_am.png?200|}} {{media_05:code_a_i.jpg?200|}} {{media_05:code_j_z.jpg?200|}}
-Tiré du lien ci-dessus +
- +
-{{semaphore_am.png?300|}} {{code_a_i.jpg?300|}} {{code_j_z.jpg?300|}}+
  
 ==== Notre alphabet ==== ==== Notre alphabet ====
 +**j = &**
 <WRAP group> <WRAP group>
 <WRAP quarter column> <WRAP quarter column>
-  * **a** {{shot_0_a.png?100|}} +  * **a** {{media_03:shot_0_a.png?30|}} 
-  * **b** {{shot_1_b.png?100|}} +  * **b** {{media_03:shot_1_b.png?30|}} 
-  * **c** {{shot_2_c.png?100|}} +  * **c** {{media_03:shot_2_c.png?30|}} 
-  * **d** {{shot_3_d.png?100|}} +  * **d** {{media_03:shot_3_d.png?30|}} 
-  * **e** {{shot_4_e.png?100|}} +  * **e** {{media_03:shot_4_e.png?30|}} 
-  * **f** {{shot_5_f.png?100|}} +  * **f** {{media_03:shot_5_f.png?30|}} 
-  * **g** {{shot_6_g.png?100|}}+  * **g** {{media_03:shot_6_g.png?30|}}
 </WRAP> </WRAP>
  
 <WRAP quarter column> <WRAP quarter column>
-  * **h** {{shot_7_h.png?100|}} +  * **h** {{media_03:shot_7_h.png?30|}} 
-  * **i** {{shot_8_i.png?100|}} +  * **i** {{media_03:shot_8_i.png?30|}} 
-  * **j** {{shot_9_j.png?100|}} +  * **j** {{media_03:shot_9_j.png?30|}} 
-  * **k** {{shot_10_k.png?100|}} +  * **k** {{media_03:shot_10_k.png?30|}} 
-  * **l** {{shot_11_l.png?100|}} +  * **l** {{media_03:shot_11_l.png?30|}} 
-  * **m** {{shot_12_m.png?100|}} +  * **m** {{media_03:shot_12_m.png?30|}} 
-  * **n** {{shot_13_n.png?100|}}+  * **n** {{media_03:shot_13_n.png?30|}}
 </WRAP> </WRAP>
  
 <WRAP quarter column> <WRAP quarter column>
-  * **o** {{shot_14_o.png?100|}} +  * **o** {{media_03:shot_14_o.png?30|}} 
-  * **p** {{shot_15_p.png?100|}} +  * **p** {{media_03:shot_15_p.png?30|}} 
-  * **q** {{shot_16_q.png?100|}} +  * **q** {{media_03:shot_16_q.png?30|}} 
-  * **r** {{shot_17_r.png?100|}} +  * **r** {{media_03:shot_17_r.png?30|}} 
-  * **s** {{shot_18_s.png?100|}} +  * **s** {{media_03:shot_18_s.png?30|}} 
-  * **t** {{shot_19_t.png?100|}} +  * **t** {{media_03:shot_19_t.png?30|}} 
-  * **u** {{shot_20_u.png?100|}}+  * **u** {{media_03:shot_20_u.png?30|}}
 </WRAP> </WRAP>
  
 <WRAP quarter column> <WRAP quarter column>
-  * **v** {{shot_21_v.png?100|}} +  * **v** {{media_03:shot_21_v.png?30|}} 
-  * **w** {{shot_22_w.png?100|}} +  * **w** {{media_03:shot_22_w.png?30|}} 
-  * **x** {{shot_23_x.png?100|}} +  * **x** {{media_03:shot_23_x.png?30|}} 
-  * **y** {{shot_24_y.png?100|}} +  * **y** {{media_03:shot_24_y.png?30|}} 
-  * **z** {{shot_25_z.png?100|}} +  * **z** {{media_03:shot_25_z.png?30|}} 
-  * **espace** {{shot_26_ .png?100|}}+  * **espace** {{media_03:shot_26_.png?30|}}
 </WRAP> </WRAP>
- 
 </WRAP> </WRAP>
 +
 +{{tag> bge ia sb semaphore }}
  
  
-{{tag>bge sb ia realisations_logicielles semaphore}} 
  
jeu_du_semaphore_dans_le_blender_game_engine.1547659306.txt.gz · Dernière modification : 2019/01/16 17:21 de serge