Darknet Letters Tous les essais



Le projet Darknet Letters

darknet-letters sur Github

  • Ces recherches s’arrêtent sur un score de 59% de bonnes notes et 34% de mauvaises notes.
  • La modulation de la vélocité avec les majuscules à été supprimée.

Les essais depuis data_11

Le fichier ods

6 mois de calcul ont coûté entre 100€ et 200€. La carte graphique avait coûté 200€. Les 16 Go de RAM 35€.

Le fichier de poids est: yolov3-tiny_3l_22_8000.weights

La vidéo en haut de page est réalisée avec cette configuration.

Courbe d'apprentissage:

Efficacité mesurée avec 6 musiques midi et benchmark.py

good bad

Conclusion

Le fichier yolov3-tiny_3l_22_8000.weights est considéré comme le meilleur des meilleurs.

En intelligence artificielle, on parle de surapprentissage (le terme anglais est overfitting) quand un modèle a trop appris les particularités de chacun des exemples fournis en exemple. Il présente alors un taux de succès très important sur les données d’entraînement (pouvant atteindre jusqu’à 100%), au détriment de ses performances générales réelles.



Essai 02

  • fond video
  • flou de 3 à 7
  • letters_scale = 1.09
  • 30 000 images
  • 90 000 itérations
  • Shadeless pas de variation de couleurs et éclairage

Résultat:

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

  • 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.
  • yolo_v3.cfg
  • letters_scale = 1.01
  • plage_x = 4.5
  • 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

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.

Essai 04

  • Idem Essai 03 mais fond video
  • Relance de 50 000 itérations supplémentaires.

Reconnaissance médiocre ! La musique résultante n'est pas reconnaissable.

Essai 05

Modification par rapport à 4 et 3

  • fond video
  • flou: 3 à 7
  • taille 416
  • 50 000 images
  • yolo_v3_05.cfg
  • letters_scale = 1.08
  • plage_x = 4.5
  • plage_y = 4.5
  • size_min = 0.6
  • size_max = 0.9
  • variation de couleurs et éclairage avec un Sun

Très mauvaise reconnaissance !

For training for both small and large objects use modified models:

Le fichier tiny.cfg est paramétré pour 80 objets, et la doc dit qu'il est bien optimisé: Je cite pjreddie.com It's only 28 MB but more importantly, it's only 8×1010 floating point operations. The original Alexnet is 2.3*1012. Darknet is 2.9 times faster and it's small and it's 4% more accurate.

Même image que Essai 05, mais avec yolov3-tiny_06.cfg du Sémaphore, adapté pour 380 objets et images de 416×416.

Le fichier yolov3-tiny_06_best.weights fait 40,1 Mo, l'apprentissage est 2 fois plus rapide que yolov3.cfg, soit 2.7 jours

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'analyse des % de reconnaissance calculés à la fin de l'apprentissage, montre que ce sont les lettres avec la couleur gris clair qui sont les plus mal reconnues.

  • size_min = 0.9
  • size_max = 1.2
  • shot_size = 416
  • blur_mini = 3
  • 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
  • les lettres sont plus grandes
  • le sun plus fort

Résultat:

Efficacité

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

Certaines lettres se ressemblent beaucoup et sont mal reconnues.

Suppression des majuscules: le volume sera défini à 127 pour toutes les notes, il ne reste plus que 190 objets ! 10 polices avec les lettres de b à t.

  • Moins de lettres par shot en corrigeant le script json_get_shot.py
  • Taille des lettres plus grandes
  • 38 000 images avec 10 lettres par image, les 10 b, 10 c, … , 10 t
  • 30 000 itérations
  • fond = “video”
  • shot_size = 480
  • plage_x = 4.5
  • plage_y = 4.5
  • size_min = 1.0
  • size_max = 1.4
  • blur_mini = 0
  • blur_maxi = 6
  • letters_scale = 1.07
  • sun_energy_min = 3
  • sun_energy_max = 4
  • sun_color_min = 0.8
  • sun_color_max = 1.0

Les images sont à shot_size = 416 –> ????

Cette courbe est parfaite, et pourtant c'est tout faux !!!!!!!!!

idem essai 08 mais shot_size = 480 pour la config et les images:

20 000 itérations ne suffisent pas !

Avec shaders

Sans shaders

Les couleurs sont plus denses.

Apprentissage

  • total = 38000
  • fond = “video”
  • shot_size = 416
  • plage_x = 4.5
  • plage_y = 4.5
  • size_min = 0.5
  • size_max = 2.0
  • letters_scale = 1.09


De belles courbes d'apprentissage !

Reconnaissance de musiques

  • Fond noir, nuage RGB foncé, video de ciel: c'est quif quif. On reconnaît certaines musiques et d'autres pas, voire aucune notes n'est jouée !
  • Flou: 0 et 3
  • Test avec yolov3-tiny.cfg
  • Test avec yolov3_5l.cfg
  • Test avec yolov3-tiny_3l.cfg
  • Grosse erreur perso: dans shot_xxx.txt de l'image shot_xxx.png: nom de l'objet au lieu du numéro de l'objet !
  • fond noir
  • fond noir remplacé par un nuage gris
  • nuage gris remplacé par une video de ciel !
  • Message dans le terminal: “Processus arrêté.” Achat de DDR3 1600 mHz 16 Go pour remplacer les 4 Go existants.
  • 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'image et donc les superpositions.
  • Reprise des 400 images des lettres pour les cadrer serrées (20 heures de boulot) !
  • Ne pas déclarer des objets qui ne sont jamais dans les images !
  • SWAP de 64 Go au lieu de 8 Go
  • darknet_letters_essais.txt
  • Dernière modification: 2019/12/14 12:51
  • par serge