Outils pour utilisateurs

Outils du site


yolo_darknet_sur_un_portable_optimus

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
Dernière révisionLes deux révisions suivantes
yolo_darknet_sur_un_portable_optimus [2019/04/15 10:03] – [Préparation] sergeyolo_darknet_sur_un_portable_optimus [2020/10/29 13:53] – ↷ Liens modifiés en raison d'un déplacement. serge
Ligne 3: Ligne 3:
 **{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** ....  **{{tagpage>ia|Intelligence Artificielle}}** **{{tagpage>semaphore|Sémaphores}}**  ....  **{{tagpage>bge|Blender Game Engine}}** ....  **{{tagpage>ia|Intelligence Artificielle}}**
 </WRAP> </WRAP>
 +<WRAP center round box 60% centeralign>
 C'est quoi un sémaphore ? C'est quoi un sémaphore ?
 {{ youtube>F3sY6_fOx2I?medium }} {{ youtube>F3sY6_fOx2I?medium }}
-{{ chappe.jpeg?400 }}+{{ media_05:chappe.jpeg?400 }} 
 +</WRAP> 
 +\\ \\ 
 <WRAP center round box 80% centeralign> <WRAP center round box 80% centeralign>
 //**Installation de YOLO Darknet sur un portable avec Optimus**//\\ //**Installation de YOLO Darknet sur un portable avec Optimus**//\\
Ligne 17: Ligne 19:
  
 =====Considération générales===== =====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+  * **Xubuntu 18.04 CUDA 10.0 CUDNN 7.4.1.5 **  
 +  * **Ne pas utiliser le bureau Mate**, il y a un conflit de dépendances entre CUDA et Mate Desktop
   * **Sur Ubuntu, l'installation du driver propriétaire est facile, et il est possible d'avoir le driver Nvidia en permanence.** Sur Debian, bbswitch permet d'utiliser la carte Nvidia en lançant un programme avec optirun. Ce serait bien d'essayer cette installation sur Debian !    * **Sur Ubuntu, l'installation du driver propriétaire est facile, et il est possible d'avoir le driver Nvidia en permanence.** Sur Debian, bbswitch permet d'utiliser la carte Nvidia en lançant un programme avec optirun. Ce serait bien d'essayer cette installation sur Debian ! 
 +  * **Ce tuto a été écrit avec des tests réalisés sur un portable avec une carte 765GTX et sur une tour avec une carte 1060GTX**
 =====Ressources et documentation de YOLO Darknet===== =====Ressources et documentation de YOLO Darknet=====
 ===Darknet=== ===Darknet===
Ligne 27: Ligne 31:
 ====Installation du driver Nvidia==== ====Installation du driver Nvidia====
 Avec le Gestionnaire de pilotes supplémentaires Avec le Gestionnaire de pilotes supplémentaires
-====Installation====+====Installation de cuda,cudnn, opencv-python====
 Le tout va télécharger 3 à 4 Go ! Le tout va télécharger 3 à 4 Go !
 <code> <code>
Ligne 39: Ligne 43:
 sudo apt-get install --no-install-recommends cuda-10-0 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 --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 apt-get install cmake clang python3-pip libopencv-dev libopencv-core-dev libopencv-highgui-dev libopencv-flann-dev libopencv-photo-dev libopencv-video-dev 
-sudo pip3 install opencv-python==3.4.5.20+sudo pip3 install opencv-python==3.4.5.20 scikit-image
 </code> </code>
 +
 +Après installation, ne pas faire de mises à jour système: ça casserai libcudnn7=7.4.1.5-1+cuda10.0
 +
 +Pour faire les mises à jour, il faudrait d'abord bloquer les versions de cuda et cudnn, y compris les dev.
 +
 +====Installation complémentaire pour mes projets====
 +Installation de mon module personnel: [[:pymultilame|Python: pymultilame]]
 +
 +
 +
 =====Installation de YOLO Darknet===== =====Installation de YOLO Darknet=====
 Dans les [[https://github.com/AlexeyAB/darknet|sources]] décompressée de darknet: Dans les [[https://github.com/AlexeyAB/darknet|sources]] décompressée de darknet:
 +
 +Pour ajouter la libération de la RAM GPU entre 2 détections dans un script python,
 +[[Darknet Letters unload GPU RAM in python script|Darknet Letters unload GPU RAM in python script]]
 ====Options de Makefile avec GPU avec CUDA avec OPENCV==== ====Options de Makefile avec GPU avec CUDA avec OPENCV====
 <code> <code>
Ligne 52: Ligne 69:
 AVX=0 AVX=0
 OPENMP=0 OPENMP=0
-LIBSO=0+LIBSO=1
 ZED_CAMERA=0 ZED_CAMERA=0
 </code> </code>
Ligne 65: Ligne 82:
 </code> </code>
 L'excécutable est dans le dossier root de darknet. L'excécutable est dans le dossier root de darknet.
 +
 +Le fichier libdarknet.so de 1060GTX: {{ media_07:libdarknet.so.zip |}}
 =====Préparation===== =====Préparation=====
 Voir la page **[[yolo_avec_mes_propres_images|Yolo avec mes propres images]]** pour la construction de **60 000 images 640x640** et des fichiers *.txt correspondants. Voir la page **[[yolo_avec_mes_propres_images|Yolo avec mes propres images]]** pour la construction de **60 000 images 640x640** et des fichiers *.txt correspondants.
Ligne 72: Ligne 91:
 Les axes blanc sont probablement important pour la reconnaissance. Les axes blanc sont probablement important pour la reconnaissance.
  
-{{:2019_04:shot_53_z.jpg?200|}} +{{media_01:shot_53_z.jpg?200|}} 
-{{:2019_04:shot_455_w.jpg?200|}} +{{media_01:shot_455_w.jpg?200|}} 
-{{:2019_04:shot_894_c.jpg?200|}} +{{media_01:shot_894_c.jpg?200|}} 
-{{:2019_04:shot_1916_z.jpg?200|}} +{{media_01:shot_1916_z.jpg?200|}} 
-{{:2019_04:shot_59248_j.jpg?200|}} +{{media_01:shot_59248_j.jpg?200|}}
- +
-Les commandes pour exécuter .darknet ont comme argument: +
-  axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg darknet53.conv.74+
      
 **darknet53.conv.74** **darknet53.conv.74**
Ligne 117: Ligne 133:
 ===train.txt et test.txt=== ===train.txt et test.txt===
 Les créer en collant le script **[[https://github.com/sergeLabo/semaphore_cv_yolo/blob/master/get_opencv_shot/create_train_test_txt.py|create_train_test_txt.py]]** dans le dossier axe. Puis: Les créer en collant le script **[[https://github.com/sergeLabo/semaphore_cv_yolo/blob/master/get_opencv_shot/create_train_test_txt.py|create_train_test_txt.py]]** dans le dossier axe. Puis:
-  * installer [[pymultilame|pymultilame]]+  * installer [[:pymultilame|pymultilame]]
   * adapter le chemin vers le dossier root des images dans le script   * adapter le chemin vers le dossier root des images dans le script
   python3 create_train_test_txt.py   python3 create_train_test_txt.py
Ligne 130: Ligne 146:
  
 =====Training===== =====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   ./darknet detector train axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg darknet53.conv.74 -map
  
-{{ :2019_04:chart.png?300 |}}+{{ media_01:chart.png?300 |}}
  
 ===Message final=== ===Message final===
Ligne 170: Ligne 185:
  for thresh = 0.25, precision = 0.97, recall = 0.95, F1-score = 0.96   for thresh = 0.25, precision = 0.97, recall = 0.95, F1-score = 0.96 
  for thresh = 0.25, TP = 5699, FP = 188, FN = 301, average IoU = 87.69 %   for thresh = 0.25, TP = 5699, FP = 188, FN = 301, average IoU = 87.69 % 
- 
  IoU threshold = 50 %, used Area-Under-Curve for each unique Recall   IoU threshold = 50 %, used Area-Under-Curve for each unique Recall 
  mean average precision (mAP@0.50) = 0.982366, or 98.24 %   mean average precision (mAP@0.50) = 0.982366, or 98.24 % 
-Total Detection Time: 78.000000 Seconds 
- 
-Set -points flag: 
- `-points 101` for MS COCO  
- `-points 11` for PascalVOC 2007 (uncomment `difficult` in voc.data)  
- `-points 0` (AUC) for ImageNet, PascalVOC 2010-2012, your custom dataset 
- 
  mean_average_precision (mAP@0.5) = 0.982366   mean_average_precision (mAP@0.5) = 0.982366 
-Saving weights to axe/backup/yolov3-obj_3l_labo_axe_54000.weights 
-Saving weights to axe/backup/yolov3-obj_3l_labo_axe_last.weights 
-Saving weights to axe/backup/yolov3-obj_3l_labo_axe_final.weights 
 </code> </code>
- 
-===Le fichier final obtenu=== 
-  * **{{ :2019_04:yolov3-labo_axe_final.weights.tar.gz |}}** 
  
 =====Testing===== =====Testing=====
 ====Test sur une image==== ====Test sur une image====
-  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-obj_3l_labo_axe_final.weights axe/shot_36_space.jpg
-  ./darknet detector test axe/obj.data  axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-tiny_30000.weights axe/shot_36_space.jpg+
  
 Le résultat est dans l'image predictions.jpg du dossier axe.  Le résultat est dans l'image predictions.jpg du dossier axe. 
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-{{:2019_03:predictions_b_h.jpg?400|}}+{{media_01:predictions_b_h.jpg?400|}}
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
-{{:2019_03:predictions_space.jpg?400|}}\\+{{media_01:predictions_space.jpg?400|}}\\
 shot_36_space.jpg: Predicted in 58.519000 milli-seconds:\\ shot_36_space.jpg: Predicted in 58.519000 milli-seconds:\\
 space: 40% space: 40%
Ligne 207: Ligne 207:
      
 ====Test sur une video et enregistrement du résultat==== ====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 +  ./darknet detector demo axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-obj_3l_labo_axe_final.weights axe/semaphore.avi -i 0 -thresh 0.10 -out_filename axe/res_semaphore.avi
-{{ :2019_04:video_1_single.png?400 |}}+
  
-====Test avec webcam====+{{ vimeo>330471526?medium }} 
 +====Test avec webcam et enregistrement du résultat====
 Pour webcam=0 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 +  ./darknet detector demo axe/obj.data axe/yolov3-obj_3l_labo_axe.cfg axe/backup/yolov3-obj_3l_labo_axe_final.weights -thresh 0.25 -c 0  
 +{{ vimeo>330723924?medium }}
  
 +=====Avec un vrai sémaphore=====
 +  * **[[yolo_darknet_avec_un_vrai_semaphore|Yolo Darknet avec un vrai sémaphore]]**
 +  * **[[https://github.com/sergeLabo/semaphore_blend_yolo|et les sources correspondantes sur GitHub]]**
  
 +{{tag> ia sb semaphore yolo_darknet }}
  
  
-{{tag> ia sb semaphore yolo_darknet}} 
yolo_darknet_sur_un_portable_optimus.txt · Dernière modification : 2020/12/27 15:09 de serge