рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдореЙрдбрд▓ рдкрд╣рдирд╛рд╡рд╛

ЁЯУЪ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ YOLOv5 ЁЯЪА рдмреЗрд╣рддрд░ рдПрдордПрдкреА рдФрд░ рд░рд┐рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЕрдиреБрдорд╛рди рдХреЗ рджреМрд░рд╛рди рдореЙрдбрд▓ рдкрд╣рдирд╛рд╡рд╛ ред

https://en.wikipedia.org/wiki/Ensemble_learning рд╕реЗ:

рдкрд╣рдирд╛рд╡рд╛ рдореЙрдбрд▓рд┐рдВрдЧ рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╡рд┐рдз рдореЙрдбрд▓ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рдирд╛рд╡рд╛ рдореЙрдбрд▓ рддрдм рдкреНрд░рддреНрдпреЗрдХ рдЖрдзрд╛рд░ рдореЙрдбрд▓ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдирджреЗрдЦреА рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдЕрдВрддрд┐рдо рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдкрд╣рдирд╛рд╡рд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рддреНрд░реБрдЯрд┐ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред рдЬрдм рддрдХ рдЖрдзрд╛рд░ рдореЙрдбрд▓ рд╡рд┐рд╡рд┐рдз рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдкрд╣рдирд╛рд╡рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдореЙрдбрд▓ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рддреНрд░реБрдЯрд┐ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдореЗрдВ рднреАрдбрд╝ рдХреЗ рдЬреНрдЮрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдкрд╣рдирд╛рд╡рд╛ рдореЙрдбрд▓ рдХреЗ рднреАрддрд░ рдХрдИ рдЖрдзрд╛рд░ рдореЙрдбрд▓ рд╣реИрдВ, рдпрд╣ рдПрдХрд▓ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ

рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ 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

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ

рдкрд╣рдирд╛рд╡рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдПрдХрд▓ рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХрдорд╛рдВрдб COCO val2017 рдкрд░ рдЫрд╡рд┐ рдЖрдХрд╛рд░ 640 рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ YOLOv5x рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред yolov5x.pt рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдФрд░ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рдореЙрдбрд▓ рд╣реИред рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ yolov5s.pt, yolov5m.pt рдФрд░ yolov5l.pt, рдпрд╛ рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВ ./weights/best.pt. рд╕рднреА рдЙрдкрд▓рдмреНрдз рдореЙрдбрд▓реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рд╣рдорд╛рд░рд╛ README рджреЗрдЦреЗрдВ рд╕рд╛рд░рдгреА.

python val.py --weights yolov5x.pt --data coco.yaml --img 640 --half

рдЖрдЙрдЯрдкреБрдЯ:

val: data=./data/coco.yaml, weights=['yolov5x.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.65, task=val, device=, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=True, project=runs/val, name=exp, exist_ok=False, half=True
YOLOv5 ЁЯЪА v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients

val: Scanning '../datasets/coco/val2017' images and labels...4952 found, 48 missing, 0 empty, 0 corrupted: 100% 5000/5000 [00:01<00:00, 2846.03it/s]
val: New cache created: ../datasets/coco/val2017.cache
               Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 157/157 [02:30<00:00,  1.05it/s]
                 all       5000      36335      0.746      0.626       0.68       0.49
Speed: 0.1ms pre-process, 22.4ms inference, 1.4ms NMS per image at shape (32, 3, 640, 640)  # <--- baseline speed

Evaluating pycocotools mAP... saving runs/val/exp/yolov5x_predictions.json...
...
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.504  # <--- baseline mAP
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.688
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.546
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.351
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.551
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.644
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.382
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.628
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.681  # <--- baseline mAR
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.524
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.735
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.826

рдкрд╣рдирд╛рд╡рд╛ рдкрд░реАрдХреНрд╖рдг

рдХрдИ рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЕрдиреБрдорд╛рди рд╕рдордп рдкрд░ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбрд▓ рдХреЛ рдЬреЛрдбрд╝рдХрд░ --weights рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ val.py рдпрд╛ detect.py рдХрдорд╛рдВрдб рдореЗрдВ рддрд░реНрдХред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рд╛рде 2 рдореЙрдбрд▓реЛрдВ рдХреЗ рдкрд╣рдирд╛рд╡рд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ:

  • рдпреЛрд▓реЛрд╡5рдПрдХреНрд╕
  • рдпреЛрд▓реЛрд╡5рдПрд▓6
python val.py --weights yolov5x.pt yolov5l6.pt --data coco.yaml --img 640 --half

рдЖрдЙрдЯрдкреБрдЯ:

val: data=./data/coco.yaml, weights=['yolov5x.pt', 'yolov5l6.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.6, task=val, device=, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=True, project=runs/val, name=exp, exist_ok=False, half=True
YOLOv5 ЁЯЪА v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients  # Model 1
Fusing layers...
Model Summary: 501 layers, 77218620 parameters, 0 gradients  # Model 2
Ensemble created with ['yolov5x.pt', 'yolov5l6.pt']  # Ensemble notice

val: Scanning '../datasets/coco/val2017.cache' images and labels... 4952 found, 48 missing, 0 empty, 0 corrupted: 100% 5000/5000 [00:00<00:00, 49695545.02it/s]
               Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100% 157/157 [03:58<00:00,  1.52s/it]
                 all       5000      36335      0.747      0.637      0.692      0.502
Speed: 0.1ms pre-process, 39.5ms inference, 2.0ms NMS per image at shape (32, 3, 640, 640)  # <--- ensemble speed

Evaluating pycocotools mAP... saving runs/val/exp3/yolov5x_predictions.json...
...
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.515  # <--- ensemble mAP
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.699
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.557
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.356
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.563
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.668
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.387
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.638
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.689  # <--- ensemble mAR
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.526
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.743
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.844

рдкрд╣рдирд╛рд╡рд╛ рдЕрдиреБрдорд╛рди

рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбрд▓ рдЬреЛрдбрд╝реЗрдВ --weights рдкрд╣рдирд╛рд╡рд╛ рдЕрдиреБрдорд╛рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ:

python detect.py --weights yolov5x.pt yolov5l6.pt --img 640 --source data/images

рдЖрдЙрдЯрдкреБрдЯ:

YOLOv5 ЁЯЪА v5.0-267-g6a3ee7c torch 1.9.0+cu102 CUDA:0 (Tesla P100-PCIE-16GB, 16280.875MB)

Fusing layers...
Model Summary: 476 layers, 87730285 parameters, 0 gradients
Fusing layers...
Model Summary: 501 layers, 77218620 parameters, 0 gradients
Ensemble created with ['yolov5x.pt', 'yolov5l6.pt']

image 1/2 /content/yolov5/data/images/bus.jpg: 640x512 4 persons, 1 bus, 1 tie, Done. (0.063s)
image 2/2 /content/yolov5/data/images/zidane.jpg: 384x640 3 persons, 2 ties, Done. (0.056s)
Results saved to runs/detect/exp2
Done. (0.223s)

YOLO рдЕрдиреБрдорд╛рди рдкрд░рд┐рдгрд╛рдо

рд╕рдорд░реНрдерд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг

Ultralytics рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдЬреИрд╕реЗ CUDA, CUDNN рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд, PythonрдФрд░ PyTorch, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд┐рддрд┐

YOLOv5 рд╕реАрдЖрдИ

рдпрд╣ рдмреИрдЬ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА YOLOv5 GitHub рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕рддрдд рдПрдХреАрдХрд░рдг (CI) рдкрд░реАрдХреНрд╖рдг рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд╕ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рдпреЗ рд╕реАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рд╕рдЦреНрддреА рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ YOLOv5 рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдореБрдЦ рдкрд╣рд▓реБрдУрдВ рдХреЗ рдкрд╛рд░: рдкреНрд░рд╢рд┐рдХреНрд╖рдг, рд╕рддреНрдпрд╛рдкрди, рдЕрдиреБрдорд╛рди, рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХред рд╡реЗ macOS, Windows рдФрд░ Ubuntu рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рд░ 24 рдШрдВрдЯреЗ рдореЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-01-07
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (5), рд╕рд░реНрдЧрд┐рдЙрд╡реИрдХреНрд╕рдореИрди (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ