YOLO Vision 2026:

YOLOv5 ํ€ต์Šคํƒ€ํŠธ ๐Ÿš€#

Ultralytics YOLOv5์™€ ํ•จ๊ป˜ ์‹ค์‹œ๊ฐ„ object detection์˜ ์—ญ๋™์ ์ธ ์„ธ๊ณ„๋กœ ์—ฌ์ •์„ ๋– ๋‚˜๋ณด์„ธ์š”! ๋ณธ ๊ฐ€์ด๋“œ๋Š” YOLOv5 ๋งˆ์Šคํ„ฐ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” AI ์• ํ˜ธ๊ฐ€์™€ ์ „๋ฌธ๊ฐ€๋“ค์„ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ์‹œ์ž‘์ ์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์„ค์ •๋ถ€ํ„ฐ ๊ณ ๊ธ‰ training techniques๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋ฅผ ๋งˆ์น  ๋•Œ์ฏค์ด๋ฉด ์ตœ์ฒจ๋‹จ deep learning ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์— YOLOv5๋ฅผ ์ž์‹  ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์‹์„ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹œ๋™์„ ๊ฑธ๊ณ  YOLOv5๋กœ ๋‚ ์•„์˜ค๋ฆ…๋‹ˆ๋‹ค!

์„ค์น˜#

YOLOv5 repository๋ฅผ ๋ณต์ œํ•˜๊ณ  ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์—ฌ ๋Ÿฐ์นญ์„ ์ค€๋น„ํ•˜์„ธ์š”. ์ด๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  requirements๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. Python>=3.8.0๊ณผ PyTorch>=1.8์ด ์ค€๋น„๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ๋„๊ตฌ๋“ค์€ YOLOv5๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependencies

PyTorch Hub๋ฅผ ํ™œ์šฉํ•œ ์ถ”๋ก #

์ตœ์‹  YOLOv5 release์—์„œ models๊ฐ€ ์›ํ™œํ•˜๊ฒŒ ๋‹ค์šด๋กœ๋“œ๋˜๋Š” YOLOv5 PyTorch Hub ์ถ”๋ก ์˜ ๊ฐ„ํŽธํ•จ์„ ๊ฒฝํ—˜ํ•ด ๋ณด์„ธ์š”. ์ด ๋ฐฉ๋ฒ•์€ PyTorch์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋ธ ๋กœ๋“œ์™€ ์‹คํ–‰์„ ์†์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ์˜ˆ์ธก์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import torch

# Model loading
model = torch.hub.load("ultralytics/yolov5", "yolov5s")  # Can be 'yolov5n' - 'yolov5x6', or 'custom'

# Inference on images
img = "https://ultralytics.com/images/zidane.jpg"  # Can be a file, Path, PIL, OpenCV, numpy, or list of images

# Run inference
results = model(img)

# Display results
results.print()  # Other options: .show(), .save(), .crop(), .pandas(), etc. Explore these in the Predict mode documentation.

detect.py๋ฅผ ํ™œ์šฉํ•œ ์ถ”๋ก #

๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ๋‹ค๋ชฉ์  inference๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด detect.py์„ ํ™œ์šฉํ•˜์„ธ์š”. ์ตœ์‹  YOLOv5 release์—์„œ models๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์™€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ช…๋ น์ค„ ์‚ฌ์šฉ ๋ฐ YOLOv5๋ฅผ ๋” ํฐ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ด๋ฉฐ, ์ด๋ฏธ์ง€, ๋น„๋””์˜ค, ๋””๋ ‰ํ† ๋ฆฌ, ์›น์บ , ์‹ฌ์ง€์–ด live streams๊ณผ ๊ฐ™์€ ์ž…๋ ฅ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

python detect.py --weights yolov5s.pt --source 0                              # webcam
python detect.py --weights yolov5s.pt --source image.jpg                      # image
python detect.py --weights yolov5s.pt --source video.mp4                      # video
python detect.py --weights yolov5s.pt --source screen                         # screenshot
python detect.py --weights yolov5s.pt --source path/                          # directory
python detect.py --weights yolov5s.pt --source list.txt                       # list of images
python detect.py --weights yolov5s.pt --source list.streams                   # list of streams
python detect.py --weights yolov5s.pt --source 'path/*.jpg'                   # glob pattern
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube video
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream

ํ•™์Šต#

์•„๋ž˜์˜ training instructions์— ๋”ฐ๋ผ YOLOv5 COCO dataset ๋ฒค์น˜๋งˆํฌ๋ฅผ ์žฌํ˜„ํ•˜์„ธ์š”. ํ•„์š”ํ•œ models์™€ datasets (coco128.yaml ๋˜๋Š” ์ „์ฒด coco.yaml ๋“ฑ)๋Š” ์ตœ์‹  YOLOv5 release์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. V100 GPU์—์„œ YOLOv5n/s/m/l/x๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ๊ฐ 1/2/4/6/8์ผ์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค(Multi-GPU training ์„ค์ •์€ ๋” ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•จ์— ์œ ์˜ํ•˜์„ธ์š”). ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋†’์€ --batch-size๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ฑฐ๋‚˜, ์ตœ์ ์˜ batch size๋ฅผ ์ž๋™์œผ๋กœ ์ฐพ์•„์ฃผ๋Š” YOLOv5 AutoBatch ๊ธฐ๋Šฅ์„ ์œ„ํ•ด --batch-size -1์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋‹ค์Œ ๋ฐฐ์น˜ ํฌ๊ธฐ๋Š” V100-16GB GPU์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ ์„ค์ • ํŒŒ์ผ(*.yaml)์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹น์‚ฌ์˜ configuration guide๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

# Train YOLOv5n on COCO128 for 3 epochs
python train.py --data coco128.yaml --epochs 3 --weights yolov5n.pt --batch-size 128

# Train YOLOv5s on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64

# Train YOLOv5m on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40

# Train YOLOv5l on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24

# Train YOLOv5x on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
YOLOv5 training curves for COCO dataset

๊ฒฐ๋ก ์ ์œผ๋กœ YOLOv5๋Š” ๊ฐ์ฒด ๊ฒ€์ถœ์„ ์œ„ํ•œ ์ตœ์ฒจ๋‹จ ๋„๊ตฌ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹œ๊ฐ์  ์ดํ•ด๋ฅผ ํ†ตํ•ด ์„ธ์ƒ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” machine learning์˜ ๊ฐ•๋ ฅํ•œ ํž˜์„ ๋ณด์—ฌ์ฃผ๋Š” ์ฆ๊ฑฐ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— YOLOv5๋ฅผ ์ ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ, ์—ฌ๋Ÿฌ๋ถ„์€ computer vision ๋ถ„์•ผ์—์„œ ๋†€๋ผ์šด ์„ฑ๊ณผ๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  ํ˜์‹ ์˜ ์ตœ์ „์„ ์— ์„œ ์žˆ์Œ์„ ๊ธฐ์–ตํ•˜์„ธ์š”. ๋‹ค๋ฅธ ๋น„์ „๊ฐ€๋“ค๋กœ๋ถ€ํ„ฐ ์ถ”๊ฐ€์ ์ธ ํ†ต์ฐฐ๋ ฅ์ด๋‚˜ ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ž์™€ ์—ฐ๊ตฌ์›๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ฒˆ์ฐฝํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ณธ๊ฑฐ์ง€์ธ GitHub repository๋กœ ์—ฌ๋Ÿฌ๋ถ„์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์—†์ด ๋ฐ์ดํ„ฐ์…‹ ๊ด€๋ฆฌ์™€ ๋ชจ๋ธ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” Ultralytics Platform๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์˜๊ฐ์„ ์–ป๊ธฐ ์œ„ํ•ด Solutions ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•ด ๋ณด์„ธ์š”. ๊ณ„์† ํƒ์ƒ‰ํ•˜๊ณ , ๊ณ„์† ํ˜์‹ ํ•˜๋ฉฐ, YOLOv5์˜ ๊ฒฝ์ด๋กœ์›€์„ ์ฆ๊ธฐ์„ธ์š”. ์ฆ๊ฑฐ์šด ๊ฒ€์ถœ ๋˜์„ธ์š”! ๐ŸŒ ๐Ÿ”

๊ธฐ์—ฌ์ž

๋Œ“๊ธ€