์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Ultralytics YOLOv5 ์•„ํ‚คํ…์ฒ˜

YOLOv5 (v6.0/6.1) is a powerful object detection algorithm developed by Ultralytics. This article dives deep into the YOLOv5 architecture, data augmentation strategies, training methodologies, and loss computation techniques. This comprehensive understanding will help improve your practical application of object detection in various fields, including surveillance, autonomous vehicles, and image recognition.

1. ๋ชจ๋ธ ๊ตฌ์กฐ

YOLOv5์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ํฌ๊ฒŒ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ๋ฐฑ๋ณธ: ๋„คํŠธ์›Œํฌ์˜ ๋ณธ์ฒด์ž…๋‹ˆ๋‹ค. YOLOv5 ์˜ ๊ฒฝ์šฐ ๋ฐฑ๋ณธ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. New CSP-Darknet53 ๊ตฌ์กฐ๋Š” ์ด์ „ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉ๋œ ๋‹คํฌ๋„ท ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ˆ˜์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋ชฉ: ์ด ๋ถ€๋ถ„์€ ๋ฐฑ๋ณธ๊ณผ ํ—ค๋“œ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. YOLOv5 ์—์„œ , SPPF ๊ทธ๋ฆฌ๊ณ  New CSP-PAN ๊ตฌ์กฐ๊ฐ€ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Head: ์ด ๋ถ€๋ถ„์€ ์ตœ์ข… ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. YOLOv5 ์—์„œ๋Š” YOLOv3 Head ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋ชจ๋ธ์˜ ๊ตฌ์กฐ๋Š” ์•„๋ž˜ ์ด๋ฏธ์ง€์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. yolov5l.yaml.

yolov5

YOLOv5 ๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ์‚ฌ์†Œํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๊ทธ๋ฆฌ๊ณ  Focus ๊ตฌ์กฐ๊ฐ€ ์ด์ „ ๋ฒ„์ „์—์„œ ๋ฐœ๊ฒฌ๋˜๋Š” 6x6 Conv2d ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์œผ๋กœ ํšจ์œจ์„ฑ ํ–ฅ์ƒ #4825.
  2. ๊ทธ๋ฆฌ๊ณ  SPP ๊ตฌ์กฐ๊ฐ€ SPPF. ์ด ๋ณ€๊ฒฝ์œผ๋กœ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋‘ ๋ฐฐ ์ด์ƒ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

์†๋„๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด SPP ๊ทธ๋ฆฌ๊ณ  SPPF๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

SPP ๋Œ€ SPPF ์†๋„ ํ”„๋กœํŒŒ์ผ๋ง ์˜ˆ์‹œ(์—ด๋ ค๋ฉด ํด๋ฆญ)
import time

import torch
import torch.nn as nn


class SPP(nn.Module):
    def __init__(self):
        """Initializes an SPP module with three different sizes of max pooling layers."""
        super().__init__()
        self.maxpool1 = nn.MaxPool2d(5, 1, padding=2)
        self.maxpool2 = nn.MaxPool2d(9, 1, padding=4)
        self.maxpool3 = nn.MaxPool2d(13, 1, padding=6)

    def forward(self, x):
        """Applies three max pooling layers on input `x` and concatenates results along channel dimension."""
        o1 = self.maxpool1(x)
        o2 = self.maxpool2(x)
        o3 = self.maxpool3(x)
        return torch.cat([x, o1, o2, o3], dim=1)


class SPPF(nn.Module):
    def __init__(self):
        """Initializes an SPPF module with a specific configuration of MaxPool2d layer."""
        super().__init__()
        self.maxpool = nn.MaxPool2d(5, 1, padding=2)

    def forward(self, x):
        """Applies sequential max pooling and concatenates results with input tensor."""
        o1 = self.maxpool(x)
        o2 = self.maxpool(o1)
        o3 = self.maxpool(o2)
        return torch.cat([x, o1, o2, o3], dim=1)


def main():
    """Compares outputs and performance of SPP and SPPF on a random tensor (8, 32, 16, 16)."""
    input_tensor = torch.rand(8, 32, 16, 16)
    spp = SPP()
    sppf = SPPF()
    output1 = spp(input_tensor)
    output2 = sppf(input_tensor)

    print(torch.equal(output1, output2))

    t_start = time.time()
    for _ in range(100):
        spp(input_tensor)
    print(f"SPP time: {time.time() - t_start}")

    t_start = time.time()
    for _ in range(100):
        sppf(input_tensor)
    print(f"SPPF time: {time.time() - t_start}")


if __name__ == "__main__":
    main()
๊ฒฐ๊ณผ:
True
SPP time: 0.5373051166534424
SPPF time: 0.20780706405639648

2. ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ๊ธฐ์ˆ 

YOLOv5 employs various data augmentation techniques to improve the model's ability to generalize and reduce overfitting. These techniques include:

  • Mosaic Augmentation: An image processing technique that combines four training images into one in ways that encourage object detection models to better handle various object scales and translations.

    ๋ชจ์ž์ดํฌ

  • ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ ์ฆ๊ฐ•: ์ด๋ฏธ์ง€์—์„œ ๋ฌด์ž‘์œ„๋กœ ํŒจ์น˜๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•œ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์— ๋ถ™์—ฌ๋„ฃ์–ด ์ƒˆ๋กœ์šด ํ•™์Šต ์ƒ˜ํ”Œ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ํ˜์‹ ์ ์ธ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ

  • ๋žœ๋ค ์•„ํ•€ ๋ณ€ํ™˜: ์—ฌ๊ธฐ์—๋Š” ์ด๋ฏธ์ง€์˜ ๋ฌด์ž‘์œ„ ํšŒ์ „, ํฌ๊ธฐ ์กฐ์ •, ์ด๋™ ๋ฐ ์ „๋‹จ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ๋žœ๋ค-์–ดํŒŒ์ธ

  • ๋ฏน์Šค์—… ์ฆ๊ฐ•: ๋‘ ์ด๋ฏธ์ง€์™€ ๊ด€๋ จ ๋ ˆ์ด๋ธ”์„ ์„ ํ˜•์ ์œผ๋กœ ์กฐํ•ฉํ•˜์—ฌ ํ•ฉ์„ฑ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    ๋ฏน์Šค์—…

  • ๋ฌธ์„œํ™”: ๋‹ค์–‘ํ•œ ์ฆ๊ฐ• ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์ด๋ฏธ์ง€ ์ฆ๊ฐ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

  • HSV ์ฆ๊ฐ•: ์ด๋ฏธ์ง€์˜ ์ƒ‰์กฐ, ์ฑ„๋„ ๋ฐ ๊ฐ’์„ ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    hsv

  • ๋ฌด์ž‘์œ„ ์ˆ˜ํ‰ ๋’ค์ง‘๊ธฐ: ์ด๋ฏธ์ง€๋ฅผ ๋ฌด์ž‘์œ„๋กœ ๊ฐ€๋กœ๋กœ ๋’ค์ง‘๋Š” ์ฆ๊ฐ• ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

    ์ˆ˜ํ‰ ๋’ค์ง‘๊ธฐ

3. ๊ต์œก ์ „๋žต

YOLOv5 ๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ •๊ตํ•œ ํ›ˆ๋ จ ์ „๋žต์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  • ๋ฉ€ํ‹ฐ์Šค์ผ€์ผ ํŠธ๋ ˆ์ด๋‹: ํ›ˆ๋ จ ๊ณผ์ •์—์„œ ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ์›๋ž˜ ํฌ๊ธฐ์˜ 0.5~1.5๋ฐฐ ๋ฒ”์œ„ ๋‚ด์—์„œ ์ž„์˜๋กœ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ์•ต์ปค: ์ด ์ „๋žต์€ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ์˜ ๊ธฐ์ค€ ๋ฐ์ดํ„ฐ ์ƒ์ž์˜ ํ†ต๊ณ„์  ํŠน์„ฑ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์ด์ „ ์•ต์ปค ์ƒ์ž๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • Warmup and Cosine LR Scheduler: A method to adjust the learning rate to enhance model performance.
  • ์ง€์ˆ˜์ด๋™ํ‰๊ท (EMA): ๊ณผ๊ฑฐ ๋‹จ๊ณ„์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ‰๊ท ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•™์Šต ๊ณผ์ •์„ ์•ˆ์ •ํ™”ํ•˜๊ณ  ์ผ๋ฐ˜ํ™” ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค.
  • Mixed Precision Training: A method to perform operations in half-precision format, reducing memory usage and enhancing computational speed.
  • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์ง„ํ™”: ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค.

4. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

4.1 ์†์‹ค ๊ณ„์‚ฐ

YOLOv5 ์˜ ์†์‹ค์€ ์„ธ ๊ฐ€์ง€ ๊ฐœ๋ณ„ ์†์‹ค ๊ตฌ์„ฑ ์š”์†Œ์˜ ์กฐํ•ฉ์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค:

  • ํด๋ž˜์Šค ์†์‹ค(BCE ์†์‹ค): ์ด์ง„ ๊ต์ฐจ ์—”ํŠธ๋กœํ”ผ ์†์‹ค๋กœ, ๋ถ„๋ฅ˜ ์ž‘์—…์˜ ์˜ค๋ฅ˜๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด์„ฑ ์†์‹ค(BCE ์†์‹ค): ๋˜ ๋‹ค๋ฅธ ์ด์ง„ ๊ต์ฐจ ์—”ํŠธ๋กœํ”ผ ์†์‹ค๋กœ, ํŠน์ • ๊ทธ๋ฆฌ๋“œ ์…€์— ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ง€ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„์น˜ ์†์‹ค(CIoU ์†์‹ค): ์ „์ฒด IoU ์†์‹ค: ๊ทธ๋ฆฌ๋“œ ์…€ ๋‚ด์—์„œ ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

The overall loss function is depicted by:

์†์‹ค

4.2 ์ž”์•ก ์†์‹ค

์„ธ ๊ฐ€์ง€ ์˜ˆ์ธก ๋ ˆ์ด์–ด์˜ ์˜ค๋ธŒ์ ํŠธ๋‹ˆ์Šค ์†์‹ค(P3, P4, P5)์˜ ๊ฐ€์ค‘์น˜๋Š” ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐธ๋Ÿฐ์Šค ๊ฐ€์ค‘์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. [4.0, 1.0, 0.4] ๋กœ ๊ฐ๊ฐ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ทœ๋ชจ์˜ ์˜ˆ์ธก์ด ์ด ์†์‹ค์— ์ ์ ˆํ•˜๊ฒŒ ๊ธฐ์—ฌํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด ์†์‹ค

4.3 ๊ทธ๋ฆฌ๋“œ ๊ฐ๋„ ์ œ๊ฑฐํ•˜๊ธฐ

YOLOv5 ์•„ํ‚คํ…์ฒ˜๋Š” ์ด์ „ ๋ฒ„์ „( YOLO)๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ฐ•์Šค ์˜ˆ์ธก ์ „๋žต์— ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. YOLOv2 ๋ฐ YOLOv3์—์„œ๋Š” ๋งˆ์ง€๋ง‰ ๋ ˆ์ด์–ด์˜ ํ™œ์„ฑํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ•์Šค ์ขŒํ‘œ๋ฅผ ์ง์ ‘ ์˜ˆ์ธกํ–ˆ์Šต๋‹ˆ๋‹ค.

b_x b_y b_w b_h

YOLOv5 ๊ทธ๋ฆฌ๋“œ ๊ณ„์‚ฐ

๊ทธ๋Ÿฌ๋‚˜ YOLOv5 ์—์„œ๋Š” ๊ทธ๋ฆฌ๋“œ ๊ฐ๋„๋ฅผ ์ค„์ด๊ณ  ๋ชจ๋ธ์ด ๋ฌดํ•œํ•œ ์ƒ์ž ์น˜์ˆ˜๋ฅผ ์˜ˆ์ธกํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ƒ์ž ์ขŒํ‘œ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ณต์‹์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

The revised formulas for calculating the predicted bounding box are as follows:

bx by bw bh

์Šค์ผ€์ผ๋ง ์ „ํ›„์˜ ์ค‘์‹ฌ์  ์˜คํ”„์…‹์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์ค‘์‹ฌ์  ์˜คํ”„์…‹ ๋ฒ”์œ„๋Š” (0, 1)์—์„œ (-0.5, 1.5)๊นŒ์ง€ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜คํ”„์…‹์€ ์‰ฝ๊ฒŒ 0 ๋˜๋Š” 1์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YOLOv5 ๊ทธ๋ฆฌ๋“œ ์Šค์ผ€์ผ๋ง

์กฐ์ • ์ „ํ›„์˜ ๋†’์ด์™€ ๋„ˆ๋น„ ๋น„์œจ(์•ต์ปค ๊ธฐ์ค€)์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์›๋ž˜ yolo/darknet ์ƒ์ž ๋ฐฉ์ •์‹์—๋Š” ์‹ฌ๊ฐํ•œ ๊ฒฐํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํญ๊ณผ ๋†’์ด๋Š” ๋‹จ์ˆœํžˆ ์•„์›ƒ=์—‘์Šค(์ธ)์ด๋ฏ€๋กœ ์™„์ „ํžˆ ๋ฌดํ•œ๋Œ€์ด๋ฉฐ, ์ด๋Š” ํญ์ฃผ ๊ธฐ์šธ๊ธฐ, ๋ถˆ์•ˆ์ •์„ฑ, NaN ์†์‹ค ๋ฐ ๊ถ๊ทน์ ์œผ๋กœ ํ›ˆ๋ จ์˜ ์™„์ „ํ•œ ์†์‹ค๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLOv5 ๋ฌด์ œํ•œ ํ™•์žฅ

4.4 ๋นŒ๋“œ ํƒ€๊ฒŸ

The build target process in YOLOv5 is critical for training efficiency and model accuracy. It involves assigning ground truth boxes to the appropriate grid cells in the output map and matching them with the appropriate anchor boxes.

์ด ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค:

  • ๊ธฐ์ค€์  ์ƒ์ž ์น˜์ˆ˜์™€ ๊ฐ ์•ต์ปค ํ…œํ”Œ๋ฆฟ์˜ ์น˜์ˆ˜์˜ ๋น„์œจ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

rw

rh

rwmax

rhmax

rmax

์ผ์น˜

YOLOv5 IoU ๊ณ„์‚ฐ

  • ๊ณ„์‚ฐ๋œ ๋น„์œจ์ด ์ž„๊ณ„๊ฐ’ ๋‚ด์— ์žˆ์œผ๋ฉด ๊ธฐ์ค€๊ฐ’ ์ƒ์ž๋ฅผ ํ•ด๋‹น ์•ต์ปค์™€ ์ผ์น˜์‹œํ‚ต๋‹ˆ๋‹ค.

YOLOv5 ๊ทธ๋ฆฌ๋“œ ๊ฒน์นจ

  • ์ˆ˜์ •๋œ ์ค‘์‹ฌ์  ์˜คํ”„์…‹์œผ๋กœ ์ธํ•ด ๊ธฐ์ค€์  ์ƒ์ž๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์•ต์ปค์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์—ผ๋‘์— ๋‘๊ณ  ์ผ์น˜ํ•˜๋Š” ์•ต์ปค๋ฅผ ์ ์ ˆํ•œ ์…€์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ค‘์‹ฌ์  ์˜คํ”„์…‹ ๋ฒ”์œ„๊ฐ€ (0, 1)์—์„œ (-0.5, 1.5)๋กœ ์กฐ์ •๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. GT ๋ฐ•์Šค๋ฅผ ๋” ๋งŽ์€ ์•ต์ปค์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YOLOv5 ์•ต์ปค ์„ ํƒ

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋นŒ๋“œ ํƒ€๊นƒ ํ”„๋กœ์„ธ์Šค๋Š” ํ•™์Šต ๊ณผ์ •์—์„œ ๊ฐ ์‹ค์ธก ๊ฐ์ฒด๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ํ• ๋‹น๋˜๊ณ  ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ YOLOv5 ๊ฐ์ฒด ๊ฐ์ง€ ์ž‘์—…์„ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๊ฒฐ๋ก ์ ์œผ๋กœ, YOLOv5 ์€ ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ๊ฐ์ง€ ๋ชจ๋ธ ๊ฐœ๋ฐœ์˜ ์ค‘์š”ํ•œ ์ง„์ „์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๊ฐœ์„  ์‚ฌํ•ญ ๋ฐ ํ›ˆ๋ จ ์ „๋žต์„ ํ†ตํ•ฉํ•˜์—ฌ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ ๋ฉด์—์„œ ์ด์ „ ๋ฒ„์ „์˜ YOLO ์ œํ’ˆ๊ตฐ์„ ๋Šฅ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

YOLOv5 ์˜ ์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ์œผ๋กœ๋Š” ๋™์  ์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ, ๊ด‘๋ฒ”์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ๊ธฐ์ˆ , ํ˜์‹ ์ ์ธ ํ›ˆ๋ จ ์ „๋žต, ์ปดํ“จํŒ… ์†์‹ค ๋ฐ ๋ชฉํ‘œ ๊ตฌ์ถ• ํ”„๋กœ์„ธ์Šค์˜ ์ค‘์š”ํ•œ ์กฐ์ • ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ํ˜์‹ ์€ YOLO ๋ชจ๋ธ์˜ ํŠธ๋ ˆ์ด๋“œ๋งˆํฌ์ธ ๋น ๋ฅธ ์†๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฌผ์ฒด ๊ฐ์ง€์˜ ์ •ํ™•์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.


๐Ÿ“… Created 11 months ago โœ๏ธ Updated 20 days ago

๋Œ“๊ธ€