darknet_letters
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
darknet_letters [2019/10/24 09:27] – [Essai 07] serge | darknet_letters [2020/12/27 15:10] – serge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Darknet Letters ====== | ====== Darknet Letters ====== | ||
<WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
- | **{{tagpage> | + | **{{tagpage> |
+ | </ | ||
+ | <WRAP center round box 60% centeralign> | ||
+ | **[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]** | ||
+ | </ | ||
+ | |||
+ | <WRAP center round box 60% centeralign> | ||
+ | **{{tagpage> | ||
</ | </ | ||
<WRAP center round box 80% centeralign> | <WRAP center round box 80% centeralign> | ||
- | {{::2019_08: | + | {{media_02: |
Le fond noir ne convient pas, il faut une video ! | Le fond noir ne convient pas, il faut une video ! | ||
</ | </ | ||
- | <WRAP center round box 60% centeralign> | + | <WRAP center round box 60%> |
- | **De l' | + | |
+ | * **Créer des images correspondant à une musique midi** | ||
+ | * **Lecture des images par l' | ||
</ | </ | ||
+ | {{ vimeo> | ||
+ | \\ \\ | ||
+ | **[[darknet_letters_essais|Darknet Letters Tous les essais]]** | ||
+ | |||
+ | **[[https:// | ||
===== YOLO Darknet V3 ===== | ===== YOLO Darknet V3 ===== | ||
+ | ====Conclusion finale==== | ||
+ | * Le nombre de paramètres à optimiser est important. Pour pouvoir faire beaucoup de simulation, les calculs doivent être rapide, il est nécessaire d' | ||
+ | * Pour faire mieux, une GTX 1060 ne suffit pas. Il en faudrait au minimum 2, et mieux encore RTX 2080 Ti 11GB à 1100€ | ||
+ | * Cela permettrait de tester les modèles plus lourds et d' | ||
==== Conclusion des différents apprentissages ==== | ==== Conclusion des différents apprentissages ==== | ||
<WRAP group> | <WRAP group> | ||
<WRAP half column> | <WRAP half column> | ||
- | * **380 objets** | + | * **Suppression des majuscules pour diminuer le nombre d' |
+ | * **Le modèle yolov3.cfg est trop lourd, le yolov3-tiny_3l.cfg suffit** | ||
* **Images de 416x416** | * **Images de 416x416** | ||
- | * **5.5 jours d' | + | * **1 à 2 jours d' |
- | * **Ne pas mettre de fond noir** | + | * **Fond video pour l' |
- | * **Les zones de définitions des objets dans les images doivent être un peu large** | + | * **Pas de flou dans les images ** |
- | * **Mettre un peu de flou dans les images ** | + | |
</ | </ | ||
<WRAP half column> | <WRAP half column> | ||
Ligne 38: | Ligne 56: | ||
**Créer et testé sur Debian Buster 10** | **Créer et testé sur Debian Buster 10** | ||
- | {{:2019_08: | + | {{media_02: |
- | {{:: | + | {{media_03: |
- | {{:2019_08: | + | {{media_02: |
====Conversion d'un fichier *.midi en *.json==== | ====Conversion d'un fichier *.midi en *.json==== | ||
Ligne 97: | Ligne 115: | ||
<code txt> | <code txt> | ||
- | | + | 1 - Lancement de letters |
- | | + | |
SPACE pour changer de musique | SPACE pour changer de musique | ||
- | 3 - Fabrication des shot pour l'IA | + | 2 - Fabrication des shot pour l'IA |
- | 4 - Conversion en json | + | 3 - Conversion d'une musique en image |
- | | + | |
H - Help | H - Help | ||
R - Reset | R - Reset | ||
Ligne 108: | Ligne 124: | ||
</ | </ | ||
- | En 2: Les fichiers du dossier /json seront jouées. | + | En 1: Les fichiers du dossier /json_60 |
- | En 3: Pour l' | + | En 2: Pour l' |
- | En 4: Les fichiers midi sont traduits en json pour être facilement utilisé en python. Malheureusement, | + | En 3: Crée un jeu d' |
- | + | ||
- | En 5: Crée un jeu d' | + | |
===== Création du set d' | ===== Création du set d' | ||
Ligne 132: | Ligne 146: | ||
Avec le script **./ | Avec le script **./ | ||
- | {{ :: | + | {{ media_03: |
===== Yolo V3 Darknet===== | ===== Yolo V3 Darknet===== | ||
Ligne 138: | Ligne 152: | ||
* **https:// | * **https:// | ||
- | * [[https:// | + | * [[https:// |
==== Installation de CUDA ==== | ==== Installation de CUDA ==== | ||
Ligne 250: | Ligne 264: | ||
Les chemins " | Les chemins " | ||
- | ===Modifications suite à apprentissage finissant sur une erreur=== | + | =====Apprentissage |
- | * Test avec yolov3-tiny.cfg | + | **3 layers** |
- | * Test avec yolov3_5l.cfg | + | ./darknet partial data_09/yolov3-tiny_3l_09.cfg yolov3-tiny.weights data_09/yolov3-tiny.conv.15 15 |
- | * Test avec yolov3-tiny_3l.cfg | + | ./darknet detector train data_09/obj.data data_09/yolov3-tiny_3l_09.cfg data_09/yolov3-tiny.conv.15 -map |
- | * Grosse erreur perso: dans shot_xxx.txt de l' | + | |
- | * fond noir | + | Le fichier yolov3-tiny_3l_xx_best.weights fait 38.1 Mo |
- | * fond noir remplacé par un nuage gris | + | =====Apprentissage avec yolov3-tiny.cfg===== |
- | * nuage gris remplacé par une video de ciel ! | + | **2 layers** |
- | * Message dans le terminal: " | + | ./ |
- | * Diminution des superpositions avec size de 0.6 à 0.9 | + | ./ |
- | * Images avec minuscules seules et images avec majuscules seules pour diminuer le nombre de lettres dans l' | + | |
- | * Reprise des 400 images des lettres pour les cadrer serrées (20 heures de boulot) ! | + | Le fichier yolov3-tiny_12_best.weights fait 38 Mo. Malheureusement, ça plante ! |
- | * Ne pas déclarer des objets qui ne sont jamais dans les images ! | + | =====Tous les essais===== |
- | * SWAP de 64 Go au lieu de 8 Go | + | * **[[darknet_letters_essais|Tous |
- | + | ||
- | ===Essai 02=== | + | |
- | <WRAP group> | + | |
- | <WRAP half column> | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | * Shadeless pas de variation de couleurs et éclairage | + | |
- | </ | + | |
- | Résultat: | + | |
- | {{ :: | + | |
- | <WRAP half column> | + | |
- | </WRAP> | + | |
- | </WRAP> | + | |
- | Pas mal mais trop de lettres ne sont pas reconnues, et certaines avec 2 reconnaissances. La musique résultante est reconnaissable. C'est le meilleurs résultat des essais 02 à 06 | + | |
- | + | ||
- | ===Essai 03=== | + | |
- | <WRAP group> | + | |
- | <WRAP third column> | + | |
- | * fond noir | + | |
- | * pas de flou | + | |
- | * taille 416 | + | |
- | * 50 000 images | + | |
- | * vérification du nombre de lettres: objectif 2000 par lettres, réel 1948 | + | |
- | * changement du json utilisé par créer les shot: minuscules et majuscules séparées et pas de séparation des polices avec des canaux vides. | + | |
- | </WRAP> | + | |
- | <WRAP third column> | + | |
- | * yolo_v3.cfg | + | |
- | * letters_scale = 1.01 | + | |
- | | + | |
- | * plage_y = 4.5 | + | |
- | * size_min = 0.6 | + | |
- | * size_max = 0.9 | + | |
- | * variation de couleurs et éclairage avec un Sun | + | |
- | * début 25/09/2019 à 10h, fin 01/10/2019 à 6h55 | + | |
- | * 50 000 itérations | + | |
- | </ | + | |
- | <WRAP third column> | + | |
- | {{ :chart_03.png?300 |}} | + | |
- | Efficacité 99% mais reconnaît très mal les lettres, et la détection de leur position très très large par rapport au réel. La musique résultante n'est pas reconnaissable. | + | |
- | </WRAP> | + | |
- | </ | + | |
- | + | ||
- | ===Essai 04=== | + | |
- | * Idem Essai 03 mais fond video | + | |
- | * Relance de 50 000 itérations supplémentaires. | + | |
- | <WRAP group> | + | |
- | <WRAP half column> | + | |
- | {{ :: | + | |
- | </ | + | |
- | <WRAP half column> | + | |
- | {{ :: | + | |
- | </ | + | |
- | </ | + | |
- | Reconnaissance médiocre ! La musique résultante n'est pas reconnaissable.\\ | + | |
- | + | ||
- | ===Essai 05=== | + | |
- | <WRAP group> | + | |
- | <WRAP third column> | + | |
- | Modification par rapport à 4 et 3 | + | |
- | * fond video | + | |
- | * flou: 3 à 7 | + | |
- | * taille 416 | + | |
- | * 50 000 images | + | |
- | * yolo_v3_05.cfg | + | |
- | </WRAP> | + | |
- | <WRAP third column> | + | |
- | * letters_scale = 1.08 | + | |
- | * plage_x = 4.5 | + | |
- | | + | |
- | * size_min = 0.6 | + | |
- | * size_max = 0.9 | + | |
- | * variation de couleurs et éclairage avec un Sun | + | |
- | </ | + | |
- | <WRAP third column> | + | |
- | {{ :: | + | |
- | Très mauvaise reconnaissance ! | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | =====yolov3-tiny_3l.cfg===== | + | |
- | * [[https:// | + | |
- | + | ||
- | For training for both small and large objects use modified models: | + | |
- | | + | |
- | + | ||
- | ====Essai 06==== | + | |
- | Le fichier | + | |
- | + | ||
- | Même image que Essai 05, mais avec [[https:// | + | |
- | + | ||
- | Le fichier yolov3-tiny_06_best.weights fait 40,1 Mo, l' | + | |
- | + | ||
- | La reconnaissance est très décevante, le FPS sur HD5000 est de 1.8 au lieu de 0.4, | + | |
- | mais trop de lettres ne sont pas reconnues. | + | |
- | + | ||
- | L' | + | |
- | + | ||
- | {{:: | + | |
- | + | ||
- | ====Essai 07==== | + | |
- | <WRAP group> | + | |
- | <WRAP third column> | + | |
- | * size_min | + | |
- | * size_max | + | |
- | * shot_size = 416 | + | |
- | | + | |
- | * blur_maxi = 7 | + | |
- | * letters_scale = 1.07 | + | |
- | * sun_energy_min = 3 | + | |
- | * sun_energy_min = 4 | + | |
- | * sun_color_min = 0.6 | + | |
- | * sun_color_max = 1.0 | + | |
- | * police 0 en blanc au lieu de gris clair | + | |
- | | + | |
- | | + | |
- | </ | + | |
- | + | ||
- | <WRAP third column> | + | |
- | {{:: | + | |
- | </ | + | |
- | + | ||
- | <WRAP third column> | + | |
- | Résultat: | + | |
- | {{:: | + | |
- | </ | + | |
- | </ | + | |
- | < | + | |
- | name font_0_i 85.00 | + | |
- | name font_0_l 85.79 | + | |
- | name font_2_j 87.91 | + | |
- | name font_2_q 89.78 | + | |
- | name font_2_o 90.16 | + | |
- | name font_2_g 90.20 | + | |
- | name font_0_n 90.22 | + | |
- | name font_1_I 90.57 | + | |
- | name font_1_J 91.31 | + | |
- | name font_2_I 91.33 | + | |
- | name font_0_e 91.56 | + | |
- | </ | + | |
- | ====Essai 08==== | + | |
- | Idem Essai 07 mais: | + | |
- | * Taille des lettres plus grandes | + | |
- | * Moins de lettres par shot en corrigeant le script json_get_shot.py | + | |
- | * 76 000 images avec 10 lettres par image | + | |
- | | + | |
===== Reconversion d' | ===== Reconversion d' | ||
Ligne 432: | Ligne 296: | ||
====Quel fond d' | ====Quel fond d' | ||
<WRAP group> | <WRAP group> | ||
- | < | + | < |
* Nuages | * Nuages | ||
- | {{:: | + | {{media_12: |
</ | </ | ||
- | < | + | < |
* Plasma | * Plasma | ||
- | {{:: | + | {{media_12: |
</ | </ | ||
- | < | + | < |
- | * boney_m | + | * nuage RGB clair |
- | {{:2019_08: | + | {{media_04: |
</ | </ | ||
+ | |||
+ | <WRAP quarter column> | ||
+ | * Très foncé en RGB | ||
+ | {{media_12: | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | =====Bug: Libération de la RAM GPU à la fin d'une détection===== | ||
+ | [[darknet_letters_unload_gpu_ram_in_python_script|Voir la page Darknet Letters unload GPU RAM in python script]] | ||
=====Durée d'un calcul et consommation électrique avec yolov3.cfg===== | =====Durée d'un calcul et consommation électrique avec yolov3.cfg===== | ||
* 50000 itérations de 50 000 images de 416x416 = 6 jours * 24 * 0.2 kW = kwh à 0.17 € le kWh soit 5 € | * 50000 itérations de 50 000 images de 416x416 = 6 jours * 24 * 0.2 kW = kwh à 0.17 € le kWh soit 5 € | ||
+ | **6 mois de calcul = 150 €** | ||
=====Quels matériels pour un apprentissage rapide ?===== | =====Quels matériels pour un apprentissage rapide ?===== | ||
- | * **Quel serait le coût sur un Pentaflops | ||
- | * **Et si La Labomedia achète un Pentaflops ?** | ||
* **[[https:// | * **[[https:// | ||
* **[[https:// | * **[[https:// | ||
Ligne 461: | Ligne 332: | ||
* **[[https:// | * **[[https:// | ||
* **[[https:// | * **[[https:// | ||
+ | * https:// | ||
===Remise spéciale Education=== | ===Remise spéciale Education=== | ||
* **[[https:// | * **[[https:// | ||
+ | |||
+ | ===Pour une startup fortunée=== | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | |||
+ | ===Juin 2020=== | ||
+ | * **[[https:// | ||
+ | |||
+ | * RTX 2060 (6 GB): if you want to explore deep learning in your spare time. 360€ | ||
+ | * RTX 2070 or 2080 (8 GB): if you are serious about deep learning, but your GPU budget is $600-800. Eight GB of VRAM can fit the majority of models. | ||
+ | * RTX 2080 Ti (11 GB): if you are serious about deep learning and your GPU budget is ~$1,200. The RTX 2080 Ti is ~40% faster than the RTX 2080. | ||
+ | * Titan RTX and Quadro RTX 6000 (24 GB): if you are working on SOTA models extensively, | ||
+ | * Quadro RTX 8000 (48 GB): you are investing in the future and might even be lucky enough to research SOTA deep learning in 2020. 5500€ | ||
+ | |||
+ | |||
=====Benchmark===== | =====Benchmark===== | ||
* https:// | * https:// | ||
Ligne 476: | Ligne 364: | ||
**Mais, en ce qui concerne l' | **Mais, en ce qui concerne l' | ||
- | {{tag> ia sb bge}} | + | {{tag> ia sb bge yolo_darknet}} |
darknet_letters.txt · Dernière modification : 2020/12/27 15:11 de serge