Table des matières

Yolo Darknet avec un vrai sémaphore

C'est quoi un sémaphore ?

chappe.jpeg

Reconnaissance d'un vrai sémaphore avec YOLO Darknet

Ce sémaphore est une image virtuelle !

Suite et fin

De Yolo Darknet sur un portable Optimus

Un sémaphore a été construit dans le monde réel avec des pièces réalisées sur Imprimante 3D. Ce projet crée ce même sémaphore dans le Blender Game Engine donc dans un monde virtuel dans lequel je suis dieu tout puissant. Ce sémaphore est parfait. Cela permet d'obtenir 60 000 images pour l'apprentissage et le test de l'intelligence de Yolo Darknet V3. Le BGE permet de faire varier les éclairage et leur couleurs, de le faire bouger et donner du random sur les angles des bras.

Par contre, le BGE ne permet une sortie d'image qu'en png. Il faut les convertir en jpg et les flouter en convolutive.

Les sources sur GitHub

Installation

Voir

Blender 2.79b mais pas 2.80 qui n'a plus de BGE. Sur Xubuntu 18.04:

sudo apt-get install blender

Fabrication des images

Avec le lanceur create_shot.sh

Important: Ne pas déplacer ou agrandir la fenêtre de Blender pendant que les images défilent.

Contrôle de la pertinence des fichiers txt

Avec le script control.py du dossier control, en modifiant les chemins.

Conversion en jpg

Avec convert_png_to_jpg.py, en modifiant les chemins.

Ajout d'un flou convolutionnel

Avec blur_jpg.py, en modifiant les chemins.

Le flou est important (0 à 5), enregistrées en jpg 90%. Des images parfaites semble ne pas convenir pour l'apprentissage.

Apprentissage

cfg

Relire tout le readme pour bien configurer en particulier:

Apprentissage

Adapter les chemins !

./darknet partial blend/calcul_1_9000_jpg_90_small_var.cfg yolov3-tiny.weights yolov3-tiny.conv.15 15
./darknet detector train blend/obj.data blend/calcul_1_9000_jpg_90_small_var.cfg  yolov3-tiny.conv.15 -map

3 calcul

Calcul 1 sur 1060 GTX

Calcul 2 sur 1060 GTX

Suite du calcul 1, en repartant à 12000, et avec 54 000 itérations.

Calcul 3 sur 765 GTX

Comparaison

result.pdf

Reconnaissance dans le monde réel

La partie reconnaissance est dans le dossier semaphore_blend_yolo/darknet

Une webcam regarde le sémaphore. Cette webcam ne peut-être que:

Rappel des pages pour l'installation sur xubuntu amd64

Mise à jour des sources

git reset --hard origin/master

Copier le fichier libdarknet.so des sources compilées de darknet dans semaphore_blend_yolo/darknet .

Exécution de la reconnaissance

Dans le dossier semaphore_blend_yolo/darknet

python3 get_semaphore_message 0 2 

Arguments

Fenêtre de message

Fenêtre de réglage

Principe de la construction du message

Nvidia Jetson Nano


Affichage d'un sémaphore virtuel devant la webcam du Jetson Nano


La reconnaissance sur le jetson Nano

Bonus: Réglage d'une webcam en cours d'utilisation par un programme

sudo apt install v4l2ucp
v4l2ucp

Reporter dans un fichier de configuration.