YOLOv5 ๋น ๋ฅธ ์์ ๐
YOLOv5 ์ผ๋ก ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง์ ์ญ๋์ ์ธ ์์ญ์ผ๋ก ์ฌํ์ ์์ํ์ธ์! ์ด ๊ฐ์ด๋๋ YOLOv5 ์ ๋ง์คํฐํ๊ณ ์ ํ๋ AI ์ ํธ๊ฐ์ ์ ๋ฌธ๊ฐ๋ฅผ ์ํ ์ข ํฉ์ ์ธ ์ถ๋ฐ์ ์ด ๋ ์ ์๋๋ก ์ ์๋์์ต๋๋ค. ์ด๊ธฐ ์ค์ ๋ถํฐ ๊ณ ๊ธ ํ๋ จ ๊ธฐ๋ฒ๊น์ง ๋ชจ๋ ๊ฒ์ ๋ค๋ฃน๋๋ค. ์ด ๊ฐ์ด๋๊ฐ ๋๋๋ฉด ํ๋ก์ ํธ์ YOLOv5 ์ ์์ ์๊ฒ ๊ตฌํํ ์ ์๋ ์ง์์ ๊ฐ์ถ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์์ง์ ๋ถ์ ๋ถ์ด๊ณ YOLOv5 ์ผ๋ก ๋ ์์ค๋ฅด์ธ์!
์ค์น
๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ๊ณ ํ๊ฒฝ์ ์ค์ ํ์ฌ ์ถ์๋ฅผ ์ค๋นํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ํ ๋ชจ๋ ์๊ตฌ ์ฌํญ์ด ์ค์น๋ฉ๋๋ค. ๋ค์ ์ฌํญ์ ํ์ธํ์ธ์. Python>=3.8.0 ๋ฐ PyTorch>=1.8 ์ด ์ค๋น๋์๋์ง ํ์ธํฉ๋๋ค.
git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependencies
๋ฅผ ์ฌ์ฉํ ์ถ๋ก PyTorch Hub
์ต์ YOLOv5 ๋ฆด๋ฆฌ์ค์์ ๋ชจ๋ธ์ ์ํํ๊ฒ ๋ค์ด๋ก๋ํ ์ ์๋ 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.
detect.py๋ฅผ ์ฌ์ฉํ ์ถ๋ก
ํ๋ค์ค detect.py
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ์์ค์ ๋ํ ๋ค์ํ ์ถ๋ก ์ ์ํํ ์ ์์ต๋๋ค. ์๋์ผ๋ก ๋ค์์ ๊ฐ์ ธ์ต๋๋ค. ๋ชจ๋ธ ์ต์ YOLOv5 ๋ฆด๋ฆฌ์ค ๋ฅผ ํด๋ฆญํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์ ์ฅํ ์ ์์ต๋๋ค.
python detect.py --weights yolov5s.pt --source 0 # webcam
image.jpg # image
video.mp4 # video
screen # screenshot
path/ # directory
list.txt # list of images
list.streams # list of streams
'path/*.jpg' # glob
'https://youtu.be/LNwODJXcvt4' # YouTube
'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP stream
๊ต์ก
๋ณต์ YOLOv5 COCO ๋ฒค์น๋งํฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ ์ง์นจ์ ์ฐธ์กฐํ์ธ์. ํ์ํ ๋ชจ๋ธ ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ์ธํธ ์์ ์ง์ ๊ฐ์ ธ์จ ๊ฒ์
๋๋ค. YOLOv5 ๋ฆด๋ฆฌ์ค. V100 GPU ์์ YOLOv5n/s/m/l/x๋ฅผ ๊ต์กํ๋ ๋ฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๊ฐ 1/2/4/6/8์ผ์ด ์์๋ฉ๋๋ค. ๋ฉํฐGPU ์ค์ ์ด ๋ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค). ๊ฐ๋ฅํ ์ต๊ณ ์์ค์ --batch-size
๋๋ --batch-size -1
์ ๋ํ YOLOv5 ์๋ ๋ฐฐ์น ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ธ์. ๋ค์ ๊ธฐ๋ฅ ๋ฐฐ์น ํฌ๊ธฐ ๋ V100-16GB GPU์ ์ด์์ ์
๋๋ค.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128
yolov5s 64
yolov5m 40
yolov5l 24
yolov5x 16
๊ฒฐ๋ก ์ ์ผ๋ก, YOLOv5 ์ ๋ฌผ์ฒด ๊ฐ์ง๋ฅผ ์ํ ์ต์ฒจ๋จ ๋๊ตฌ์ผ ๋ฟ๋ง ์๋๋ผ ์๊ฐ์ ์ดํด๋ฅผ ํตํด ์ธ์๊ณผ ์ํธ์์ฉํ๋ ๋ฐฉ์์ ๋ณํ์ํค๋ ๋จธ์ ๋ฌ๋์ ํ์ ๋ณด์ฌ์ฃผ๋ ์ฆ๊ฑฐ์ด๊ธฐ๋ ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ์งํํ๋ฉด์ YOLOv5 ์ ํ๋ก์ ํธ์ ์ ์ฉํ๊ธฐ ์์ํ๋ฉด ๋๋ผ์ด ์ ์ ์ ๋ฌ์ฑํ ์ ์๋ ๊ธฐ์ ํ๋ช ์ ์ต์ ์ ์ ์ ์๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ์ธ์. ๋ ๋ง์ ์ธ์ฌ์ดํธ๋ ๋๋ฃ ์ ๊ตฌ์๋ค์ ์ง์์ด ํ์ํ๋ค๋ฉด, ํ๋ฐํ ๊ฐ๋ฐ์ ๋ฐ ์ฐ๊ตฌ์ ์ปค๋ฎค๋ํฐ๊ฐ ์๋ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ด๋ํฉ๋๋ค. ๊ณ์ ํ์ํ๊ณ , ๊ณ์ ํ์ ํ๊ณ , YOLOv5 ์ ๊ฒฝ์ด๋ก์์ ์ฆ๊ฒจ๋ณด์ธ์. ํ๋ณตํ ํํ์ด ๋์ธ์! ๐ ๐