Outils pour utilisateurs

Outils du site


jeu_du_semaphore_dans_le_blender_game_engine

Ceci est une ancienne révision du document !


Jeu du sémaphore dans le Blender Game Engine

Une image pour l'apprentissage

Une image à décrypter
avec l'étape suivante Pseudo images réelles du sémaphore

Le projet sur Github

  • 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

Création d'un fichier de poids définissant l'IA

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.

Ne jamais déplacer ou réduire la fenêtre de Blender pendant la création des images !

2 - Retaillage et flou

Les images sont en noir et blanc, 320×320. Il faut les retailler en 40×40 et les flouter, puis les compresser.

Le Blender Game Engine 2.79 permet un affichage mini de 320×280. Les images du jeu sont donc en 320×320. Un script python3 avec opencv resize les images à 40×40 et 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

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:

  • training = 30000
  • testing = 30000
  • training = 35000
  • testing = 35000
  • training = 60000
  • testing = 10000

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

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.

Reconnaissance du sémaphore avec des pseudo images créées dans Blender

C'est l'étape suivante: Pseudo images réelles du sémaphore

Ressources sur les sémaphores et le télégraphe de Chappe

Un alphabet possible

Notre alphabet

j = &

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • espace
jeu_du_semaphore_dans_le_blender_game_engine.1550737407.txt.gz · Dernière modification : 2019/02/21 08:23 de serge