본문 바로가기
프로그래밍

3부 - 인공지능 매크로 모델 만들고 이미지 찾기

by 오토픽 2024. 8. 13.
반응형

안녕하세요. 업무 자동화 RPA 매크로 오토픽입니다.

욜로 매치 액션은 YoloV8 딥러닝으로 학습된 모델을 사용합니다.

먼저 개발 환경을 구성하고, 데이타셋을 만들어야 합니다. 그리고, 이 글을 참고해서 모델을 만들어야 사용이 가능합니다.

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

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


※ 주의사항

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

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

Visual Studio Code에서 새 파일을 추가하고, train.yaml 로 저장하세요.

그리고, 내용은 아래와 같이 입력해줍니다.

Classes에 데이타셋을 만들 때 라벨링했던 이름들을 순서대로 입력해야 합니다.

순서가 달라지면 이름이 바뀔수도 있습니다.

 

※ 주의사항

  • 아래 내용에서 path, train, val의 경로는 자신의 환경에 맞게 수정해야 합니다. 99프로 에러나는 이유는 경로 문제입니다.
  • 아래 코드는 첨부 파일의 yolo code.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 딥러닝 학습에 대해 알아봤는데요.

궁금한 내용이 있으시면 홈페이지의 [ 질문과 답변 게시판 ]에 질문을 올려주세요.

감사합니다.

 

https://youtu.be/ZYr2gHKtIL4

 

반응형