본문 바로가기

AI/Computer Vision

[Yolov10] Custom Data 실습 코드

728x90
반응형

 

실습 중 경량화된 Object Detection 모델이 필요했고, Yolov10 nano를 학습해보기로 했음

 

#1.  Yolov10 Git clone & 가상환경 세팅

경로 : /home/project/yolov10

https://github.com/THU-MIG/yolov10

 

GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]

YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024] - GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection [NeurIPS 2024]

github.com

 

git clone https://github.com/THU-MIG/yolov10.git

 

 

사용 중이던 가상환경에서는 버전 오류가 나길래 공식 Github의 Readme를 그대로 참고해서 가상환경 새롭게 만들었다

conda create -n yolov10 python=3.9
conda activate yolov10
pip install -r requirements.txt
pip install -e .

 

가상환경 이름 : yolov10

이런식으로 base 앞에 가상환경 이름이 뜨거나, base 없이 가상환경 이름이 터미널에 떠있어야 제대로 적용된 것이다

 

 

#2. Custom data 정리

 

Data는 해당 경로대로 지정해야한다

Images에는 이미지들, Labels에는 Yolov를 위한 라벨링 txt 파일들이 저장되어있다.

이미지, txt 저장 예시

 

(ex. ./data/images/test/2.jpg, ./data/labels/test/2.txt

images 와 labels 에 있는 파일들은 서로 매칭이 되어야함

 

비율은 Train 0.8 : Test 0.1 : Val 0.1 로 설정하였다

 

 

#3. Yaml 파일 제작

경로 : /home/project/yolov10.yaml

train:/data/images/train # train images
val:/data/images/val # val images
test: /data/images/test 

nc: 10  # number of classes
names : ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

 

train, val, test 인자 경로 맞춰주기

 

nc : 클래스 갯수

names : 클래스 이름

 

 

#4. 원하는 모델 .pt 파일 다운로드

경로 : /home/project/yolov10n.pt

https://docs.ultralytics.com/ko/models/yolov10/#key-features

 

YOLOv10

실시간 객체 감지를 통해 NMS를 없애고 효율성을 높여주는 최신 실시간 객체 감지 기술인 YOLOv10을 만나보세요. 낮은 컴퓨팅 비용으로 최고의 성능을 달성하세요.

docs.ultralytics.com

 

원하는 모델의 파란색 이름을 클릭하면 해당 모델에 맞는 .pt 파일을 다운로드 받을 수 있다

 

 

#5. 학습

!yolo task=detect mode=train epochs=50 batch=10 plots=True model='/home/project/yolov10n.pt' data=' /home/project/yolov10.yaml'

 

명령어 실행시켜주면 된다

model : 4번에서 다운 받은 모델 .pt

data : 3번에서 제작한 yaml 파일 경로

 

 

에폭이 진행되고 완료되었다는 글 이후에 저장된 last.pt와 best.pt 파일 경로가 출력된다

해당 경로에서 가중치 파일을 찾으면 된다!

728x90
반응형