Jeu du sémaphore dans le Blender Game Engine

C'est quoi un sémaphore ?

chappe.jpeg


Des images pour l'apprentissage

Une image à décrypter

  • 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

Sortie Blender 320×320

40×40, floue en gris

40×40 en Noir et Blanc

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

Le Blender Game Engine 2.79b 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, 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.

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.txt
  • Dernière modification: 2019/04/27 14:29
  • par serge