본문 바로가기
엔지엠 매크로

인공지능 무료 매크로 만들기 (욜로 딥러닝 사용)

by 업무자동화 2024. 9. 17.
반응형

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

오토픽 매크로에는 딥러닝 기능인 욜로 매치 액션이 포함되어 있습니다.

욜로 매치를 이용한 딥러닝 이미지 검출 방법은 일반적인 이미지 매크로가 찾을 수 없는 이미지를 찾게 해줍니다.

그리고, 손글씨나 캡챠(CAPTCHA)와 같은 자동 입력 방지 문자를 인식할 수 있습니다.

실제로 오토픽 매크로의 딥러닝을 이용해서 자동 거래 방지 문자를 풀고, 몬스터를 인식해서 사냥하는등등... 실 사용에 응용하시는 분들이 많습니다.

욜로 매치를 사용하려면 먼저 컴퓨터에 .NET 8을 설치해야 합니다. 설치 파일은 아래 링크에서 다운로드 하세요. Windows의 Arm64 또는 x64를 설치하세요.

.NET 8 다운로드 ]

 

 

 

우선, 파이썬 개발 환경을 만들어야 하는데요. Python(파이썬) 언어로 개발하려면 Visual Studio Code가 필요합니다.

아래 링크에서 다운로드하여 설치하세요.

비주얼 스튜디오 코드 다운로드 ]

 

 

 

다운로드가 완료되면 설치 파일을 더블 클릭하세요. 사용권 동의에 체크하고 Next 버튼을 클릭하세요.

 

 

 

C드라이브가 아닌 다른 위치에 설치해도 됩니다.

 

 

 

바탕화면에 바로가기를 추가하거나 탐색기에서 우클릭에 비주얼 스튜디오를 추가할 수 있습니다.

 

 

 

인스톨 버튼을 클릭해서 설치하세요.

 

 

 

YoloV8 딥러닝 환경을 구성할 때 쥬피터 노트북 환경에서 해도 되지만, 저는 로컬 컴퓨터에 셋팅하도록 하겠습니다.

우선, Anaconda(아나콘다)를 다운로드 받은 후 설치하세요.

아나콘다 다운로드 ]

 

 

 

다운로드가 완료되면 더블 클릭해서 설치를 시작하세요. 꼭 C드라이브에 설치할 필요는 없습니다.

 

 

 

Register Anaconda3 as my default Python 3.x 항목에 체크하세요.

파이썬은 안정적인 현재 버전으로 표시될겁니다.

 

 

 

마지막 Install 버튼을 클릭하면 설치가 진행됩니다.

생각보다 설치하는데 오래 걸리니 참고 기다려 보세요.

아나콘다 네비게이터가 실행됩니다.

 

 

 

이제 GPU를 사용하기 위해 Cuda와 cuDNN을 설치해야 합니다.

먼저 Cuda를 다운로드 받아서 설치하세요.

Cuda 버전은 11.x 버전으로 설치해야 합니다.

CUDA 11.8 다운로드 ]

 

 

 

Cuda 11.x 설치가 완료되면 cuDNN을 설치해야 하는데요.

아래 링크에서 압축 파일을 다운로드 받으세요.

cuDNN 다운로드 ]

 

 

 

cuDNN 압축을 풀고, 쿠다가 설치된 폴더에 내용을 모두 복사해서 붙여넣기 합니다. 이 때 덮어쓰기할지 물어보는데요. ""를 눌러서 덮어쓰세요.

  • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

 

 

 

이제 다시 아나콘다 네비게이터(Anaconda Navigator)로 돌아와서 비주얼 스튜디오 코드를 실행하세요.

아래 두번째줄 가운데에 있는 VSCode를 클릭하면 됩니다.

 

 

 

딥러닝에 사용할 파이토치(PyTorch)를 설치해줍니다.

예전에는 텐서플로우(TensorFlow)를 주로 사용했지만, 지금은 파이토치를 주로 사용합니다.

VSCode에서 작업 폴더를 만들고, 선택하세요.

그리고, 아래 사이트에서 자신의 컴퓨터 환경에 맞는 옵션들을 선택해야 합니다.

마지막에 Run this Command를 복사하세요.

파이토치 설치 환경 ]

 

 

 

그리고, 터미널에서 복사한 명령으로 PyTorch를 설치해줍니다. 설치하는데 꽤 오랜 시간이 소요되니 잠시 기다려주세요.

  • conda install pytorch torchvision torchaudio cpuonly -c pytorch (컴퓨터마다 명령이 다를 수 있습니다.)

 

중간에 계속 진행(Proceed)할지 물어봅니다. y를 입력하고, 엔터를 누르세요.

 

 

 

파이토치 설치가 완료되면, ultralytics를 설치하세요.

  • pip install ultralytics

 

 

 

필요한 패키지들을 자동으로 다운로드하고, 설치 해주므로 별다른 설정은 필요하지 않습니다.

ultralytics가 설치될 동안, YoloV8에서 사용할 모델 파일을 다운로드 받아줍니다.

참고로, YoloV3에서는 weights 모델을 사용했는데요.

YoloV8에서는 pt 모델과 CLI에서 사용할 수 있는 onnx 모델을 사용합니다.

아래 사이트에서 YOLOv8n을 다운로드하세요.

욜로 모델 다운로드 ]

 

 

 

VSCode에서 새 파일을 추가하고, cuda_yolo.py 파일을 하나 만드세요.

그리고, 아래와 같이 코딩 해줍니다.

  • from ultralytics import YOLO
  • import cv2
  • model = YOLO('E:/AutoPeak work programs/01. darknet/Yolo V8/yolov8n.pt')
  • for i in range(1):
  •     result = model.predict('E:/AutoPeak work programs/01. darknet/Yolo V8/bus.jpg', device='0', save=True, conf=0.5)
  • plots = result[0].plot()
  • cv2.imshow('plot', plots)
  • cv2.waitKey(0)
  • cv2.destroyAllWindows()

 

만약, 위 코드를 실행 했을 때 에러가 발생하면 CUDA가 설치되지 않았거나 그래픽 카드가 CUDA를 지원하지 않을 가능성이 있습니다.

CUDA 설치 및 cuDNN이 정상적으로 설치되어 있는지 체크해보세요.

만약, GPU 모드를 사용할 수 없는 환경이라면 아래와 같이 코드를 변경하고, 실행하세요.

  • result = model.predict('E:/AutoPeak work programs/01. darknet/Yolo V8/bus.jpg', device='cpu', save=True, conf=0.5)

 

테스트에 사용할 이미지를 다운로드하고, 위의 model.predict에 다운로드한 이미지 경로를 적어주세요.

 

 

 

파이썬을 실행하면 아래와 같이 오브젝트가 검출된걸 확인할 수 있습니다.

 

 

 

GPU 모드에서 처리 결과를 보면 아래와 같습니다.

대략 0.003초정도 걸렸네요.

그런데 전처리하는데 0.044초가 걸렸습니다.

  • image 1/1 E:\AutoPeak work programs\01. darknet\Yolo V8\bus.jpg: 640x480 3 persons, 1 bus, 43.9ms
  • Speed: 3.0ms preprocess, 43.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 480)
  • Results saved to [1mruns\detect\predict25

 

다른 이미지로 테스트 해볼까요? 아이브인데요. 사람으로 인식이 잘 됩니다.

 

 

 

강아지도 잘 인식이 되는군요.

 

 

 

이번에는 오토픽 매크로에서 검출을 테스트 해볼까요?

오토픽 매크로 에디터를 실행하고, 욜로 매치 액션을 추가하세요.

그리고, onnx 모델 파일을 선택하세요.

※ pt 모델을 onnx로 변경하려면 파이썬으로 아래 명령을 실행해야 합니다.

  • from ultralytics import YOLO
  • import cv2
  • model = YOLO('E:/AutoPeak work programs/01. darknet/CudaYolo/runs/detect/train/weights/best.pt')
  • model.export(format='onnx')

 

 

 

검출 결과 확인을 위해 아래와 같이 파일을 저장하세요.

 

 

 

그림판에 이미지를 하나 열고, 매크로를 실행 해보세요. 아래와 같이 인식이 되었는데요.

 

 

정확도를 50으로 낮추고 다시 실행 해보세요.

이제는 모든 오브젝트를 찾았습니다. 이미지에 따라서 다르겠지만, 정확도로 비교하면서 처리하면 될듯해요.

 

 

 

여기까지 간단하게 YoloV8 딥러닝 객체 검출을 위한 환경 구성 방법과 간단한 테스트를 진행했습니다.

다음에는 실전에서 사용할 수 있게 데이터를 수집해서 학습시키고, 오토픽 매크로에서 사용할 수 있도록 하는 방법을 알아보겠습니다.

감사합니다.

 

https://youtu.be/ZYr2gHKtIL4

 

반응형

댓글