YOLO Vision 2026:

YOLOv5 ๋น ๋ฅธ ์‹œ์ž‘ ๐Ÿš€#

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

์„ค์น˜#

YOLOv5 ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•˜๊ณ  ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜์—ฌ ์ถœ๋ฐœ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•„์š”ํ•œ ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. 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 PyTorch Hub ์ถ”๋ก ์˜ ๊ฐ„ํŽธํ•จ์„ ๊ฒฝํ—˜ํ•ด ๋ณด์„ธ์š”. ์ตœ์‹  YOLOv5 ๋ฆด๋ฆฌ์Šค์—์„œ ๋ชจ๋ธ์ด ์›ํ™œํ•˜๊ฒŒ ๋‹ค์šด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„ํŽธํ•œ ๋ชจ๋ธ ๋กœ๋”ฉ๊ณผ ์‹คํ–‰์„ ์œ„ํ•ด 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๋ฅผ ์‚ฌ์šฉํ•œ ์ถ”๋ก #

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

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

ํ•™์Šต#

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

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

๊ธฐ์—ฌ์ž

๋Œ“๊ธ€