yolo_darknet_avec_un_vrai_semaphore
Ceci est une ancienne révision du document !
Table des matières
Yolo Darknet avec un vrai sémaphore
Reconnaissance d'un vrai sémaphore avec YOLO Darknet
Suite et fin
Apprentissage
cfg
Relire tout le readme pour bien configurer en particulier:
- for training for both small and large objects use modified models: yolov3-tiny_3l.cfg
- If you train the model to distinguish Left and Right objects as separate classes (left/right hand, left/right-turn on road signs, …) then for disabling flip data augmentation - add flip=0
Apprentissage
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} ./darknet detector train blend/obj.data blend/yolov3-obj_3l_blend.cfg darknet53.conv.74 -map
3 calcul
Calcul 1
- jpg 90, faible variation d'angle, faible variation de couleur et lumière
- 9 000 itérations
calculation mAP (mean average precision)... 6000 detections_count = 17645, unique_truth_count = 5987 class_id = 0, name = a, ap = 97.74% (TP = 220, FP = 46) class_id = 1, name = space, ap = 91.95% (TP = 205, FP = 75) class_id = 2, name = b, ap = 99.55% (TP = 220, FP = 0) class_id = 3, name = c, ap = 97.65% (TP = 214, FP = 14) class_id = 4, name = d, ap = 100.00% (TP = 218, FP = 0) class_id = 5, name = e, ap = 95.70% (TP = 210, FP = 8) class_id = 6, name = f, ap = 100.00% (TP = 212, FP = 0) class_id = 7, name = g, ap = 97.59% (TP = 209, FP = 25) class_id = 8, name = h, ap = 100.00% (TP = 219, FP = 0) class_id = 9, name = i, ap = 97.34% (TP = 209, FP = 60) class_id = 10, name = j, ap = 100.00% (TP = 228, FP = 0) class_id = 11, name = k, ap = 100.00% (TP = 241, FP = 26) class_id = 12, name = l, ap = 98.39% (TP = 199, FP = 50) class_id = 13, name = m, ap = 98.64% (TP = 218, FP = 0) class_id = 14, name = n, ap = 97.77% (TP = 204, FP = 41) class_id = 15, name = o, ap = 99.58% (TP = 237, FP = 16) class_id = 16, name = p, ap = 98.38% (TP = 213, FP = 10) class_id = 17, name = q, ap = 100.00% (TP = 207, FP = 17) class_id = 18, name = r, ap = 100.00% (TP = 195, FP = 0) class_id = 19, name = s, ap = 99.57% (TP = 229, FP = 61) class_id = 20, name = t, ap = 86.73% (TP = 216, FP = 154) class_id = 21, name = u, ap = 100.00% (TP = 213, FP = 10) class_id = 22, name = v, ap = 94.88% (TP = 211, FP = 89) class_id = 23, name = w, ap = 99.99% (TP = 235, FP = 14) class_id = 24, name = x, ap = 93.46% (TP = 199, FP = 81) class_id = 25, name = y, ap = 99.55% (TP = 223, FP = 0) class_id = 26, name = z, ap = 95.30% (TP = 219, FP = 96) for thresh = 0.25, precision = 0.87, recall = 0.97, F1-score = 0.92 for thresh = 0.25, TP = 5823, FP = 893, FN = 164, average IoU = 77.65 % IoU threshold = 50 %, used Area-Under-Curve for each unique Recall mean average precision (mAP@0.50) = 0.977692, or 97.77 % mean_average_precision (mAP@0.5) = 0.977692
Calcul 2
idem calcul 1, mais 54 000 itérations. L'efficacité est la même qu'avec 9 000 itérations ! yolov3-blend_54000_final.weights.zip files_blend_real.zip
Calcul 3
- jpg 100, forte variation d'angle, forte variation de couleur et lumière
- 12 000 itérations sur carte 765 GTX et subdivision=32
calculation mAP (mean average precision)... 6000 detections_count = 17161, unique_truth_count = 5987 class_id = 0, name = a, 17161 ap = 82.72 % class_id = 1, name = space, ap = 80.00 % class_id = 2, name = b, ap = 100.00 % class_id = 3, name = c, ap = 94.55 % class_id = 4, name = d, ap = 100.00 % class_id = 5, name = e, ap = 79.73 % class_id = 6, name = f, ap = 100.00 % class_id = 7, name = g, ap = 88.52 % class_id = 8, name = h, ap = 99.72 % class_id = 9, name = i, ap = 94.52 % class_id = 10, name = j, ap = 99.88 % class_id = 11, name = k, ap = 97.39 % class_id = 12, name = l, ap = 96.58 % class_id = 13, name = m, ap = 100.00 % class_id = 14, name = n, ap = 93.39 % class_id = 15, name = o, ap = 98.15 % class_id = 16, name = p, ap = 94.77 % class_id = 17, name = q, ap = 97.96 % class_id = 18, name = r, ap = 100.00 % class_id = 19, name = s, ap = 97.23 % class_id = 20, name = t, ap = 81.34 % class_id = 21, name = u, ap = 98.94 % class_id = 22, name = v, ap = 65.49 % class_id = 23, name = w, ap = 98.84 % class_id = 24, name = x, ap = 88.67 % class_id = 25, name = y, ap = 99.96 % class_id = 26, name = z, ap = 81.75 % for thresh = 0.25, precision = 0.94, recall = 0.86, F1-score = 0.90 for thresh = 0.25, TP = 5175, FP = 343, FN = 812, average IoU = 82.32 % IoU threshold = 50 % mean average precision (mAP@0.50) = 0.929660, or 92.97 % mean_average_precision (mAP@0.5) = 0.929660
Reconnaissance dans le monde réel
Réglage d'une webcam en cours d'utilisation par un programme, python par exemple
sudo apt install v4l2ucp v4l2ucp
Noter les bonnes valeurs et les reporter dans le fichier darknet.ini
Les sources sur GitHub
yolo_darknet_avec_un_vrai_semaphore.1557764501.txt.gz · Dernière modification : 2019/05/13 16:21 de serge