๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SW/์˜์ƒ์ฒ˜๋ฆฌ

YOLOv5) yolov5 ์‚ฌ์šฉํ•ด๋ณด๊ธฐ(test) (jupyter notebook)

23.08.11 ์ง‘ํ•„

 

 

์ผ๋‹จ anaconda์—์„œ ์ƒˆ๋กœ์šด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.

$ conda create -n yolo_test python=3.9.17

ํŒŒ์ด์ฌ ๋ฒ„์ „์€ 3.9.17๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.

 

 

 

$ python -m ipykernel --user --name yolo_test
$ conda activate yolo_test

์ด์ œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์—ด๊ณ , yolo๋ฅผ ๋ฐ›์•„์˜ฌ ์ค€๋น„๋ฅผ ํ•œ๋‹ค.

https://github.com/ultralytics/yolov5

 

GitHub - ultralytics/yolov5: YOLOv5 ๐Ÿš€ in PyTorch > ONNX > CoreML > TFLite

YOLOv5 ๐Ÿš€ in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com

์ด ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ๋ฅผ git cloneํ•  ์˜ˆ์ •์ธ๋ฐ, 

๊ฐ€์ƒํ™˜๊ฒฝ์ด ์œ ์ง€๋œ ์ฑ„๋กœ cd๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ฃผ๋กœ ์ด๋™ํ•ด์ค€๋‹ค.

 

$ git clone https://github.com/ultralytics/yolov5.git

๋งŒ์•ฝ ์ด ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด git์ด ์„ค์น˜๋˜์–ด์žˆ์ง€ ์•Š์€๊ฑฐ๋‹ค. git์„ ์„ค์น˜ํ•˜๊ณ  ์žฌ๋ถ€ํŒ…ํ•˜์ž.

 

 

ํ•„์ˆ˜ ํŒจํ‚ค์ง€ ๋‹ค์šด

์ด์ œ ์ƒˆ๋กœ ๋งŒ๋“  ๊ฐ€์ƒํ™˜๊ฒฝ์œผ๋กœ ipynb ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ , ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ํ•œ๋‹ค.

!pip install -r ./yolov5/requirements.txt
!pip install utils torch

์•„๋งˆ torch๋Š” ์„ค์น˜๊ฐ€ ์•ˆ๋ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๊ฑด ๋”ฐ๋กœ pip install torch ํ•˜๋ฉด ๋œ๋‹ค.

 

์‚ฌ์‹ค์ƒ ์ค€๋น„๋Š” ์ด๊ฑธ๋กœ ๋๋‚ฌ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ์œ„์˜ ๊นƒํ—ˆ๋ธŒ์— ๋‹ค ์ ํ˜€์žˆ๋‹ค

ํ•˜์ง€๋งŒ ๋ˆˆ์•Œ๊ณผ ์ž…์— ์ฒ™ํ™”๋น„๋ฅผ ์„ธ์šด ๋‚˜๋กœ์„œ๋Š” ๋ชป์•Œ์•„ ๋จน์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋ฏธ๋ž˜์˜ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ธ€์„ ๋‚จ๊ฒจ๋‘์ž๋ฉด, 

 

 

 

yolov5ํ…Œ์ŠคํŠธ

!python ./yolov5/detect.py --weights yolov5s.pt --source 0

์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, yolov5์— ๊ธฐ๋ณธ์œผ๋กœ ํ•™์Šต๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด webcam์˜ ์˜์ƒ์„ ๋ถ„์„ํ•œ๋‹ค.

webcam์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”, --source ์˜ต์…˜ ๋•Œ๋ฌธ์ธ๋ฐ, ์•„๋ž˜์˜ ๊ธ€์„ ์ฐธ์กฐํ•˜์ž.

yolov5 github

 

๋˜ํ•œ, yolov5s.pt๋ผ๊ณ  ๋˜์–ด์žˆ๋Š” *.pt ํ™•์žฅ์ž๋Š”, yolo ํ•™์Šต ์‹œ ๋‚˜์˜ค๋Š” ํ•™์Šต๋ฐ์ดํ„ฐ๋‹ค.  ๊ทธ ์ค‘์—์„œ๋„, s๋Š” ๋ชจ๋ธ์˜ ํฌ๊ธฐ๋ฅผ ๋งํ•˜๋Š”๊ฑฐ๋‹ค.

yolov5 github

n < s < m < l < x ํฌ๊ธฐ๋กœ ๋ชจ๋ธ์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉฐ, ์ •ํ™•ํ•˜๊ณ  ๋ฌด๊ฑฐ์›Œ์ง„๋‹ค.

์ด๋“ค์€ git clone์‹œ ๊ฐ™์ด ๋”ฐ๋ผ์˜ค์ง€ ์•Š์œผ๋ฉฐ, ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์ž‘์„ฑ์‹œ์—๋Š” ์ž๋™์œผ๋กœ github์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 

๊ฒฐ๊ณผ ์‚ฌ์ง„์€ ์œ„์™€ ๊ฐ™๋‹ค.

s๋ชจ๋ธ์„ ์ผ์Œ์—๋„ ๊ฝค๋‚˜ ์ •ํ™•ํ•˜๊ณ , ํ”„๋ ˆ์ž„์€ ์ข€ ๋–จ์–ด์ง„๋‹ค. ๋ฌผ๋ก  ์ง„ํ–‰ํ•œ ์ปดํ“จํ„ฐ์˜ ์„ฑ๋Šฅ์ด ์ข€ ๋–จ์–ด์ง€๊ธด ํ•œ๋‹ค.

q๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ฐฝ์ด ๋‹ซํžˆ๋ฉฐ, ํƒ์ง€๋˜์—ˆ๋˜ ๊ฐ์ฒด๋ฅผ ํ”„๋ ˆ์ž„๋งˆ๋‹ค ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

 

 

yolov5 segmentation ํ…Œ์ŠคํŠธ

!python ./yolov5/segment/predict.py --weights yolov5s-seg.pt --conf 0.25 --source 0

์‚ฌ๊ฐ ์˜์—ญ ํ‘œ์‹œ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ, ๋ˆ„๋ผ๋ฅผ ๋”ฐ์ค€๋‹ค.

์•„์ง ๋งŽ์ด ํ•ด๋ณด์ง€ ์•Š์•„์„œ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์ดํ›„์— ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •.