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

Prochaine révision
Révision précédente
jeu_du_semaphore_dans_le_blender_game_engine [2019/01/14 18:35] – créée 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 ======
  
 +<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 60% centeralign>
 +**{{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>
  
-===== 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**
 +
 +
 +====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]]**
 +  * **[[http://visite.artsetmetiers.free.fr/chappe.html|Chappe au Musée des Arts et Métiers]]**
 +
 +==== Un alphabet possible ====
 +{{media_12:semaphore_am.png?200|}} {{media_05:code_a_i.jpg?200|}} {{media_05:code_j_z.jpg?200|}}
 +
 +==== Notre alphabet ====
 +**j = &**
 +<WRAP group>
 +<WRAP quarter column>
 +  * **a** {{media_03:shot_0_a.png?30|}}
 +  * **b** {{media_03:shot_1_b.png?30|}}
 +  * **c** {{media_03:shot_2_c.png?30|}}
 +  * **d** {{media_03:shot_3_d.png?30|}}
 +  * **e** {{media_03:shot_4_e.png?30|}}
 +  * **f** {{media_03:shot_5_f.png?30|}}
 +  * **g** {{media_03:shot_6_g.png?30|}}
 +</WRAP>
 +
 +<WRAP quarter column>
 +  * **h** {{media_03:shot_7_h.png?30|}}
 +  * **i** {{media_03:shot_8_i.png?30|}}
 +  * **j** {{media_03:shot_9_j.png?30|}}
 +  * **k** {{media_03:shot_10_k.png?30|}}
 +  * **l** {{media_03:shot_11_l.png?30|}}
 +  * **m** {{media_03:shot_12_m.png?30|}}
 +  * **n** {{media_03:shot_13_n.png?30|}}
 +</WRAP>
 +
 +<WRAP quarter column>
 +  * **o** {{media_03:shot_14_o.png?30|}}
 +  * **p** {{media_03:shot_15_p.png?30|}}
 +  * **q** {{media_03:shot_16_q.png?30|}}
 +  * **r** {{media_03:shot_17_r.png?30|}}
 +  * **s** {{media_03:shot_18_s.png?30|}}
 +  * **t** {{media_03:shot_19_t.png?30|}}
 +  * **u** {{media_03:shot_20_u.png?30|}}
 +</WRAP>
 +
 +<WRAP quarter column>
 +  * **v** {{media_03:shot_21_v.png?30|}}
 +  * **w** {{media_03:shot_22_w.png?30|}}
 +  * **x** {{media_03:shot_23_x.png?30|}}
 +  * **y** {{media_03:shot_24_y.png?30|}}
 +  * **z** {{media_03:shot_25_z.png?30|}}
 +  * **espace** {{media_03:shot_26_.png?30|}}
 +</WRAP>
 +</WRAP>
 +
 +{{tag> bge ia sb semaphore }}
 +
 +
 +
jeu_du_semaphore_dans_le_blender_game_engine.1547490928.txt.gz · Dernière modification : 2019/01/14 18:35 de serge