본문 바로가기

창업성장기술개발(디딤돌) 연구 기록

[디딤돌] 연구 기록 3주차 - YOLOv5 설치

반응형

 

 

☞ 운영 체제 : Windows 10 Education 64비트 (10.0, 빌드 19043)
☞ CPU : AMD Ryzen 7 5800H with Radeon Graphics (16 CPUs), ~3.2GHz
☞ 그래픽카드 : NVIDIA GeForce RTX3070 Laptop GPU

 

 

☞ 설치 목록

  1. PyTorch 1.12.0
  2. YOLOv5

 

 

 


 

 

♣ 유의 사항 ♣

 

 

중간중간에 에러 발생 시 해결 방법을 적어두었는데 해당 방법과 똑같이 진행했는데도 에러가 나면 일단 끝까지 진행해보자. 그래도 에러가 발생하면 댓글로 남겨주기 바란다.

 

 

 

 


 

 

 

 

 

 

 

 

 

 

PyTorch

 

PyTorch 다운로드 사이트

https://pytorch.org/get-started/locally/

 

 

 

 

위 주소에 들어가면 다음과 같은 그림을 볼 수 있다. 내 운영체제는 윈도우 10이고 컴퓨터 언어로는 Python을 CUDA는 11.4 버전을 다운로드하였다. 만약 GPU가 없다면 CPU를 눌러서 진행하면 된다고 한다. Package 관리자로 pip를 선택하여 cmd에 설치할 수 있다. 설치하기 전에 먼저 깃허브 사이트에 가서 필요한 것이 있는지 살펴보고 설치하자.

 

 

CUDA 버전은 nvcc --version 명령을 통해 확인할 수 있다.

 

 

 

 

 

 

 

 

  PyTorch 설치

 

위 PyTorch 사이트에서 제공한 Source의 주소는 아래와 같다.

https://github.com/pytorch/pytorch#from-source

 

 

pip로 먼저 설치해도 상관없지만, 필요한 의존성 패키지가 있는지 먼저 확인해보는 것이 여러번 설치하는 것을 막아줄 것이다.

 

 

 

 

 

 

<설치 전제 조건>

 

1. CUDA v10.2이나 그 이상의 버전 

2. cuDNN v7이나 그 이상의 버전

 

 

CUDA나 cuDNN 설치가 필요하면 아래의 글을 보고 참고하기 바란다.

 

 

 

창업성장기술개발(디딤돌) 연구 1-2주차 기록 - 개발 환경 구축

☞ 운영 체제 : Windows 10 Education 64비트 (10.0, 빌드 19043) ☞ CPU : AMD Ryzen 7 5800H with Radeon Graphics (16 CPUs), ~3.2GHz ☞ 그래픽카드 : NVIDIA GeForce RTX3070 Laptop GPU ☞ 설치 목록 MinGW-..

95mkr.tistory.com

 

 

 

 

 

 

 

 

☞ Microsoft C++ Build Tools 설치

 

C++ Build Tools 다운로드 사이트

https://visualstudio.microsoft.com/ko/visual-cpp-build-tools/

 

 

 

 

 

 

 

☞ NVTX Nsight Compute

 

 

 

 

 

 

이미 있습니다ㅎㅎ CUDA를 설치할 때 함께 설치되는 패키지들 입니다

 

 

 

 

 

☞ PyTorch - Pip 설치

 

 

 

◎ CUDA v11.3 일 때

 

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

 

 

 

나는 CUDA v11.4 를 설치했으니 뒤에 cu114 로 바꾸어 설치하면 되는걸까 했는데 그럴 필요가 없는 모양이다.

 

 

출처 :&nbsp;https://github.com/pytorch/pytorch/issues/75992

 

 

 

11.3에서 11.4가 문제없이 작동되니 따로 11.4 대상으로 만들 필요가 없다는 글이다. 그러니 그냥 그대로 설치해주면 된다.

 

 

 

 

 

 

☞ 설치 확인

 

 

위와 같이 torch.__version__ 값을 출력했을 때 버전+cpu 값이 나오면 CUDA, PyTorch, Python 의 버전이 서로 호환이 되지 않는 것이므로 패키지 간에 상호 호환되는 버전을 찾아서 다시 설치해야한다.

 

torch.cuda.is_available() 의 값이 True가 나오면 성공이다. False 가 나오면 CUDA가 연동되지 않은 것이니 위 문제점을 해결하고 재설치해야한다.

 

 

 

 


② YOLOv5

 

 

설치 주소

https://github.com/ultralytics/yolov5

 

 

YOLOv5 Documentation

https://docs.ultralytics.com/

 

 

YOLO는 'You Only Look Once'의 약자로 이미지를 그리드 시스템으로 분할하는 객체 감지 알고리즘이다. 그리드의 각 셀은 자체 내에서 개체를 감지하는 역할을 한다. YOLO는 속도와 정확성으로 인해 가장 유명한 객체 감지 알고리즘 중 하나이다. [Documentation 내용]

 

YOLO는 Joseph Redmon이라는 사람이 실시간 사물 인식이라는 논문을 제출하면서 시작되었다. Ali Farhadi라는 사람과 함께 YOLOv3까지 개발하다가 작업을 중단했다. 이후에 Darknet이라 불리며 가장 유명한 YOLOv4이 출시되었고, 그 직후에 YOLOv5이 나왔다. 구글링 해보니 YOLOv5는 원작자가 아닌 사람이 개발을 해서 구설수에 올랐으나 실제로 성능 향상이 뚜렷하기에 많이 사용한다는 그런 얘기였다.

 

지난주에 모델 학습을 위해 Tensorflow-gpu 를 설치했지만 YOLOv5는 프레임워크로 Pytorch를 사용하기 때문에 설치해야 했다.

 

 

 

 

Python 3.7.0 버전 이상과 PyTorch 1.7 버전 이상을 설치해야 한다. PyTorch는 위에서 1.12.0 버전을 설치했고, 지난 포스트에서 Python 3.8.7버전 을 설치했다. Python 버전은 아래와 같이 확인할 수 있다.

 

 

 

출처 :&nbsp;https://github.com/ultralytics/yolov5

 

 

친절하게도 많은 레퍼런스가 있다. 아무것도 모르니 튜토리얼에 있는 글을 하나씩 읽어봐야겠다.

 

 

 

 

 

YOLOv5설치

 

 

 

 

 

 

 

 

pip install -r requirements.txt

 

 

YOLOv5를 다운로드 받으면 YOLO에 필요한 패키지와 버전이 적혀있고 이를  'pip install -r requirements.txt' 를 cmd에 입력하면 전부 다운로드 할 수 있다. 그러나 YOLO 경로에서 pip 다운로드 명령어를 입력하면 아래와 같은 에러가 나온다.

 

 

 

☞ UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 1091: illegal multibyte sequence

 

 

 

에러 해결방법

https://run-think-dev.tistory.com/51

 

 

위 인코딩 에러를 해결하고 나서 설치 명령어를 입력하면 pip에 의해 필요한 패키지와 버전이 설치된다.

 

 

 

 

 

 


③ YOLOv5 실행

 

☞ YOLOv5 제공 기본 이미지(data/images)

 

 

 

python detect.py

 

 

 

 

위와 같이 cmd에서 YOLOv5 경로로 이동해서 python detect.py를 실행하면 data/images 디렉터리에 있는 이미지를 분석하여 runs/detect/exp 디렉터리에 결과가 나온다.

 

 

 

 

☞ python detect.py 실행 결과(runs/detect/exp)

 

 

 

 

 

이미지가 아닌 영상을 넣어도 된다.

 

 

 

 

작업이 끝났으면 위와 같은 메세지를 출력한다. 결과 이미지는 runs\detect\exp2 디렉터리에서 확인할 수 있단다.

 

 

 

 

사실 뭘 했는지 잘 모르겠는데 일단 잘 된다! 다음 주에는 성능 개선을 위해 YOLO, ROLO에 대한 조사를 해야겠다.

 

 

 

 

 

반응형