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 dependenciesPyTorch 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๋ ์ต์ฒจ๋จ ๊ฐ์ฒด ํ์ง ๋๊ตฌ์ผ ๋ฟ๋ง ์๋๋ผ, ์๊ฐ์ ์ดํด๋ฅผ ํตํด ์ฐ๋ฆฌ๊ฐ ์ธ์๊ณผ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ๋ณํ์ํค๋ ๋จธ์ ๋ฌ๋์ ํ์ ๋ณด์ฌ์ฃผ๋ ์ฆ๊ฑฐ์ด๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ YOLOv5๋ฅผ ํ๋ก์ ํธ์ ์ ์ฉํ๊ธฐ ์์ํ ๋, ์ฌ๋ฌ๋ถ์ด ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ๋๋ผ์ด ์ฑ๊ณผ๋ฅผ ๋ฌ์ฑํ ์ ์๋ ๊ธฐ์ ํ๋ช ์ ์ต์ ์ ์ ์๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์. ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป๊ฑฐ๋ ๋ค๋ฅธ ๋น์ ์ ๋ฌธ๊ฐ์ ์ง์์ด ํ์ํ๋ค๋ฉด, ๊ฐ๋ฐ์์ ์ฐ๊ตฌ์๋ก ๊ตฌ์ฑ๋ ํ๋ฐํ ์ปค๋ฎค๋ํฐ๊ฐ ์๋ GitHub ์ ์ฅ์์ ๋ฐฉ๋ฌธํด ๋ณด์ธ์. ๋ฐ์ดํฐ ์ธํธ ๊ด๋ฆฌ์ ์ฝ๋ ์์ด ๋ชจ๋ธ์ ํ์ตํ ์ ์๋ Ultralytics Platform๊ณผ ๊ฐ์ ์ถ๊ฐ ๋ฆฌ์์ค๋ฅผ ์ดํด๋ณด๊ฑฐ๋, ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๊ฐ์ ์ป์ผ๋ ค๋ฉด Solutions ํ์ด์ง๋ฅผ ํ์ธํ์ธ์. ๊ณ์ ํ์ํ๊ณ , ๊ณ์ ํ์ ํ๋ฉฐ, YOLOv5์ ๋๋ผ์ด ๊ธฐ๋ฅ์ ์ฆ๊ฒจ ๋ณด์ธ์. ์ฆ๊ฑฐ์ด ํ์ง ๋์ธ์! ๐ ๐