[Yolov8] yaml파일을 이용하여 학습모델 만들기

2025. 2. 27. 23:31·Driving_Assistance_Device/기타

저번에 roboflow를 이용하여 dataset 파일인 yaml파일을 만들었는데, 이 파일들을 이용해 학습된 모델 파일(pt)을 만들 예정이다.

 

 

 

1. Yaml 파일

저번 글에는 yolov5 버전으로 다운로드하였는데, 사연이 생겨서 yolov8 버전으로 진행할 예정이다.

 

 

아무튼 다운을 받으면 이렇게 폴더가 하나 생길 것이다.

 

폴더 안에는 각각 내가 사전에 정해둔 trst, train, valid 폴더가 있고 yaml파일이 있다.

 

yaml파일을 들어가 보면

이렇게 되어있는데 저기 11~13라인의 test, train, val을 상황에 따라 수정해 주면 된다.

 

각 test, train, valid폴더가 어디 있는지 적어두는 곳인데 이는 각 폴더 안에 images 폴더 안에 있다.

 

 

그냥 편하게 절대경로로 바꿔서 적어놨다.

 

 

 

2. GPU 사용 여부 확인

import torch
print(torch.cuda.is_available())  
print(torch.cuda.device_count())  
print(torch.cuda.get_device_name(0))

 

다음 코드를 돌려 gpu 사용 여부를 확인한다.

 

대충 이렇게 뜨면 잘 된 거임

 

cuda 설정해줘야 하는데 매우 귀찮다.. 직접 검색해서 ㄱㄱ 아니면 상남자 외길인생 cpu한테 맡기는 방법도..

 

 

 

3. 학습 & 학습된 파일 확인 

yolo task=detect mode=train model=yolov8s.pt data=C:/Users/jaewo/2025project/gaze_detection/gaze_model-1/data.yaml epochs=150 imgsz=640 batch=16 device=0 workers=8 save=True save_period=10

이제 다음과 같이 터미널에 실행시켜 학습을 시키면 된다.

에포크는 그냥 150으로 해봤다.

 

 

만약 이런 화면이 쭉쭉 뜨고 있으면 잘 되고 있는 거다.

 

 

터미널 창을 새로 열어서 nvidia-smi 명령어를 실행시켰을 때, 우측 GPU-Util부분이 99%인 것으로 보아 GPU를 사용 중인 것을 확인할 수 있다. 

 

 

학습이 끝나면 runs 폴더가 생성된 것을 확인할 수 있으며, 해당 폴더를 들어가면

이렇게 여러 학습 모델 파일들이 있다. 여기서 best.py 파일이 최적 모델로 해당 모델을 사용하면 된다.

 

 

 

4. 결과

 

대충 어느 정도 잘 인식하는 것 같다.

 

중간마다 다른 눈동자가 아닌 다른 물건들도 인식하는 것 같은데. eyes 클래스 안에 pupils클래스가 있을 때만 인식하게 한다던지 하면 해결할 수 있을 것 같다.

 

사진도 60장 정도 대충 찍은 걸로 한거라 학습 데이터양도 늘리면 좋을 것 같다.

 

 

아무튼 로컬pc에서는 문제없이 잘 작동하는 것을 확인하였고 웹캠에서도 잘 인식하는 것을 확인했다.

 

문제는 라즈베리파이에서 실행시키니 연산량이 많아서 프레임이 못쓸 정도로 느리게 나온다.

 

아무튼 이 pt파일을 라즈베리파이에서 사용할 수 있게끔 헤일로로 돌릴 예정이다.

'Driving_Assistance_Device > 기타' 카테고리의 다른 글

[라즈베리파이4] 파이썬 설치  (0) 2025.02.27
[Roboflow] 학습 데이터셋 만들기  (0) 2025.02.21
[OpenCV] 동영상 자르기  (0) 2025.02.20
'Driving_Assistance_Device/기타' 카테고리의 다른 글
  • [라즈베리파이4] 파이썬 설치
  • [Roboflow] 학습 데이터셋 만들기
  • [OpenCV] 동영상 자르기
JaewonAhn
JaewonAhn
  • JaewonAhn
    JwAhn_Embedded
    JaewonAhn
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • MCU (21)
        • esp32 (6)
        • stm32 (15)
      • SW (30)
        • 백준 (27)
        • C, C++ (2)
        • 자료구조 (0)
        • 파이썬 (1)
      • Tool (2)
        • KiCAD (0)
        • Git (0)
        • Visual Studio Code (1)
        • CubeIDE (1)
      • Balancing robot (28)
        • HW (11)
        • FW&SW (2)
        • 일지 (13)
        • 이론공부 (1)
      • 1&2학년 (17)
        • 1학년(2021) (2)
        • 2학년(2022) (4)
        • [2022 03 ~ 09] IoT Project (8)
        • [2022 09 ~ 12] 융합 프로젝트 (3)
      • 2025(학부 3학년) (14)
        • 신호 및 시스템 (1)
        • 전자회로 (0)
        • 제어 및 AI 입문 (3)
        • 임베디드시스템 (8)
        • 기타 (2)
      • 잡솔 (3)
      • 군대 (7)
        • 이등병 (1)
        • 일병 (4)
        • 병장 (2)
      • Driving_Assistance_Device (14)
        • Hailo (7)
        • 일지 (3)
        • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    합성함수의 미분법
    vscode
    headerfile
    plotly
    10828
    백준
    arudino
    쇠막대기
    스택
    뇌절
    2학년
    WiFi.local() to char
    9012
    10845
    10799
    Arduino
    library
    10866
    nucelo
    이계도함수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JaewonAhn
[Yolov8] yaml파일을 이용하여 학습모델 만들기
상단으로

티스토리툴바