ΠΠ²ΠΎΠ»ΡΡΠΈΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
π Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ± ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ YOLOv5 π. ΠΠ²ΠΎΠ»ΡΡΠΈΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² - ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° (ΠΠ) Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ML ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ΅ΡΠΊΠ΅, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡΡΠΎ ΡΡΠ°ΡΡ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠΈΠΌΡΠΌΠΈ ΠΈΠ·-Π·Π° 1) Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ°, 2) Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ 3) Π΄ΠΎΡΠΎΠ³ΠΎΠ²ΠΈΠ·Π½Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΠ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ
ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» requirements.txt Π² Python>=3.8.0 Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ PyTorch>=1.8. ΠΠΎΠ΄Π΅Π»ΠΈ ΠΈ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎΡΠ΅Π»ΠΈΠ·Π° YOLOv5 .
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
1. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
YOLOv5 ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 30 Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² *.yaml
ΡΠ°ΠΉΠ»Ρ Π² /data/hyps
ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π»ΡΡΡΠΈΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΠ΅ΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ YOLOv5 COCO-ΡΡΠ΅Π½ΠΈΠ½Π³Π° Ρ Π½ΡΠ»Ρ.
# YOLOv5 π by Ultralytics, AGPL-3.0 license
# Hyperparameters for low-augmentation COCO training from scratch
# python train.py --batch 64 --cfg yolov5n6.yaml --weights '' --data coco.yaml --img 640 --epochs 300 --linear
# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.01 # final OneCycleLR learning rate (lr0 * lrf)
momentum: 0.937 # SGD momentum/Adam beta1
weight_decay: 0.0005 # optimizer weight decay 5e-4
warmup_epochs: 3.0 # warmup epochs (fractions ok)
warmup_momentum: 0.8 # warmup initial momentum
warmup_bias_lr: 0.1 # warmup initial bias lr
box: 0.05 # box loss gain
cls: 0.5 # cls loss gain
cls_pw: 1.0 # cls BCELoss positive_weight
obj: 1.0 # obj loss gain (scale with pixels)
obj_pw: 1.0 # obj BCELoss positive_weight
iou_t: 0.20 # IoU training threshold
anchor_t: 4.0 # anchor-multiple threshold
# anchors: 3 # anchors per output layer (0 to ignore)
fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5)
hsv_h: 0.015 # image HSV-Hue augmentation (fraction)
hsv_s: 0.7 # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4 # image HSV-Value augmentation (fraction)
degrees: 0.0 # image rotation (+/- deg)
translate: 0.1 # image translation (+/- fraction)
scale: 0.5 # image scale (+/- gain)
shear: 0.0 # image shear (+/- deg)
perspective: 0.0 # image perspective (+/- fraction), range 0-0.001
flipud: 0.0 # image flip up-down (probability)
fliplr: 0.5 # image flip left-right (probability)
mosaic: 1.0 # image mosaic (probability)
mixup: 0.0 # image mixup (probability)
copy_paste: 0.0 # segment copy-paste (probability)
2. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΈΡΠ½Π΅Ρ
Π€ΠΈΡΠ½Π΅Ρ - ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΡΡΠ΅ΠΌΠΈΠΌΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π YOLOv5 ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΡΠ½Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ Π²Π·Π²Π΅ΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ: mAP@0.5
ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 10% ΠΎΡ Π²Π΅ΡΠ° ΠΈ mAP@0.5:0.95
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ 90% ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡΡΡ Π½Π° Π΄ΠΎΠ»Ρ Π’ΠΎΡΠ½ΠΎΡΡΡ P
ΠΈ ΠΡΠ·ΡΠ² R
ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΡ
ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² utils/metrics.py (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ).
def fitness(x):
"""Return model fitness as the sum of weighted metrics [P, R, mAP@0.5, mAP@0.5:0.95]."""
w = [0.0, 0.0, 0.1, 0.9] # weights for [P, R, mAP@0.5, mAP@0.5:0.95]
return (x[:, :4] * w).sum(1)
3. ΠΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΡΠΉΡΠ΅
ΠΠ²ΠΎΠ»ΡΡΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΡΠ΅ΠΌΠΈΠΌΡΡ ΡΠ»ΡΡΡΠΈΡΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ½ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° COCO128 Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 10 ΡΠΏΠΎΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ YOLOv5s. ΠΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ:
ΠΠ»Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½Π°ΡΠΈΡ
Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π² Π Π°Π·Π΄Π΅Π» 1.ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² Π Π°Π·Π΄Π΅Π» 2., append --evolve
:
# Single-GPU
python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache --evolve
# Multi-GPU
for i in 0 1 2 3 4 5 6 7; do
sleep $(expr 30 \* $i) && # 30-second delay (optional)
echo 'Starting GPU '$i'...' &&
nohup python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache --device $i --evolve > evolve_gpu_$i.log &
done
# Multi-GPU bash-while (not recommended)
for i in 0 1 2 3 4 5 6 7; do
sleep $(expr 30 \* $i) && # 30-second delay (optional)
echo 'Starting GPU '$i'...' &&
"$(while true; do nohup python train.py... --device $i --evolve 1 > evolve_gpu_$i.log; done)" &
done
ΠΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ 300 ΡΠ°Π·, ΡΠΎ Π΅ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 300 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ --evolve
Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Ρ.Π΅. python train.py --evolve 1000
.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠΎΡΡΠΎΠ²Π΅Ρ ΠΈ ΠΌΡΡΠ°ΡΠΈΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΡΡΠ°ΡΠΈΡ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ 80% ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠ΅ΠΉ 0,04 Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΡΡΠ²Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π»ΡΡΡΠΈΡ
ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈΠ· Π²ΡΠ΅Ρ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡΡ Π² runs/evolve/exp/evolve.csv
, Π° ΠΏΠΎΡΠΎΠΌΡΡΠ²ΠΎ Ρ Π½Π°ΠΈΠ²ΡΡΡΠ΅ΠΉ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΡΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ runs/evolve/hyp_evolved.yaml
:
# YOLOv5 Hyperparameter Evolution Results
# Best generation: 287
# Last generation: 300
# metrics/precision, metrics/recall, metrics/mAP_0.5, metrics/mAP_0.5:0.95, val/box_loss, val/obj_loss, val/cls_loss
# 0.54634, 0.55625, 0.58201, 0.33665, 0.056451, 0.042892, 0.013441
lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.2 # final OneCycleLR learning rate (lr0 * lrf)
momentum: 0.937 # SGD momentum/Adam beta1
weight_decay: 0.0005 # optimizer weight decay 5e-4
warmup_epochs: 3.0 # warmup epochs (fractions ok)
warmup_momentum: 0.8 # warmup initial momentum
warmup_bias_lr: 0.1 # warmup initial bias lr
box: 0.05 # box loss gain
cls: 0.5 # cls loss gain
cls_pw: 1.0 # cls BCELoss positive_weight
obj: 1.0 # obj loss gain (scale with pixels)
obj_pw: 1.0 # obj BCELoss positive_weight
iou_t: 0.20 # IoU training threshold
anchor_t: 4.0 # anchor-multiple threshold
# anchors: 3 # anchors per output layer (0 to ignore)
fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5)
hsv_h: 0.015 # image HSV-Hue augmentation (fraction)
hsv_s: 0.7 # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4 # image HSV-Value augmentation (fraction)
degrees: 0.0 # image rotation (+/- deg)
translate: 0.1 # image translation (+/- fraction)
scale: 0.5 # image scale (+/- gain)
shear: 0.0 # image shear (+/- deg)
perspective: 0.0 # image perspective (+/- fraction), range 0-0.001
flipud: 0.0 # image flip up-down (probability)
fliplr: 0.5 # image flip left-right (probability)
mosaic: 1.0 # image mosaic (probability)
mixup: 0.0 # image mixup (probability)
copy_paste: 0.0 # segment copy-paste (probability)
ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ²ΠΎΠ»ΡΡΠΈΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 300 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌ ΠΈ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ±ΡΡΠ°Π΅ΡΡΡ ΡΠΎΡΠ½ΠΈ ΡΠ°Π·, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΠΎΡΠ½ΠΈ ΠΈΠ»ΠΈ ΡΡΡΡΡΠΈ ΡΠ°ΡΠΎΠ² GPU .
4. ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅
evolve.csv
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ evolve.png
Π½Π° utils.plots.plot_evolve()
ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΎΠΉ Π½Π° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ½Π΅ΡΠ° (ΠΎΡΡ y) ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (ΠΎΡΡ x). ΠΠ΅Π»ΡΡΠΉ ΡΠ²Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠ°ΡΠΈΡ. ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ ΠΈ Π½Π΅ ΠΌΡΡΠΈΡΡΠ΅Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ meta
ΡΠ»ΠΎΠ²Π°ΡΡ Π² train.py, ΠΈ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ΅Π΄Ρ
Ultralytics ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΄ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠ°ΠΊ CUDA, CUDNN, Python, ΠΈ PyTorchΠ΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
- ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠ½ΠΎΡΡ GPU:
- Google ΠΠ±Π»Π°ΠΊΠΎ: Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΡ GCP
- Amazon: Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΡ AWS
- Azure: Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΡ AzureML
- Docker: Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Π±ΡΡΡΡΠΎΠΌΡ Π·Π°ΠΏΡΡΠΊΡ Docker
Π‘ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΎΡ Π·Π½Π°ΡΠΎΠΊ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ (CI) YOLOv5 GitHub Actions ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Π½Ρ. ΠΡΠΈ CI-ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ YOLOv5 ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌ: ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ, Π²ΡΠ²ΠΎΠ΄, ΡΠΊΡΠΏΠΎΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° macOS, Windows ΠΈ Ubuntu, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 24 ΡΠ°ΡΠ° ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅.