YOLOv8 AzureML์ ๐
Azure๋ ๋ฌด์์ธ๊ฐ์?
Azure๋ ์กฐ์ง์ด ์ํฌ๋ก๋๋ฅผ ์จ-ํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ผ์ฐ๋๋ก ์ฎ๊ธธ ์ ์๋๋ก ์ค๊ณ๋ Microsoft์ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. ์ปดํจํ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์, ๋จธ์ ๋ฌ๋, ๋คํธ์ํน์ ํฌํจํ ๋ค์ํ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ด๋ฌํ ์๋น์ค ์ค์์ ์ ํํ์ฌ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ๋ฐ ํ์ฅํ๊ฑฐ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค.
AzureML(Azure ๋จธ์ ๋ฌ๋)์ด๋?
์ผ๋ฐ์ ์ผ๋ก AzureML์ด๋ผ๊ณ ํ๋ Azure ๊ธฐ๊ณ ํ์ต์ ๋ฐ์ดํฐ ๊ณผํ์์ ๊ฐ๋ฐ์๊ฐ ์์ธก ๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ํฌํจํ ์ ์๋๋ก ์ง์ํ๋ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค๋ก, ์กฐ์ง์ด ๋๊ท๋ชจ ๋ฐ์ดํฐ ์งํฉ์ ์ฌ์ฉํ๊ณ ํด๋ผ์ฐ๋์ ๋ชจ๋ ์ด์ ์ ๊ธฐ๊ณ ํ์ต์ ์ ์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. AzureML์ ๋จธ์ ๋ฌ๋์ ๋ํ ์ ๊ทผ์ฑ, ์ฌ์ฉ ํธ์์ฑ, ํ์ฅ์ฑ์ ๋ชฉํ๋ก ํ๋ ๋ค์ํ ์๋น์ค์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์๋ํ๋ ๋จธ์ ๋ฌ๋, ๋๋๊ทธ ์ค ๋๋กญ ๋ชจ๋ธ ํ์ต๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ ฅํ Python SDK๋ฅผ ์ ๊ณตํฉ๋๋ค.
AzureML์ YOLO ์ฌ์ฉ์์๊ฒ ์ด๋ค ์ด์ ์ด ์๋์?
YOLO (You Only Look Once) ์ฌ์ฉ์๋ฅผ ์ํด AzureML์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ตํ๊ณ ๋ฐฐํฌํ ์ ์๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ๋น ๋ฅธ ํ๋กํ ํ์ ์ ์คํํ๊ฑฐ๋ ๋ ๊ด๋ฒ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ์ฅํ๋ ค๋ ๊ฒฝ์ฐ, AzureML์ ์ ์ฐํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ํ๊ฒฝ์ ์ฌ์ฉ์์ ํ์์ ๋ง๋ ๋ค์ํ ๋๊ตฌ์ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. AzureML์ ํ์ฉํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค:
- ๊ต์ก์ ์ํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ๊ธฐ๋ฅ ์ ํ, ๋ชจ๋ธ ํ์ต์ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ๋ฅผ ํ์ฉํ์ธ์.
- ๋ชจ๋ธ ๋ฐ ๋ฐ์ดํฐ์ ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํฌํจํ๋ ์ด์ ๊ตญํ๋์ง ์๋ MLOps(๋จธ์ ๋ฌ๋ ์ด์) ๊ธฐ๋ฅ์ผ๋ก ๋์ฑ ํจ์จ์ ์ผ๋ก ํ์ ํ์ธ์.
๋ค์ ์น์ ์์๋ ์ปดํจํ ํฐ๋ฏธ๋ ๋๋ ๋ ธํธ๋ถ์์ AzureML์ ์ฌ์ฉํ์ฌ YOLOv8 ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ๋ ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์ ์ ์กฐ๊ฑด
์์ํ๊ธฐ ์ ์ AzureML ์์ ์์ญ์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํ์ธ์. ์๋ ๊ฒฝ์ฐ Azure์ ๊ณต์ ์ค๋ช ์์ ๋ฐ๋ผ ์ AzureML ์์ ์์ญ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์์ ์์ญ์ ๋ชจ๋ AzureML ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ ์ง์ค์ ๊ณต๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
์ปดํจํ ์ธ์คํด์ค ๋ง๋ค๊ธฐ
AzureML ์์ ์์ญ์์ ์ปดํจํ > ์ธ์คํด์ค ์ปดํจํ > ์๋ก ๋ง๋ค๊ธฐ๋ฅผ ์ ํํ๊ณ ํ์ํ ๋ฆฌ์์ค๊ฐ ์๋ ์ธ์คํด์ค๋ฅผ ์ ํํฉ๋๋ค.
ํฐ๋ฏธ๋์์ ๋น ๋ฅธ ์์
์ปดํจํ ์ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฝ๋๋ค:
๊ฐ์ ํ๊ฒฝ ๋ง๋ค๊ธฐ
์ฝ๋ค ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๊ณ ๊ทธ ์์ pip๋ฅผ ์ค์นํฉ๋๋ค:
ํ์ํ ์ข ์์ฑ์ ์ค์นํฉ๋๋ค:
YOLOv8 ์์ ์ํ
์์ธก:
์ด๊ธฐ ํ์ต๋ฅ 0.01๋ก 10๊ฐ์ ์ํฌํฌ์ ๋ํ ํ์ง ๋ชจ๋ธ์ ํ๋ จํฉ๋๋ค:
์์ธํ ์ฌ์ฉ ๋ฐฉ๋ฒ์ Ultralytics CLI ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ ธํธ๋ถ์์ ๋น ๋ฅธ ์์
์ IPython ์ปค๋ ์์ฑ
์ปดํจํ ํฐ๋ฏธ๋์ ์ฝ๋๋ค.
์ปดํจํ ํฐ๋ฏธ๋์์ ๋ ธํธ๋ถ์์ ์ข ์์ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์์ดํผ์ปค๋์ ๋ง๋ค์ด์ผ ํฉ๋๋ค:
conda create --name yolov8env -y
conda activate yolov8env
conda install pip -y
conda install ipykernel -y
python -m ipykernel install --user --name yolov8env --display-name "yolov8env"
ํฐ๋ฏธ๋์ ๋ซ๊ณ ์ ๋ ธํธ๋ถ์ ๋ง๋ญ๋๋ค. ๋ ธํธ๋ถ์์ ์ ์ปค๋์ ์ ํํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ ธํธ๋ถ ์ ์ ์ด๊ณ ํ์ํ ์ข ์์ฑ์ ์ค์นํ ์ ์์ต๋๋ค:
%%bash
source activate yolov8env
cd ultralytics
pip install -r requirements.txt
pip install ultralytics
pip install onnx>=1.12.0
์ฃผ์ํ ์ ์ source activate yolov8env
๋ฅผ ๋ชจ๋ %%bash ์
์ ์ ์ฉํ์ฌ %%bash ์
์ด ์ํ๋ ํ๊ฒฝ์ ์ฌ์ฉํ๋๋ก ํฉ๋๋ค.
๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๊ฐ์ง ์์ธก์ ์คํํฉ๋๋ค. Ultralytics CLI:
%%bash
source activate yolov8env
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
๋๋ Ultralytics Python ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๋ จํ ์ ์์ต๋๋ค:
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load an official YOLOv8n model
# Use the model
model.train(data="coco8.yaml", epochs=3) # train the model
metrics = model.val() # evaluate model performance on the validation set
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
path = model.export(format="onnx") # export the model to ONNX format
์์ ํฐ๋ฏธ๋ ์น์ ์ ์ค๋ช ๋ ๋๋ก YOLOv8 ์์ ์ ์คํํ๊ธฐ ์ํด Ultralytics CLI ๋๋ Python ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ฅผ ์ํํ๋ฉด ๋น ๋ฅธ ํ๊ฐํ์ ์ํด AzureML์์ YOLOv8 ์ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ต๋๋ค. ๋ ๊ณ ๊ธ ์ฌ์ฉ๋ฒ์ ์ด ๊ฐ์ด๋์ ์์ ๋ถ๋ถ์ ๋งํฌ๋ ์ ์ฒด AzureML ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
AzureML๋ก ์์ธํ ์์๋ณด๊ธฐ
์ด ๊ฐ์ด๋๋ AzureML์์ YOLOv8 ์ ์์ํ๊ณ ์คํํ๋ ๋ฐ ๋์์ด ๋๋ ์๊ฐ ์ญํ ์ ํฉ๋๋ค. ํ์ง๋ง ์ด ๊ฐ์ด๋๋ AzureML์ด ์ ๊ณตํ ์ ์๋ ๊ธฐ๋ฅ์ ์ผ๋ถ์ ๋ถ๊ณผํฉ๋๋ค. ๋จธ์ ๋ฌ๋ ํ๋ก์ ํธ์ ๋ํด ๋ ์์ธํ ์์๋ณด๊ณ AzureML์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ๋ค์ ๋ฆฌ์์ค๋ฅผ ์ดํด๋ณด์ธ์:
- ๋ฐ์ดํฐ ์์ฐ ๋ง๋ค๊ธฐ: AzureML ํ๊ฒฝ ๋ด์์ ๋ฐ์ดํฐ ์์ฐ์ ํจ๊ณผ์ ์ผ๋ก ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
- AzureML ์์ ์์ํ๊ธฐ: AzureML์์ ๋จธ์ ๋ฌ๋ ๊ต์ก ์์ ์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํฌ๊ด์ ์ธ ์ดํด๋ฅผ ์ป์ผ์ธ์.
- ๋ชจ๋ธ ๋ฑ๋กํ๊ธฐ: ๋ฑ๋ก, ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ํฌํจํ ๋ชจ๋ธ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ์์งํ์ธ์.
- AzureML Python SDK๋ก YOLOv8 ํ๋ จํ๊ธฐ: AzureML Python SDK๋ฅผ ์ฌ์ฉํ์ฌ YOLOv8 ๋ชจ๋ธ์ ํ๋ จํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋จ๊ณ๋ณ ๊ฐ์ด๋๋ฅผ ์ดํด๋ณด์ธ์.
- AzureML๋ก YOLOv8 ๊ต์ก CLI: ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํ์ฌ AzureML์์ YOLOv8 ๋ชจ๋ธ์ ๊ฐ์ํํ์ฌ ๊ต์ก ๋ฐ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.