Outils pour utilisateurs

Outils du site


yolo_avec_mes_propres_images

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
yolo_avec_mes_propres_images [2019/03/20 16:29] – [Création de 27 images pour 27 classes d'objets avec un canal alpha] sergeyolo_avec_mes_propres_images [2020/12/27 15:08] (Version actuelle) serge
Ligne 1: Ligne 1:
-====== YOLO with my own dataset ====== +====== Yolo Darknet Préparation de mes propres images ====== 
-<WRAP center round box 80% centeralign> +<WRAP center round box 60% centeralign> 
-**{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** ....  **{{tagpage>ia|Intelligence Artificielle}}**+**{{tagpage>ia|Intelligence Artificielle}}**     **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fyolo_avec_mes_propres_images|English Version]]** 
 +</WRAP> 
 +<WRAP center round box 60% centeralign> 
 +**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]**
 </WRAP> </WRAP>
  
-<WRAP center round box 80% centeralign> +<WRAP center round box 60% centeralign> 
-**Cette page teste YOLO de [[computer_vision_and_pattern_recognition_segmentation_d_image#mask_r-cnn_vs_yolo_vs_deeplab_xception|MASK R-CNN vs YOLO vs Deeplab Xception]]**+**{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}**
 </WRAP> </WRAP>
 +
 +<WRAP center round box 60% centeralign>
 +C'est quoi un sémaphore ?
 +{{ youtube>F3sY6_fOx2I?medium }}
 +{{ media_05:chappe.jpeg?400 }}
 +
 +//**[[:computer_vision_and_pattern_recognition_segmentation_d_image#mask_r-cnn_vs_yolo_vs_deeplab_xception|MASK R-CNN vs YOLO vs Deeplab Xception]]**//\\
 +</WRAP>
 +
 +
 +
  
 =====Création du set d'apprentissage===== =====Création du set d'apprentissage=====
 +Nos images sont des images du **[[:jeu_du_semaphore_dans_le_blender_game_engine|sémaphore]]**
 ====Les sources sur GitHub==== ====Les sources sur GitHub====
 +  * **[[https://github.com/sergeLabo/semaphore_cv_yolo|semaphore_cv_yolo]]**
 ====Création de 27 images pour 27 classes d'objets avec un canal alpha===== ====Création de 27 images pour 27 classes d'objets avec un canal alpha=====
-Avec Blender et par un homo-sapiens +  * Avec Blender et par un homo-sapiens 
-Taille 40x40  +  Taille 320x320  
-Images en violet sur alpha, avec un sémaphore qui occupe toute l'image.+  Images en violet sur alpha, avec un sémaphore qui occupe toute l'image. 
 Exemple pour le a: Exemple pour le a:
-{{ :2019_03:a_violet.png?200 |a}}+{{ media_01:a_violet.png?200 |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 ! 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. Puis les images sont retaillées pour contenir au plus près les sémaphores.
  
-====70.000 images créées avec OpenCV==== +====60 000 images 640x640 créées avec OpenCV==== 
-Images: 1024x1024 +===Images=== 
- +En insérant une des images ci-dessus sur un shot d'une video, avec variation taille position couleur flou du sémaphore.Une image: 
-En insérant une des images ci-dessus sur un shot d'une video, avec variation taille position flou du sémaphore, +{{ media_01:shot_0_a.jpg?400 |}} 
- +===Fichier txt localisant le ou les objets dans l'image=== 
-et en créant un fichier image.txt pour chaque image.png dans le même dossier, exemple: +Créer un fichier image.txt pour chaque image.png dans le même dossier, exemple: 
-  shot_68000_n.txt pour shot_68000_n.png+  shot_680_n.txt pour shot_680_n.png
 Pour chaque fichier *.txt Pour chaque fichier *.txt
   <object-class> <x> <y> <width> <height>   <object-class> <x> <y> <width> <height>
Ligne 43: Ligne 61:
   0 0,40625 0,43752 0,625 0,625   0 0,40625 0,43752 0,625 0,625
      
-=====Fichier de la liste des images avec leur chemin, training et test===== 
-===Installation de pymultilame=== 
  
-====== 
-  * **[[https://medium.com/@manivannan_data/how-to-train-yolov2-to-detect-custom-objects-9010df784f36|Détection avec YOLO v2]]** Ce tuto parle d'un script python: process.py 
  
-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. 
  
-<file python 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.") 
-</file> 
- 
-===Exemple=== 
-{{ :2019_03:yolo_0_a.png?400 |}} 
- 
-=====YOLO Darknet avec mes propres images===== 
-Nos images sont des images du **[[jeu_du_semaphore_dans_le_blender_game_engine|sémaphore]]** 
- 
-Nous allons créer 27 classes des 27 lettres possibles.  
- 
-====Quel YOLO ?==== 
-  * **[[https://pjreddie.com/darknet/|Le projet YOLO]]** 
-  * **[[https://github.com/pjreddie/darknet|pjreddie/darknet]]** les sources de YOLO darknet 
-  * **[[https://github.com/AlexeyAB/darknet|AlexeyAB/darknet forked from pjreddie/darknet]]** pour linux et avec un readme très riche 
-  * **[[https://medium.com/@manivannan_data/how-to-train-yolov3-to-detect-custom-objects-ccbcafeb13d2|Détection avec YOLO v3]]** 
-  * **[[https://medium.com/@manivannan_data/how-to-train-yolov2-to-detect-custom-objects-9010df784f36|Détection avec YOLO v2]]** pour construire le dataset. L'auteur colle son logo dans des images du monde réel. 
- 
-====Implementations possibles==== 
-  * **[[https://pjreddie.com/darknet/|Darknet]]** Implémentation "officielle" 
-  * **[[https://github.com/AlexeyAB/darknet|AlexeyAB/darknet]]** Fork du précédent, bien pour sa doc 
-  * **[[https://github.com/thtrieu/darkflow/|Darkflow]]** Mal documenté !! 
- 
-=====Implémentations de AlexeyAB/darknet===== 
-Avec les images, les fichiers test.txt et train.txt, nous passons sur **YOLO**, avec ou sans GPU. 
- 
-  * **[[yolo_v3_sur_un_portable_optimus|Mon YOLO pour un Prix Nobel]] sur portable Optimus** 
-  * **[[yolo_sans_carte_graphique|YOLO sans carte graphique]] Tous les calculs se font sur le GPU**, un certain temps de 1 jour pour 900 images 416x416 !! 
- 
-===== DARKFLOW Perdu marche pas et mal expliqué ===== 
-==== Avec ou sans GPU==== 
-  * **[[https://medium.com/@monocasero/object-detection-with-yolo-implementations-and-how-to-use-them-5da928356035|Détection d'objet avec YOLO]]** implémentations et comment les utiliser avec ses propres données: [[https://github.com/thtrieu/darkflow/|darkflow sur GitHub]] 
-====Dépendances==== 
-Sur debian 10 buster 
-Requis: 
-  * python 3.7 
-  * tensorflow 1.0 
-  * opencv 3 
- 
-  sudo pip3 install tensorflow 
-  sudo pip3 install numpy 
-  sudo pip3 install opencv 
-  sudo pip3 install  pytest 
-   
-Version: 
-  * tensorflow 1.13.1 
-  * opencv 4.0.0 
  
-====Bazar ==== +=====Les étapes suivantes===== 
-  * Chemins relatifs depuis le dossier root des sources +  * **[[yolo_sans_carte_graphique|Yolo Darknet sans carte graphique]]*
-  Dans le fichier flow, corriger python en python3 +  * **[[yolo_darknet_sur_un_portable_optimus|Yolo Darknet sur un portable Optimus]]**
-    #! /usr/bin/env python3 +
-  Les labels doivent être dans un format "annotation" !! +
-  * **Pour la suite, rien n'est bien expliqué !!** +
-  * structure des dossiers, des fichiers ...+
  
-{{tag> ia sb semaphore }}+{{tag> ia sb semaphore yolo_darknet }}
yolo_avec_mes_propres_images.1553099341.txt.gz · Dernière modification : 2019/03/20 16:29 de serge