Outils pour utilisateurs

Outils du site


yolo_avec_mes_propres_images

Ceci est une ancienne révision du document !


Yolo Darknet Préparation de mes propres images

Création du set d'apprentissage

Nos images sont des images du sémaphore

Nous allons créer 27 classes des 27 lettres possibles.

Les sources sur GitHub

Création de 27 images pour 27 classes d'objets avec un canal alpha

Avec Blender et par un homo-sapiens Taille 40×40 Images en violet sur alpha, avec un sémaphore qui occupe toute l'image. Exemple pour le a: a Les images sorties de Blender n'ont pas de canal alpha: passage dans Gimp pour faire un couleur (blanc) vers alpha. Il ne doit donc pas y avoir de blanc (ou de gris) dans la couleur du sémaphore ! Puis les images sont retaillées pour contenir au plus près les sémaphores.

1.000 images créées avec OpenCV

Images: 416×416

En insérant une des images ci-dessus sur un shot d'une video, avec variation taille position flou du sémaphore,

et en créant un fichier image.txt pour chaque image.png dans le même dossier, exemple:

shot_680_n.txt pour shot_680_n.png

Pour chaque fichier *.txt

<object-class> <x> <y> <width> <height>

Avec:

<object-class> - entier de 0 à 26
<x> <y> <width> <height> valeurs relatives de 0 à 1

320 * 320 avec un a

centre du a: absolute_x = 130, absolute_y = 140 absolute_height = 200 hauteur du a absolute_width = 200 largeur du a

0 (130/320)=0,40625 (140/320)=0,43752 (200/320)=0,625 (200/320)=0,625

ligne à écrire dans a.txt

0 0,40625 0,43752 0,625 0,625

Fichier de la liste des images avec leur chemin, training et test

Installation de pymultilame

Je l'ai amélioré et renommer create_train_test_txt.py Il faut adapter current_dir à votre cas, c'est le dossier où sont toutes les images, sans sous-dossiers.

create_train_test_txt.py
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
 
# Installation de pymultilame
# sudo pip3 install -e git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame
from pymultilame import MyTools
 
mt = MyTools()
 
# Dossier des images et txt, à adapter à votre cas
current_dir = '/media/data/3D/projets/mon_semaphore/mon_semaphore/shot'
 
# liste de toutes les images
files = mt.get_all_files_list(current_dir, '.jpg')
 
test_percentage = 10
index_test = int(len(files)/test_percentage)
 
counter = 0
test, train = "", ""
 
for f in files:  
    if counter < index_test:
        test += f + "\n"
    else:
        train += f + "\n"
    counter += 1
 
# Ecriture dans les fichiers
mt.write_data_in_file(test, "test.txt", "w")
mt.write_data_in_file(train, "train.txt", "w")
 
print("Done.")

Exemple

YOLO Darknet

Quel YOLO ?

Implementations possibles

Implémentations de AlexeyAB/darknet

Avec les images, les fichiers test.txt et train.txt, nous passons sur YOLO, avec ou sans GPU.

yolo_avec_mes_propres_images.1553755828.txt.gz · Dernière modification : 2019/03/28 06:50 de serge