Yolo CLI

권도현·2025년 10월 4일

yolo를 쓰게된 이유는 캡스톤 디자인의 추론서버를 구축하기 위함이었다.
yolo모델을 만든 Ultralytics에서 제공하는 yolo cli를 활용해 손쉽고 빠르게 해충 이미지를 학습시키려고 한다.

pip install ultralytics

로 손쉽게 다운로드가 가능하다.
Yolo CLI는 YOLOv8부터 지원하기 시작했다고 한다.
물론 python api로 yolo를 import할순 있겠지만 CLI로 작업하면 훨씬 더 편하다.
사용법은 https://docs.ultralytics.com/ko/usage/cli/ 에 자세히 나와있다.

yolo TASK MODE ARGS

이와 같은 명령어 구조를 갖는다.

  • Task: 작업의 종류 (예: detect, segment, classify, pose)
  • Mode: 실행 모드 (예: train, val, predict, export)
  • Args: 그 외 파라미터 (예: model, data, epochs, imgsz 등)

예시) 이미지 크기 640에서 COCO8데이터 세트로 YOLO11n학습을 100 epoch 동안 시작하라

yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

예시에 나오는 coco8.yaml과 yolo11n.pt는 무엇일까?
우선 coco8.yaml파일부터 알아보자

데이터셋 설정 파일

yolo CLI에서 사용하는 데이터셋에 대한 설정파일은 yaml형식이다.
coco8.yaml은 기본적으로 제공하는 데이터셋 중 하나로, ultralytics 패키지 안에 연습 및 학습용으로 바로 실행 가능한 데이터셋 설정 yaml이 몇 가지 들어있다고 한다. 즉, data=xxx.yaml로 CLI를 실행하면 자동으로 다운로드와 학습이 가능한 것이다.

그러나 나는 해충 이미지를 학습에 사용해야하기 때문에 직접 데이터셋을 설정해줄 것이다.
데이터셋에는 이미지 데이터와 어노테이션(라벨) 데이터가 필요하다.
이미지의 형식은 OpenCV에서 지원하는 대부분의 형식을 지원하고 어노테이션의 경우에는 *.txt의 형식이어야 한다.

#labels/train/img1.txt
#labels/val/img2.txt

class x_center y_center width height
  • class: 정수값(0부터 시작하는 클래스 index)
  • x_center y_center: bbox의 박스 중심 좌표(이미지 대비 0~1 비율)
  • width height: bbox 가로 세로 크기(이미지 대비 0~1 비율)
dataset/
├── images/
│   ├── train/
│   └── val/
└── labels/
    ├── train/
    └── val/

데이터셋 폴더는 위와 같은 구조로 정렬돼야한다.
image/labels/최상위 폴더와 train/val/하위 폴더가 있어야한다.
다른 폴더 구조는 인식하지 않는다. 또한 반드시

images/train/img1.jpg
labels/train/img1.txt

처럼 이미지 파일명과 어노테이션 파일명이 일치해야한다.
이처럼 폴더 구조를 만들었다면 이제 data.yaml을 만들 차례이다.
data.yaml은 데이터 경로, 이미지 경로, 클래스 이름의 정의로 구성된다.

#데이터셋 경로(생략 가능)
path: ../mnt/c/User/사용자/datasets

#이미지 경로
train: images/train
val: images/val
test: images/test #테스트 이미지 경로(생략 가능)

#클래스 정보
names:
	0: class1
    1: class2
    2: class3
    3: class4
profile
weeeeeeeee!

0개의 댓글