본문 바로가기
YOLO

[YOLO] Windows 버전 설치 환경 구성

by hyonisera 2024. 12. 16.

신경망이란? 병렬로 작동하는 여러 계층의 노드 혹은 뉴런을 사용하여 일을 배우고 패턴을 인식하며 사람과 유사한 방식으로 의사결정을 하는 컴퓨터 프로그램

Darknet이란? Joseph Redmon이 독자적으로 개발한 신경망 프레임워크(neural network framework)로서 dnn(deep neural network)들을 학습시키고 실행할 수 있는 툴(framework)

YOLO란? 학습된 신경망(결과물) 중 하나, 빠르게 이미지에서 객체를 탐지하는 모델, 기존 모델들보다 더 높은 정확도를 추구하는 것이 아닌, 근접한 정확도를 가지면서 더 많은 양의 이미지를 처리할 수 있는 실시간 객체 탐지를 하고자 등장

 

YOLO는 주로 리눅스 환경에서 구동하지만 윈도우 환경에서 구동하기 위한 개발환경을 구성해보기로 한다.

 

<하드웨어 구성>

CPU : Intel i9-13900 2.00GHz

RAM : 32.0GB

OS : Windows 11 Pro 64비트 운영 체제

Graphics : NVIDIA GeForce RTX 4070 12GB

 

AI 프레임워크에는 Google에서 제작한 Tensorflow와 Meta에서 제작한 PyTorch가 있는데 YOLOv5부터는 PyTorch를 기반으로 개발되었다. PyTorch 패키지를 GPU와 연동하기 위해서는 Tensorflow와 같이 CUDA, cuDNN을 설치해야 한다.

 

개발환경을 구축하기 위한 SW버전들은 서로 호환성이 있는 버전들로 구성해야 한다.

YOLOv5

CUDA 11.8

cuDNN 8.7

Python 3.11.0
PyTorch 2.5.1

 

※ NVIDIA 계열의 그래픽카드(GPU)가 컴퓨터에 있어야 함 (그래픽 메모리 4GB 이상 권장). 없어도 CPU 버전으로 빌드 및 실행은 가능하지만 매우 느림.

그래픽카드가 없는 경우에는 CUDA 설치할 필요 없음

 

<Python 기반 PyTorch 라이브러리를 사용하는 YOLOv5를 설치하는 방법(아나콘다 사용)>

 

STEP 2. Python 다운로드 : 버전: 3.13.1

설치 중 Add Python to PATH 옵션 체크해야 cmd에서 바로 파이썬 명령을 실행할 수 있다. 환경변수에 python.exe 파일을 등록하지 않으면 직접 python.exe 파일이 위치하는 곳으로 이동해야 파이썬을 사용할 수 있다.

 

STEP 4. PyTorch와 호환되는 CUDA 버전 확인 : https://pytorch.org/

(나중을 위해) Tensorflow와 호환되는 CUDA, cuDNN 버전 확인 : https://www.tensorflow.org/install/source#gpu

CUDA 11.8, cuDNN 8.7 설치 예상

 

STEP 3. CUDA 설치

CUDA를 사용하기 위해서는 CUDA 버전과 cuDNN, PyTorch 버전을 맞춰줘야 한다.

 

1. Compute Capability, CUDA SDK 버전 확인

Compute Capability란? 어떤 Graphic card의 계산 능력을 나타내는 지표

https://developer.nvidia.com/cuda-gpus 에서 GPU에 해당하는 Compute Capability 확인

GeForce RTX 4070의 경우 8.9

 

https://en.wikipedia.org/wiki/CUDA#GPUs_supported 에서 GPU Compute Capability에 맞는 CUDA SDK 버전 확인

Dec. 2024

Compute Capability 8.9의 경우 CUDA SDK 11.8 이상

 

2. NVIDIA Graphic Driver 설치 (이미 설치되어 있는 경우 패스 및 버전 확인)

https://www.nvidia.com/en-us/drivers/ 에서 GPU에 해당하는 그래픽 드라이버 선택하여 설치 (Type : GRD, CUDA 설치시 특정 타입 필요 없으므로 일반적으로 설치하는 드라이버 GRD)

 

GPU 드라이버 버전 확인 : 560.94

1) Windows + R - dxdiag - 디스플레이 탭

2) NVIDIA 제어판 - 시스템 정보 - 드라이버 버전

3) 명령어 nvidia-smi

이 드라이버는 CUDA 12.6까지 지원한다는 것을 알 수 있다.

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 에서 드라이버 버전 별로 지원하는 CUDA 버전 재확인

 

3. CUDA Toolkit 설치

버전 호환을 위해 11.8로 설치하기로 했다.

https://developer.nvidia.com/cuda-toolkit-archive 에서 버전을 찾아 옵션 선택하여 설치

Installer Type은 되도록 exe(local)로 진행하는 것이 좋음. local은 설치에 필요한 모든 파일을 exe 형태로 제공. network 타입은 최소한의 파일을 제공한 뒤, 네트워크를 통해 설치하는 것이므로, local 타입보다 오류 발생 가능성 높음.

 

설치시 기본 경로로 진행 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

해당 경로는 cuDNN 설치를 위해 기억

nvcc --version 명령어로 CUDA 설치 확인

 

STEP 4. cuDNN 설치

cuDNN이란? CUDA Toolkit 위에서 동작하는 GPU 가속화 라이브러리. 딥러닝 프레임워크에서 신경망 계산을 최적화하는 데 사용된다. cuDNN은 TensorFlow, PyTorch, Caffe와 같은 딥러닝 프레임워크에서 활용되어, GPU를 이용한 신경망의 학습 및 추론 속도를 크게 향상시킨다.

 

https://developer.nvidia.com/cudnn-archive 에서 해당 버전 설치 : v8.7.0

 

압축 해제하여 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 에 복사붙여넣기

 

CUDA_PATH가 정상적으로 환경변수에 추가되었는지 확인

 

STEP 5. Anaconda 설치 및 가상환경 활성화

가상환경은 패키지의 버전과 다른 패키지와의 의존성을 관리하기 위해 매우 중요한 기능이다. 파이썬에서 가상 환경을 만드는 방법은 대표적으로 venv 명령을 사용하는 방법과 Anaconda를 사용하는 방법이다.

아나콘다란? Anaconda, Inc에서 제공하는 패키지와 가상 환경, 개발 도구를 쉽게 사용할 수 있도록 파이썬 환경을 제공하는 소프트웨어이다. 아나콘다를 이용하면 아나콘다 프롬프트를 통해 파이썬을 명령 단위로 쉽게 사용할 수 있는 명령줄 실행 환경을 제공하고, 아나콘다 네비게이터를 통해 파이썬 가상 환경을 쉽게 UI 화면을 통해 쉽게 생성하고, 패키지 설치와 삭제를 쉽게 할 수 있도록 돕는다. 또한 파이썬 개발을 위해 필요한 개발 도구들을 선택된 가상 환경에 맞게 설치해주어 쉽게 파이썬 개발 환경을 구성할 수 있다.

 

아나콘다 가상환경 상에서 파이토치를 설치하여 YOLO를 구축해야 한다.

1. 아나콘다 설치

설치시 Add Anaconda3 to my PATH environment variable 체크X

처음에 체크했다가 파이썬 버전이 충돌하여 cmd창에 python --version 명령어를 입력하면 3.12.7이 뜨고, py -0 명령어를 입력하면 3.13이 뜨는 혼돈이 발생했다.

 

체크했다면 Anaconda3 삭제 후 재설치 - 안전제거를 위해 Everything 사용하여 Uninstall 실행파일 찾고 실행

마지막 줄이 아직 남아있으므로 없애야 한다.

앱 실행 별칭 관리에서 파이썬 관련 항목을 전부 비활성화하면 원래대로 돌아온 것을 확인할 수 있다.

 

2. 가상환경 만들기

Environments - create - 원하는 파이썬 버전 선택

 

3. Anaconda Prompt에서 가상환경 활성화

// 가상환경 목록 확인
conda env list

// 가상환경 활성화
conda activate 가상환경이름

// 가상환경 비활성화
conda deactivate

 

STEP 6. PyTorch 설치

Anaconda Prompt를 켜고 가상환경 상에 PyTorch를 설치하면 된다.

Run this Command 명령어를 입력해 pytorch, torchvision, torchaudio를 설치한다.

설치에 실패했을 경우 conda clean --all 명령어로 캐시를 지운 후 다시 시도

파이썬 버전 호환 문제인 것 같아 다운그레이드를 시도했다. conda install python=3.11.0

파이썬 버전을 낮추니 파이토치가 설치되었다.

pytorch 설치 확인

아래 명령을 통해 GPU가 잘 인식되는지 확인한다.

 

STEP 7. YOLOv5 설치

https://github.com/ultralytics/yolov5

 

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com

해당 가상환경에 명령어를 입력해 필요한 패키지들을 다운로드 받는다.

git clone https://github.com/ultralytics/yolov5.git
cd yolov5
type requirements.txt
pip install -r requirements.txt

 

간단한 예제를 통해 설치 확인한다.

1. 이미지

python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images/zidane.jpg
cd runs\detect\exp
zidane.jpg

결과가 잘 나오는 것을 확인할 수 있다.

 

2. 웹캠

python detect.py --source 0

 

※ 아나콘다에서 라이브러리를 설치하는 방법에는 아나콘다의 독자적인 명령어 conda를 사용하는 방법과 파이썬의 pip를 이용하는 방법이 있다. 하지만 conda 명령어로는 잘 설치되지 않는 경우가 종종 있다. 이로 인해 conda와 pip를 혼용하면 나중에 라이브러리 관계가 복잡해질 수 있다. 따라서 내 컴퓨터에서 직접 실행하는 경우에는 주피터 노트북을 제외한 모든 라이브러리 설치에 pip를 사용하는 것을 추천한다.

 

 

 

<Pycharm 사용한 버전(.venv 사용) + 딥러닝 예제>

딥러닝이란? 여러 층의 뉴런과 방대한 양의 데이터 즉, 빅데이터를 포함하는 심층적인 신경망. 이 고급 유형의 머신러닝은 복잡하고 비선형적인 문제를 해결할 수 있고 NLP(자연어 처리), 개인 디지털 도우미 및 자율 운전 자동차 등 혁신적인 AI를 담당.

 

STEP 1. Python 3.11.0 버전 다운로드, Pycharm 다운로드

 

STEP 2. YOLOv5 깃허브 소스코드 다운로드 : https://github.com/ultralytics/yolov5

압축 해제 경로 D:\YOLOv5\yolov5-master

 

STEP 3. Roboflow에서 Dataset 다운로드

https://public.roboflow.com/

 

Computer Vision Datasets

Download free, open source datasets for computer vision machine learning models in a variety of formats.

public.roboflow.com

Synthetic Fruit Dataset 다운로드 및 압축해제 경로 D:\YOLOv5\yolov5-master\data\FruitDataset

 

STEP 4. Pycharm에서 YOLOv5 실행 : Virtualenv 가상환경

 

STEP 5. Pycharm 터미널에서 PyTorch 설치

 

STEP 6. 터미널에서 requirements.txt 설치

pip install -r requirements.txt

 

STEP 7. data.yaml의 train과 val 주소를 지정한 곳으로 변경

딥러닝할 준비 완료

 

STEP 8. 딥러닝(데이터 학습)

python train.py --img 416 --batch 16 --epochs 50 --data FruitDataset\data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name fruit_yolov5s_results

 

--img : 학습할 사진의 크기

사진 크기 확인하는 방법

--batch : 전체데이터를 얼만큼 쪼개서 학습할 건지를 지정

그래픽카드 성능에 따라 숫자 증감→ 16으로 설정

--epochs : 전체 데이터를 몇 회 반복 학습할 건지를 지정

--data : 데이터셋의 경로정보를 가지고 있는 yaml 파일 지정

--cfg : 학습에 사용할 모델의 설정파일(yaml 파일) 지정

--weights : 학습에 사용할 모델 파일 지정

--name : 학습결과를 저장할 폴더명

 

STEP 9. 테스트

약 30분 후 학습 결과

runs\train\fruit_yolov5s_results\weights 밑에 best.pt 파일이 트레이닝된 모델 결과

best.pt 파일을 사용해서 과일 인식 테스트

python .\detect.py --weight runs\train\fruit_yolov5s_results\weights\best.pt --img 416 --conf 0.5 --source 0

 

- Anaconda Prompt상에서 딥러닝 예제 실행하는 방법

http://stahlworks.com/dev/?tool=zipunzip 에서 unzip.exe와 zip.exe 다운받아서 파일탐색기의 C:\Windows\System32 경로로 옮긴 후, 아나콘다 프롬프트 C:\Users\user\yolov5\data\FruitDataset 위치에서 아래 명령어 실행 후 위와 똑같이 진행.

curl -L "https://public.roboflow.com/ds/MYuS45GwJZ?key=NC3Glor97T" -o roboflow.zip
unzip roboflow.zip
del roboflow.zip

 

 

 

<참고>

https://swiftcam.tistory.com/344

https://darkpgmr.tistory.com/170

https://periar.tistory.com/244

https://justweon-dev.tistory.com/79

https://stat-thon.tistory.com/104

https://wikidocs.net/254434

https://hoohaha.tistory.com/91

https://youtu.be/m4U-rOZZ_Lg?si=ROUOOWCefqleaOhJ