Ceci est une ancienne révision du document !
Table des matières
Darknet Letters
font_0_h 0.37 0.31 0.18 0.18
font_0_l 0.07 0.27 0.13 0.13
font_0_t 0.44 0.14 0.1 0.1
font_0_C 0.54 0.49 0.13 0.13
font_0_O 0.27 0.95 0.21 0.21
De l'Intelligence artificielle pour reconnaitre des lettres dans différentes polices, en faire des cauchemars et de la musique en midi.
Les sources sur GitHub
Le jeu letters pour créer les images d'apprentissage
Conversion d'un fichier *.midi en *.json
Le fichier python darknet-letters/letters/midi/analyse_play_midi.py permet de:
- jouer un fichier midi
- convertir des fichier *.midi en *.json
- jouer un fichier *.json
Installation
sudo pip3 install numpy sudo pip3 install opencv-python # Blender 2.79b mais pas 2.80 qui n'a plus de BGE sudo apt install blender sudo pip3 install mido sudo apt install fluidsynth # FluidR3_GM.sf2 sudo apt install fluid-soundfont-gm
Installation de Python: pymultilame
Principe
Les fichiers midi sont très optimisés. La conversion en json permet d'accéder aux instruments, notes, volumes facilement.
Les fichiers *.midi (“.midi”, “mid”, “kar”, “Mid”, “MID”) doivent être copié dans le dossier darknet-letters/letters/midi/music
Les *.json seront créés dans le dossier “json”
Lancement du jeu
Dans le dossier darknet-letters:
play_letters.sh
SPACE pour changer de music 1 Affichage du logo 2 Lancement de music and letters 3 Lancement de get shot 4 Création des json H help Echap Quitter
En 2: Les fichiers du dossier /json seront jouées.
En 3: Pour l'apprentissage, le fichier json/get_shot.json sera utilisé. Il a été construit avec darknet-letters/letters/midi/json_for_get_shot.py
En 4: Les fichiers midi sont traduits en json pour être facilement utilisé en python.
Shot
Les shots seront enregistrés dans le dossier défini dans le fichier darknet-letters/letters/global.ini, ligne 10
shot_dir = "votre/dossier/shot"
Conversion
Tous les shot doivent être floutés et converti en jpg avec le script darknet-letters/darknet/blur_and_convert.py
Définir ligne 81 le chemin vers votre dossier
shot = "votre/dossier/shot"
Création des fichiers train.txt et test.txt
Avec le script darknet-letters/darknet/create_train_test_txt.py Définir ligne 10:
shot_jpg = 'votre/dossier/shot_jpg/'
Controle des fichiers txt de chaque image
Avec le script darknet-letters/letters/control/control.py Définir le chemin de shot ligne 15.
Yolo V3 Darknet
Ressources
Installation de CUDA
Compilation de Darknet
Détection de mes objets lettres
Pre-trained weights
wget -c https://pjreddie.com/media/files/darknet53.conv.74
et coller le fichier dans le dossier letters_0
Fichier *.cfg
Errors with 5 yolo layers
Copie de darknet/cfg/yolov3.cfg dans darknet-letters/darknet/letters_0 et renommer en yolov3_letters.cfg, faire les modifications suivantes:
change line 8 and 9 to shot size = 704 change line batch to batch=64 change line subdivisions to subdivisions=64 change line max_batches to (classes*2000), soit 800 000 change line steps to 80% and 90% of max_batches, f.e. steps=640000,720000 change line classes=80 to your number of objects in each of 3 [yolo]-layers: Line 610 Line 696 Line 783 classes=400 change [filters=255] to filters=(classes + 5)x3 in the 3 [convolutional] before each [yolo] layer Line 603 Line 689 Line 776 filters = (classes + 5)x3 = (400 + 5) * 3 = 1215 Distinction main gauche main droite ligne 17 flip = 0
train.txt test.txt
Les fichiers train.txt et test.txt doivent être collés dans letters_0
Apprentissage
Ou Training appelé train (non pas de locomotive à vapeur!)
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} ./darknet detector train letters_0/obj.data letters_0/yolov3-letters.cfg letters_0/darknet53.conv.74 -map
Test
Coller, dans le dossier compilé de darknet, le dossier letters_0
./darknet detector test letters_0/obj.data letters_0/yolov3_letters.cfg letters_0/backup/yolov3_letters_3000.weights letters_0/shot_0.jpg