NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    딥러닝 YoloV8 욜로 딥러닝 학습하는 방법. (How to train YoloV8 deep learning)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에 욜로 V8을 사용할 수 있게 [ 욜로 매치 ] 액션이 개선되었습니다. 욜로 매치 액션에서 YoloV8 딥러닝으로 학습된 모델을 사용하려면 먼저 개발 환경을 구성하고, 데이타셋을 만들어야 합니다. 그리고, 이 글을 참고하셔서 모델을 만들어야 사용이 가능합니다.

    [ 엔지엠 매크로에서 YoloV8 욜로 매치 사용 설정 ]

    [ 1. YoloV8 파이썬 개발 환경 구성 ]

    [ 2. Yolo 데이타셋 라벨링 방법 ]


    ※ 주의사항

    • 최소 300장 이상 학습해야 합니다. (몇장으로 학습해보고, 테스트 하려는 분들이 많은데요. 몇장으로 테스트 안됩니다.)
    • pt 파일은 모델입니다. 모델은 학습이 완료된 후 만들어지는 결과 파일로 이미지를 분석해서 학습된 이미지를 찾는 알고리즘의 집합입니다.
    • 엔지엠 매크로에서 사용하려면 pt 파일을 onnx로 변환해야 합니다. (엔지엠이 아닌 Python과 같은 언어에서는 pt 파일을 사용해도 됩니다.)

     

    개발 환경을 구성한 프로젝트 위치를 기준으로 설명하도록 하겠습니다. 프로젝트의 구조는 아래 그림에서 좌측을 참고하세요.

    RDkQa5W.jpg

     

     

    datasets 폴더안에 images폴더를 만들고, 이 안에 이미지와 라벨링된 파일이 존재해야 합니다.

    BY3asDx.jpg

     

     

    images폴더에는 train 폴더와 val 폴더를 각각 만들고, 데이타셋에서 사용한 모든 이미지를 복사해서 넣어줍니다. train 폴더와 val 폴더 모두요~

    0mju8IT.jpg

     

     

    labels 폴더의 train 폴더와 val 폴더안에는 라벨링된 txt 파일을 모두 넣어주세요.

    KJ3iaKb.jpg

     

     

    Visual Studio Code에서 새 파일을 추가하고, train.yaml 로 저장하세요. 그리고, 내용은 아래와 같이 입력해줍니다. Classes에 데이타셋을 만들 때 라벨링했던 이름들을 순서대로 입력해야 합니다. 순서가 달라지면 이름이 바뀔수도 있습니다.

     

    ※ 주의사항

    • 아래 내용에서 path, train, val의 경로는 자신의 환경에 맞게 수정해야 합니다. 99프로 에러나는 이유는 경로 문제입니다.
    # Ultralytics YOLO, AGPL-3.0 license
    # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
    # Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
    # Example usage: yolo train data=coco8.yaml
    # parent
    # ├── ultralytics
    # └── datasets
    #     └── coco8  ← downloads here (1 MB)
    
    # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
    path: ../datasets # dataset root dir
    train: images/train # train images (relative to 'path') 4 images
    val: images/val # val images (relative to 'path') 4 images
    test: # test images (optional)
    
    # Classes
    names:
      0: monster1
      1: monster2
    
    # Download script/URL (optional)
    # download: https://ultralytics.com/assets/coco8.zip
     

     

    train.py 파일을 하나 만들고, 아래와 같이 코딩 해주세요. 욜로 모델을 초기화할 때 사용할 기준 모델은 미리 다운로드 받아두어야 합니다. yolov8n.pt 모델은 [ ultralytics 사이트 ]에서 다운로드 받을 수 있습니다. 경로가 다르다면 아래 코드에서 YOLO('yolov8n.pt') 파일 경로를 직접 변경하세요.

    from ultralytics import YOLO
    
    model = YOLO('yolov8n.pt')
    model.train(data='train.yaml', epochs=3, device='cpu')
     

     

    이제 학습 시켜보도록 하겠습니다. 앞의 강좌에서 테스트했던 코드를 다시 열어서 아래와 같이 모델과 테스트용 이미지 경로만 변경하세요.

    from ultralytics import YOLO
    import cv2
    
    model = YOLO('E:/NGM work programs/01. darknet/CudaYolo/runs/detect/train/weights/best.pt')
    # model.export(format='onnx')
    
    for i in range(1):
        result = model('E:/NGM work programs/01. darknet/CudaYolo/datasets/images/train/syw0000.jpg', device='0', save=True, conf=0.5)
    
    plots = result[0].plot()
    cv2.imshow('plot', plots)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
     

     

    파이썬 코드를 실행하고 결과를 확인 해보세요. 학습할 때 설정할 수 있는 다양한 옵션에 따라 학습 품질은 천차만별입니다. 이 글은 기본적인 내용만 담고 있기 때문에 일부 환경에서는 인식율이 다소 떨어질 수 있습니다. 이런 경우에는 ultralytics 사이트의 가이드를 참고해서 cfg.yaml 파일을 만들고, 세부적인 옵션을 수정해야 할수도 있습니다. 간단하게 YoloV8 딥러닝 학습에 대해 알아봤는데요. 궁금한 내용이 있으시면 홈페이지의 [ 질문과 답변 게시판 ]에 질문을 올려주세요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.