Outils pour utilisateurs

Outils du site


yolo_darknet_sur_un_portable_optimus

Ceci est une ancienne révision du document !


Yolo Darknet sur un portable Optimus

Installation de YOLO Darknet sur un portable avec Optimus
Test avec des images du sémaphore
Valable aussi pour un Desktop avec une carte graphique Nvidia

chappe.jpeg

Considération générales

  • Xubuntu 18.04 CUDA 10.0 CUDNN 7.4.1.5 Ne pas utiliser Ubuntu Mate, il y a un conflit de dépendances entre CUDA et Mate Desktop
  • Sur Ubuntu, il est possible d'avoir le driver Nvidia en permanence. Sur Debian, bbswitch permet d'utiliser la carte Intel à Nvidia en lançant un programme avec optirun.

Ressources et documentation de YOLO Darknet

Darknet

Installation de CUDA 10.0 sur Xubuntu 18.04

Installation du driver Nvidia

Avec le Gestionnaire de pilotes supplémentaires

Installation

Le tout va télécharger 3 à 4 Go !

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update
sudo apt-get install --no-install-recommends cuda-10-0
sudo apt-get install --no-install-recommends libcudnn7=7.4.1.5-1+cuda10.0  libcudnn7-dev=7.4.1.5-1+cuda10.0
sudo apt-get install cmake clang python3-pip libopencv-dev libopencv-core-dev libopencv-highgui-dev libopencv-flann-dev libopencv-photo-dev libopencv-video-dev libopencv-dev
sudo pip3 install opencv-python==3.4.5.20

Installation de YOLO Darknet

Dans les sources décompressée de darknet:

Avec GPU avec CUDA avec OPENCV

Recommencer avec une copie des sources originale de darknet

Options de Makefile

GPU=1
CUDNN=1
CUDNN_HALF=0
OPENCV=1
AVX=0
OPENMP=0
LIBSO=0
ZED_CAMERA=0

Compil

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
# Vérification du bon fonctionnement de CUDA
nvidia-smi
nvcc -V
# Pour 8 coeurs
make -j8

L'excécutable est dans le dossier root de darknet.

Préparation

Voir la page Yolo avec mes propres images pour la construction de 60 000 images 640×640 et des fichiers *.txt correspondants.

darknet53.conv.74

wget https://pjreddie.com/media/files/darknet53.conv.74

cfg/obj.data
Ce fichier définit les chemins vers les fichiers de configuration. Par exemple, tout mettre dans un dossiers, ici “axe”

classes= 27
train  = axe/train.txt  
valid  = axe/test.txt  
names = axe/obj.names  
backup = axe/backup

Créer un fichier obj.names:

a
space
b
c
d
etc .....
x
y
z

train.txt et test.txt

Les créer en collant le script create_train_test_txt.py dans le dossier axe. Puis:

  • installer pymultilame
  • adapter le chemin vers le dossier root des images dans le script

python3 create_train_test_txt.py

Le fichier *cfg

Pour avoir Yolo v3 avec:

  • Des objets main droite différent des objets main gauche
  • Des petits et des grands objets
  • vérifier avec le readme de Alexei

Training

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
./darknet detector train axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg darknet53.conv.74 -map

Test

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
./darknet detector test axe/obj.data  axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-tiny_30000.weights axe/predictions_space.jpg

Le résultat est dans l'image predictions.jpg du dossier axe.


shot_36_space.jpg: Predicted in 58.519000 milli-seconds:
space: 40%

Test sur une video et enregistrement du résultat

./darknet detector demo axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-tiny_30000.weights axe/semaphore.avi -i 0 -thresh 0.25 -output axe/res_semaphore.avi

Test avec webcam

Pour webcam=0

./darknet detector demo axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-tiny_30000.weights -thresh 0.25 -c 0 
yolo_darknet_sur_un_portable_optimus.1554821394.txt.gz · Dernière modification : 2019/04/09 14:49 de serge