NGMsoftware

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

    학습


    딥러닝 YoloV8 욜로 딥러닝 환경 구성하기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에는 딥러닝 기능인 [ 욜로 매치 ] 액션이 포함되어 있습니다. 욜로 매치를 이용한 딥러닝 이미지 검출 방법은 일반적인 이미지 매크로가 찾을 수 없는 이미지를 찾게 해줍니다. 그리고, 손글씨나 캡챠(CAPTCHA)와 같은 자동 입력 방지 문자를 풀수도 있습니다. 실제로 엔지엠 매크로의 딥러닝을 이용해서 자동 거래 방지 문자를 풀고, 몬스터를 인식해서 사냥하는등등... 실 사용에 응용하시는 분들이 있습니다.

    [ 필수 - 엔지엠 매크로에서 욜로8 셋팅 ]

     

    하지만, 엔지엠 매크로의 기계학습 및 딥러닝은 만든지가 오래된데다가 현재는 새로운 기술과 방식이 등장했습니다. 기존에는 YoloV3를 사용했기 때문에 최신 그래픽 카드를 지원하지 않는 문제가 있었습니다. 그래서, 이번에 최신 기술의 YoloV8을 추가했습니다. 이 내용을 같이 학습해보도록 하겠습니다.

     

    우선, 파이썬 개발 환경을 만들어야 하는데요. Python(파이썬) 언어로 개발하려면 Visual Studio Code가 필요합니다. 아래 링크에서 다운로드하여 설치하세요.

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

    Zdk83Yf.png

     

     

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

    mceclip1.png

     

     

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

    mceclip2.png

     

     

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

    mceclip4.png

     

     

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

    mceclip5.png

     

     

    YoloV8 딥러닝 환경을 구성할 때 쥬피터 노트북 환경에서 해도 되지만, 저는 로컬 컴퓨터에 셋팅하도록 하겠습니다. 우선, Anaconda(아나콘다)를 다운로드 받은 후 설치하세요.

    [ 아나콘다 다운로드 ]

    1kyS4ZP.png

     

     

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

    win-install-destination1.png

     

     

    Register Anaconda3 as my default Python 3.x 항목에 체크하세요. 파이썬은 안정적인 현재 버전으로 표시될겁니다.

    win-install-options1.png

     

     

    마지막 Install 버튼을 클릭하면 설치가 진행됩니다. 생각보다 설치하는데 오래 걸리니 참고 기다려 보세요. 아나콘다 네비게이터가 실행됩니다.

    No4fFHt.png

     

     

    이제 GPU를 사용하기 위해 Cuda와 cuDNN을 설치해야 합니다. 먼저 Cuda를 다운로드 받아서 설치하세요. Cuda 버전은 11.x 버전으로 설치해야 합니다.

    [ CUDA 11.8 다운로드 ]

    mbidCIJ.png

     

     

    Cuda 11.x 설치가 완료되면 cuDNN을 설치해야 하는데요. 아래 링크에서 압축 파일을 다운로드 받으세요.

    [ cuDNN 다운로드 ]

    b9KaFsG.png

     

     

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

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

    KYB6dss.png

     

     

    이제 다시 아나콘다 네비게이터(Anaconda Navigator)로 돌아와서 비주얼 스튜디오 코드를 실행하세요. 아래 두번째줄 가운데에 있는 VSCode를 클릭하면 됩니다.

    No4fFHt.png

     

     

    딥러닝에 사용할 파이토치(PyTorch)를 설치해줍니다. 예전에는 텐서플로우(TensorFlow)를 주로 사용했지만, 지금은 파이토치를 주로 사용합니다. VSCode에서 작업 폴더를 만들고, 선택하세요. 그리고, 아래 사이트에서 자신의 컴퓨터 환경에 맞는 옵션들을 선택해야 합니다. 마지막에 Run this Command를 복사하세요.

    [ 파이토치 설치 환경 ]

    TVJUyjZ.png

     

     

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

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

     

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

    Confirm Anaconda installation

     

     

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

    • pip install ultralytics

    VvQmpQQ.png

     

     

    필요한 패키지들을 자동으로 다운로드하고, 설치 해주므로 별다른 설정은 필요하지 않습니다. ultralytics가 설치될 동안, YoloV8에서 사용할 모델 파일을 다운로드 받아줍니다. 참고로, YoloV3에서는 weights 모델을 사용했는데요. YoloV8에서는 pt 모델과 CLI에서 사용할 수 있는 onnx 모델을 사용합니다. 아래 사이트에서 YOLOv8n을 다운로드하세요.

    [ 욜로 모델 다운로드 ]

    DVFSBnw.png

     

     

    VSCode에서 새 파일을 추가하고, cuda_yolo.py 파일을 하나 만드세요. 그리고, 아래와 같이 코딩 해줍니다.

    from ultralytics import YOLO
    import cv2
    
    model = YOLO('E:/NGM work programs/01. darknet/Yolo V8/yolov8n.pt')
    
    for i in range(1):
        result = model.predict('E:/NGM 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:/NGM work programs/01. darknet/Yolo V8/bus.jpg', device='cpu', save=True, conf=0.5)

     

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

    LEVhgjU.jpg

     

     

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

    RQsUhq7.jpg

     

     

    GPU 모드에서 처리 결과를 보면 아래와 같습니다. 대략 0.003초정도 걸렸네요. 그런데 전처리하는데 0.044초가 걸렸습니다.

    image 1/1 E:\NGM 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[0m

     

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

    UnBzkpj.png

     

     

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

    dw2ESYy.png

     

     

    이번에는 엔지엠 매크로에서 검출을 테스트 해볼까요? 엔지엠 매크로 에디터를 실행하고, 욜로 매치 액션을 추가하세요. 속도 측정을 위해 좀 복잡하게 되어 있는데요. 여러분들은 단순 테스트 용도이기 때문에 아래와 같이 만들 필요는 없습니다. 욜로 매치 설정만 확인하시면 됩니다.

    [ 필수 - 엔지엠 매크로에서 욜로8 셋팅 ]

    5YPjLq5.png

     

     

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

    W80mufw.png

     

     

    욜로 매치 딥러닝 엔진을 YoloV8로 선택하고, onnx 모델 파일을 선택하세요.

    h8uhzj1.png

     

     

    매크로를 실행하고, 결과를 확인 해보세요. 파이썬으로 코딩한것과 동일한 결과를 보여줍니다.

    lIWmrV9.jpg

     

    SsrVkHD.png

     

    hT3P15J.png

     

     

    여기까지 간단하게 YoloV8 딥러닝 객체 검출 방법에 대해 알아봤습니다. 다음에는 데이타셋 만드는 방법과 학습에 대해 알아볼께요. 그리고, CLI 환경에서 어떻게 사용해야 하는지도 알아보도록 하겠습니다. 기존의 YoloV3보다 발전된 기술이라서 그런지 모델 파일의 용량이 드라마틱하게 줄어든 모습입니다. 기존에 300메가하던 모델이 지금은 10메가도 안하니까요. 효율적인 측면과 속도, 품질등등... 많은 발전이 있었네요.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.