덕배의 블로그
인공지능(AI) 딥러닝 YOLOv8 설치 및 커스텀 학습(파이썬 아나콘다 환경 설치 및 다운로드, 세팅) 본문
아나콘다 가상 환경 생성
아나콘다란?
아나콘다는 파이썬을 포함한 데이터 과학에 필요한 다양한 언어 및 패키지의 배포
장점은 프로젝트마다 다른 환경을 만드는데 편리하고 환경마다 필요한 패키지를 설치, 제거 및 변경하기에 용이하다.
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
자세하게 알고 싶다면 위에 사이트를 이용하자.
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 모델을 이용해 커스텀 학습을 하기 위해선 데이터셋이 필요하다.
인공지능 딥러닝 공부의 필요한 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 이름과 일치해야 한다.
한마디로 이미지와 텍스트 파일이 매치가 되어야 커스텀 학습을 할 수 있다.
커스텀 학습을 위해서 Yaml 파일이 꼭 필요하다.
Yaml 파일 안에는 이미지 경로를 알려줘야 하고 내가 몇 개를 detect 하고 싶은 지의 개수도 정해줘야 한다.
nc는 detect 할 객체 개수를 의미한다. 난 1개만 labeling 했기에 1개만 해보겠다.
그리고 data.yaml 파일 아래 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 커스텀 학습이 끝났다. 질문이 있다면 댓글 써주길 바란다.

'인공지능' 카테고리의 다른 글
엔비디아 NVIDIA Deepstream에 대해서 알아보자 (0) | 2023.07.08 |
---|---|
엔비디아 NVIDIA TensorRT에 대해서 알아보자 (0) | 2023.07.08 |
인공지능(AI) 딥러닝 YOLOv7 설치 및 커스텀 (아나콘다 환경) 학습해보기 (0) | 2023.07.08 |
인공지능(AI) 딥러닝 YOLO-NAS에 대해서 알아보자 (0) | 2023.07.08 |
인공지능(AI) roboflow으로 라벨링, 증강, 전처리, 학습 사용법 (0) | 2023.07.07 |