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