본문 바로가기
Object Detection

도커환경에서 ultralytics yolo v11 학습 및 검증

by pulluper 2025. 1. 16.
반응형

오늘은 ultralytics yolo v11 이 나온 기념으로 docker 를 만들고 그 안에서 학습 및 prediction 하는 방법을 알아보겠다. 


1) 깃 클론

https://github.com/ultralytics/ultralytics

 

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

 

cd ultralytics

2) 도커빌드 (도커 이미지 파일 만들기)  

ultralytics/yolov11 도커 이미지를 만드는 방법 

(주의 .git 이 있는 ultralytics로 가야한다)

docker build . -f docker/Dockerfile -t ultralytics/yolov11

 

docker images 명령어로 이미지 보기 

만들어진 ultralytics/yolov11 이미지가 보인다. 

 

이 스텝은 도커 풀 해도 무방


3) 도커 런 (도커 컨테이너 만들기)

- d 드라이브의 data 에 볼륨마운트 

- v /mnt/d/data:/usr/src/data ultralytics/yolov11 /bin/bash 에서 앞부분을 데이터가 있는 dir를 넣어주세용

docker run -itd --gpus all --restart always --name yolov11 -v /mnt/d/data:/usr/src/data ultralytics/yolov11 /bin/bash

4) 도커 어태치 (컨테이너로 들어가기)

docker attach yolov11
cd /ultralytics/

 

이제 coco 데이터를 학습해보자. 


5) config .yaml 파일 만들기

ultralytics > cfg > datasets > coco.yaml  로 가보자. 여기서 path 업데이트 (자신이 데이터 받고싶은곳으로) 

필자는 미리 마운트 해둔 데이터 경로로  '/usr/src/data/coco' 로 하였다.

coco.yaml 을 변경하면 자동으로 데이터 다운로드 및 학습이 시작된다. 

 

custom dataset 을 학습하기 위해서 .yaml format 에 맞게 자신의 데이터셋의 path/class 정보 넣어주면 된다.

아래는 coco.yaml 의 예


6) train.py 파일만들기 

gpu 는 RTX4090 (24GB) 기준으로 다음 코드를 진행한다. 

from ultralytics import YOLO

# 1. 학습 모델 선택 
model = YOLO('yolo11n.pt')

# 2. yaml 파일 선택
results = model.train(data='coco.yaml', batch=64, epochs=100, workers=0, imgsz=640, device=[0])

 


7) 학습 결과 

mAP 0.50-0.95 :: 0.05 결과로 약 0.38055 성능이 나왔다. official 성능보다는 약간 낮은 성능을 보인다. 

학습시간은약 70000초 20시간남짓이다. 


8) 레나 prediction 

import os
import wget
from ultralytics import YOLO

model = YOLO("yolo11n.pt") # or 학습한 .pt 데이터 
if os.path.isfile('lena.png'):
    print('File exists')
    pass
else:
    wget.download('http://www.hpca.ual.es/~vruiz/images/lena.png')
model.predict("lena.png", save=True, imgsz=320, conf=0.5)

 

그러면 runs/predict/lena.jpg 가 생깁니다. 

 

사실 https://docs.ultralytics.com/modes/#modes-at-a-glance 여기 다 있는내용! 


-끝-

반응형

'Object Detection' 카테고리의 다른 글

[Object Detection] torchvision faster rcnn 튜토리얼  (0) 2023.05.06

댓글