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

рдЬрдореА рд╣реБрдИ рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рд╕реАрдЦрдиреЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ

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

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

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

рдлреНрд░реАрдЬ рдмреИрдХрдмреЛрди

рд╕рднреА рдкрд░рддреЗрдВ рдЬреЛ train.py рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ freeze рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдирдХреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ train.py рдореЗрдВ рд╕реВрдЪреА рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

# Freeze
freeze = [f'model.{x}.' for x in range(freeze)]  # layers to freeze
for k, v in model.named_parameters():
    v.requires_grad = True  # train all layers
    if any(x in k for x in freeze):
        print(f'freezing {k}')
        v.requires_grad = False

рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:

for k, v in model.named_parameters():
    print(k)

"""Output:
model.0.conv.conv.weight
model.0.conv.bn.weight
model.0.conv.bn.bias
model.1.conv.weight
model.1.bn.weight
model.1.bn.bias
model.2.cv1.conv.weight
model.2.cv1.bn.weight
...
model.23.m.0.cv2.bn.weight
model.23.m.0.cv2.bn.bias
model.24.m.0.weight
model.24.m.0.bias
model.24.m.1.weight
model.24.m.1.bias
model.24.m.2.weight
model.24.m.2.bias
"""

рдореЙрдбрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбрд▓ рдмреИрдХрдмреЛрди рдкрд░рддреЗрдВ 0-9 рд╣реИрдВ:

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  - [-1, 1, Conv, [64, 6, 2, 2]]  # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]]  # 1-P2/4
  - [-1, 3, C3, [128]]
  - [-1, 1, Conv, [256, 3, 2]]  # 3-P3/8
  - [-1, 6, C3, [256]]
  - [-1, 1, Conv, [512, 3, 2]]  # 5-P4/16
  - [-1, 9, C3, [512]]
  - [-1, 1, Conv, [1024, 3, 2]]  # 7-P5/32
  - [-1, 3, C3, [1024]]
  - [-1, 1, SPPF, [1024, 5]]  # 9


# YOLOv5 v6.0 head
head:
  - [-1, 1, Conv, [512, 1, 1]]
  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 6], 1, Concat, [1]]  # cat backbone P4
  - [-1, 3, C3, [512, False]]  # 13

  - [-1, 1, Conv, [256, 1, 1]]
  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 4], 1, Concat, [1]]  # cat backbone P3
  - [-1, 3, C3, [256, False]]  # 17 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 14], 1, Concat, [1]]  # cat head P4
  - [-1, 3, C3, [512, False]]  # 20 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 10], 1, Concat, [1]]  # cat head P5
  - [-1, 3, C3, [1024, False]]  # 23 (P5/32-large)

  - [[17, 20, 23], 1, Detect, [nc]]  # Detect(P3, P4, P5)

рдЗрд╕рд▓рд┐рдП рд╣рдо рдлреНрд░реАрдЬ рд╕реВрдЪреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдореЙрдбреНрдпреВрд▓ 'model.0.' - 'model.9.' рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдирд╛рдо рд╣реИрдВ:

python train.py --freeze 10

рд╕рднреА рдкрд░рддреЛрдВ рдХреЛ рдлреНрд░реАрдЬ рдХрд░реЗрдВ

Detect() рдореЗрдВ рдЕрдВрддрд┐рдо рдЖрдЙрдЯрдкреБрдЯ рдХрдирд╡рд▓реНрд╢рди рдкрд░рддреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкреВрд░реНрдг рдореЙрдбрд▓ рдХреЛ рдлреНрд░реАрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо 'model.0.' - 'model.23.' рдХреЗ рд╕рд╛рде рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд░реАрдЬ рд╕реВрдЪреА рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

python train.py --freeze 24

рдкрд░рд┐рдгрд╛рдо

рд╣рдо рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ VOC рдкрд░ YOLOv5m рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЙрдбрд▓ (рдХреЛрдИ рдардВрдб рдирд╣реАрдВ) рдХреЗ рд╕рд╛рде, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ COCO рдкреВрд░реНрд╡рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ --weights yolov5m.pt:

train.py --batch 48 --weights yolov5m.pt --data voc.yaml --epochs 50 --cache --img 512 --hyp hyp.finetune.yaml

рд╕рдЯреАрдХрддрд╛ рддреБрд▓рдирд╛

рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдардВрдб рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдЧрддрд┐ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рд╕рдЯреАрдХрддрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░ рджреЗрддреА рд╣реИред

рдмрд░реНрдлрд╝реАрд▓реА рдкреНрд░рд╢рд┐рдХреНрд╖рдг mAP50 рдкрд░рд┐рдгрд╛рдо

рдмрд░реНрдлрд╝реАрд▓реА рдкреНрд░рд╢рд┐рдХреНрд╖рдг mAP50-95 рдкрд░рд┐рдгрд╛рдо

рддрд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рдгрд╛рдо

GPU рдЙрдкрдпреЛрдЧ рддреБрд▓рдирд╛

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдЬрдореЗ рд╣реБрдП рд╣реИрдВ, рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо GPU рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдХрдо GPU рдЙрдкрдпреЛрдЧред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реЗ рдореЙрдбрд▓, рдпрд╛ рдмрдбрд╝реЗ -рдЫрд╡рд┐-рдЖрдХрд╛рд░ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рддреЗрдЬреА рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдардВрдб рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╢рд┐рдХреНрд╖рдг GPU рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрд┐рдд рдкреНрд░рддрд┐рд╢рдд

рдкреНрд░рд╢рд┐рдХреНрд╖рдг GPU рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рд╢рдд

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

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

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

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

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



2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-01-14
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (4)

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