Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

덕배의 블로그

인공지능(AI) 딥러닝 YOLOv8 설치 및 커스텀 학습(파이썬 아나콘다 환경 설치 및 다운로드, 세팅) 본문

인공지능

인공지능(AI) 딥러닝 YOLOv8 설치 및 커스텀 학습(파이썬 아나콘다 환경 설치 및 다운로드, 세팅)

김덕배_KDB 2023. 7. 7. 23:58
반응형

아나콘다 가상 환경 생성

아나콘다란?

아나콘다는 파이썬을 포함한 데이터 과학에 필요한 다양한 언어 및 패키지의 배포

 

장점은 프로젝트마다 다른 환경을 만드는데 편리하고 환경마다 필요한 패키지를 설치, 제거 및 변경하기에 용이하다.

 

 

 

 

Anaconda | The World’s Most Popular Data Science Platform

Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

www.anaconda.com

 

 

자세하게 알고 싶다면 위에 사이트를 이용하자.

 

설치 처음 화면
next, i agree
설치 중 중요한 부분
가장 중요한 부분이다

 

PATH는 무조건 체크해 준다. 나중에 이거 체크 안 했다가 나도 삭제하고 다시 설치했다. 

 

설치 완료
이렇게 설치가 끝났다.

 

아나콘다 가상 환경을 쓰면서 중요한 명령어들을 모아놨다. 참고하면 요긴하게 쓰인다.

conda —version을 통해서 버전을 확인하고

conda update anaconda={특정 버전}를 이용해서 버전 업데이트 python -m pip install —upgrade pip(파이썬 3.4부터는 PIP를 내장하고 있는데 자동 업데이트 방식은 아니라서 틈틈이 업데이트를 해주는 것이 좋다)

conda create —name [name] python=[version] → 가상 환경 생성

conda env list ->가상 환경 리스트

conda env remove -n [env name] ->가상 환경 삭제

conda activate [env name] ->가상 환경 활성화

conda install m2-base -> ls , linux 환경 만들고 싶을 때

conda install -c anaconda git → git clone 하고 싶을 때

conda install -c conda-forge → 자동으로 해당 환경에 이미 설치되어 있는 패키지 호환성 check

image = io.imread('image.jpg’) → 이미지 읽기

resized_image = transform.resize(image, (100, 100)) → 이미지 크기 변경

io.imsave('resized_image.jpg', resized_image) → 이미지 저장

 

 

이제 아나콘다를 설치했으니 환경을 세팅해야 한다.

처음에는 아나콘다 환경에서 가상 환경을 생성한다.

아래 코드를 보고 따라 하면 좋을 듯하다. 밑에 설명란이 다 있으니 따라오길 바란다.

 

(base) C:\Users\gerra>conda --version
conda 23.3.1

(base) C:\Users\gerra>conda create --name Yolov8 python=3.8.16
Retrieving notices: ...working... done
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 23.3.1
  latest version: 23.5.0

Please update conda by running

    $ conda update -n base -c defaults conda

Or to minimize the number of packages updated during conda update use

     conda install conda=23.5.0



## Package Plan ##

  environment location: C:\Users\gerra\anaconda3\envs\Yolov8

  added / updated specs:
    - python=3.8.16


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2023.05.30 |       haa95532_0         120 KB
    libffi-3.4.4               |       hd77b12b_0         113 KB
    openssl-3.0.9              |       h2bbff1b_0         7.4 MB
    pip-23.1.2                 |   py38haa95532_0         2.8 MB
    python-3.8.16              |       h1aa4202_4        18.9 MB
    setuptools-67.8.0          |   py38haa95532_0         1.0 MB
    wheel-0.38.4               |   py38haa95532_0          83 KB
    ------------------------------------------------------------
                                           Total:        30.4 MB

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/win-64::ca-certificates-2023.05.30-haa95532_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_0
  openssl            pkgs/main/win-64::openssl-3.0.9-h2bbff1b_0
  pip                pkgs/main/win-64::pip-23.1.2-py38haa95532_0
  python             pkgs/main/win-64::python-3.8.16-h1aa4202_4
  setuptools         pkgs/main/win-64::setuptools-67.8.0-py38haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.41.2-h2bbff1b_0
  vc                 pkgs/main/win-64::vc-14.2-h21ff451_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
  wheel              pkgs/main/win-64::wheel-0.38.4-py38haa95532_0


Proceed ([y]/n)? y


Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate Yolov8
#
# To deactivate an active environment, use
#
#     $ conda deactivate


(base) C:\Users\gerra>conda activate Yolov8

(Yolov8) C:\Users\gerra>

 

맨 앞에 보면 base라고 되어있는데 우리는 지금 base라는 환경에 있는 것이다. base 말고 다른 환경을 만들기 위해 Yolov8이라는 이름으로 가상 환경을 생성한다.

 

conda create --name Yolov8 python=3.8.16

 

그리고 바로 Yolov8 가상 환경으로 이동

 

(base) C:\Users\gerra>conda activate Yolov8
(Yolov8) C:\Users\gerra>

 

여기서 밑에 있는 순서대로 설치하면 된다.

 

1. 파이썬 3.8.16 설치

2. cuda 11.7 version 설치 ( prompt환경에서 nvcc -V , nvidia-smi로 버전 확인)

3. cuDNN 8.9.0 version 설치 (/usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2)

- 중요 cuda 11.7 버전 받은 곳에 NVIDIA GPU Computing Toolkit에 cuDNN 받은 파일을 압축 해제 한 파일들을 11.7 파일에 복사 붙여 넣기 합니다.

4. pytorch 2.0.0 version 설치

 

 

파이토치 한국 사용자 모임 (PyTorch Korea User Group)

파이토치 한국 사용자 모임에 오신 것을 환영합니다. 딥러닝 프레임워크인 파이토치(PyTorch)를 사용하는 한국어 사용자들을 위해 문서를 번역하고 정보를 공유하고 있습니다.

pytorch.kr

 

설치 후 설치가 완료되었는지 버전 확인은 필수이다.

 

예를 들어봤다.
import torch
x = torch.rand(5, 3)
print(x)
torch.cuda.is_available() - 이게 true가 나와야 성공적이다.

 

5. Yolov8 설치

 

pip install ultralytics

 

 yolov8이 설치되어 있는지 확인하려면 yolo라고 치면 밑에 처럼 뜨면 성공이다.

 

C:\Windows\system32>yolo

    Arguments received: ['yolo']. Ultralytics 'yolo' commands use the following syntax:

        yolo TASK MODE ARGS

        Where   TASK (optional) is one of ('detect', 'segment', 'classify', 'pose')
                MODE (required) is one of ('train', 'val', 'predict', 'export', 'track', 'benchmark')
                ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
                    See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'

    1. Train a detection model for 10 epochs with an initial learning_rate of 0.01
        yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01

    2. Predict a YouTube video using a pretrained segmentation model at image size 320:
        yolo predict model=yolov8n-seg.pt source='https://youtu.be/Zgi9g1ksQHc' imgsz=320

    3. Val a pretrained detection model at batch-size 1 and image size 640:
        yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640

    4. Export a YOLOv8n classification model to ONNX format at image size 224 by 128 (no TASK required)
        yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128

    5. Run special commands:
        yolo help
        yolo checks
        yolo version
        yolo settings
        yolo copy-cfg
        yolo cfg

    Docs: https://docs.ultralytics.com
    Community: https://community.ultralytics.com
    GitHub: https://github.com/ultralytics/ultralytics

 

이제 환경 세팅이 완료되었으니 데이터셋을 준비해야 한다.

Yolov8 모델을 이용해 커스텀 학습을 하기 위해선 데이터셋이 필요하다.

 

dataset 준비
test,train,valid 데이터 셋을 준비해야한다.

 

 

인공지능 딥러닝 공부의 필요한 roboflow으로 라벨링, 증강, 전처리, 학습 사용법

Roboflow란? 인공지능을 돌리기 위한 Labeling, 학습을 도와주는 툴이다. 무료와 유로로 이용이 가능하다. https://roboflow.com/ Roboflow: Give your software the power to see objects in images and video With just a few dozen exam

rkdtmdqja98.tistory.com

 

혹시 roboflow를 처음 접하거나 다시 배우고 싶다면 위 사이트에서 다시 보는 것을 추천한다.

train, valid, test는 images와 txt파일로 이루어져 있어야 한다.

이해하기 어려운 사람들을 위해 쉽게 말하자면 1개의 image의 이름이 txt 이름과 일치해야 한다.

한마디로 이미지와 텍스트 파일이 매치가 되어야 커스텀 학습을 할 수 있다.

 

dataset 분류
위에 그림처럼 test 안에는 image와 txt 파일이 있어야한다.

 

커스텀 학습을 위해서 Yaml 파일이 꼭 필요하다.

Yaml 파일 안에는 이미지 경로를 알려줘야 하고 내가 몇 개를 detect 하고 싶은 지의 개수도 정해줘야 한다.

 

yaml 파일 준비
3개의 데이터셋 경로가 맞는지 잘 확인한다.

 

nc는 detect 할 객체 개수를 의미한다. 난 1개만 labeling 했기에 1개만 해보겠다.

그리고 data.yaml 파일 아래 main.py를 들여다보겠다.

 

메인코드
main.py

 

model은 우리는 yolov8 n 모델을 사용할 것이기에 yolov8n을 썼고 

model.train에는 내가 라벨링 한 것만 detect 하고 싶기에 커스텀한 data.yaml 파일을 넣었고 epochs은 100번 했다.

여기서 epochs에 대한 개념을 모를 것 같아 개념을 써봤다.

 

 

💡 epoch

-모든 데이터가 한 번씩 예측 모델에 들어온 뒤 weight 값을 업데이트하는 주기

ex) 데이터 개수가 10000개이고, batch size가 20, epoch가 10이면, 1 epoch는 50 batch로 이루어져 있으며, 10 epoch니까 이걸 10번 반복한다

batch

-데이터를 몇 개씩 묶을 것인가

즉, 한 번에 처리할 이미지의 개수

배치 사이즈를 크게 늘려보면 CUDA error : out of Memory 에러가 뜬다.

 

이렇게 다 준비가 되었으면 아나콘다 환경에서 돌릴 일만 남았다.

 

python main.py

 

위에 코드가 실행되기 시작하면

실행 화면
컴퓨터가 학습하는 모습

 

이렇게 학습을 epoch 100번까지 기다린다 10분에서 15분 정도 걸린다.

 

실행 결과
결과

 

이렇게 Yolov8 커스텀 학습이 끝났다. 질문이 있다면 댓글 써주길 바란다.