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
et un succès très honorable avec peu d'images

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
  • Valable aussi pour un Desktop avec une carte graphique Nvidia
  • Sur Ubuntu, il est possible d'avoir le driver Nvidia en permanence. Sur Debian, bbswitch permet de passer de la carte Intel à Nvidia.

Tester ce tuto sur Debian sans 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

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

Application sur le sémaphore

Voir la page YOLO sans carte graphique pour la construction des images et des fichiers train.txt et test.txt

darknet53.conv.74

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

cfg/obj.data

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

cfg/tiny-yolo.cfg

Line 2: batch=24
Line 3: set subdivisions=8
Line 4: width=416
Line 5: height=416
Line 114: filters=160
Line 120: classes=1

test.txt et train.txt sont à coller dans le dossier darknet
Les chemins dans ces fichiers sont absolus !

Créer un fichier obj.names:

a
space
b
c
d

etc .....

x
y
z

Apprentissage

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

Le calcul crée des fichiers de poids dans le dossier darknet/backup:
yolov3-tiny_1000.weights … yolov3-tiny_2000.weights … yolov3-tiny_3000.weights

Test

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

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


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

64 000 images 704x704

Essai 1

Apprentissage

3 jours entiers de calcul ! 15 fichiers de poids

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

Test

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
./darknet detector test cfg/obj.data cfg/tiny-yolo.cfg backup/yolov3-tiny_15000.weights une-image.jpg

Plus grand, plus gros, plus puissant

Yolo Darknet sur un gros centre de calcul avec 50000 images plus grandes.

Laptop

  • Intel® Core™ i7-Intel® Core™ i7-4702MQ CPU @ 2.20GHz × 84702MQ CPU @ 2.20GHz × 8
  • Memory Device
    • Total Width: 64 bits
    • Size: 8192 MB
    • Type: DDR3
    • Speed: 1600 MHz
    • Configured Clock Speed: 1600 MHz
  • Vitesse maximale du processeur en MHz : 3200,0000
  • Vitesse minimale du processeur en MHz : 800,0000
  • Ram 7,7 Gio
  • NVIDIA Corporation GK106M GeForce GTX 765M
    • Core
      • Architecture: Kepler
      • CUDA Cores 768
      • Clock Freq (MHz) 850 + Boost
    • Memory
      • Memory Clock (MHz) 2000
      • Standard Memory Configuration GDDR5
      • Memory Interface Width 128 bit
    • Memory Bandwidth (GB/sec)64.0
    • Date de présentation: 30.05.2013
yolo_darknet_sur_un_portable_optimus.1554283433.txt.gz · Dernière modification : 2019/04/03 09:23 de serge