-
YOLOv7를 활용한 객체 인식 (Ubuntu 20.04 ver)Yolov7 2024. 10. 7. 16:11
본 글은 Ubuntu 20.04 환경을 기반으로 진행됩니다.
- 1. Nvidia 그래픽 드라이버 설치
그래픽 드라이버를 설치하는 이유는 GPU 가속을 활용하기 위함입니다.
GPU(그래픽 처리 장치)는 대량의 병렬 연산을 효율적으로 처리할 수 있고, 특히나 딥러닝 모델의 학습, 예측 과정에서
CPU를 사용하는 것 보다 GPU를 사용하는 것이 훨씬 빠릅니다.
드라이버 설치 방법은 자동, 수동 2가지가 있다. (필자는 수동 버전으로 설치하였다.)
7. YOLOv7 설치
1. 권장 드라이버 자동으로 설치
sudo ubuntu-drivers devices
2. 원하는 버전을 수동으로 설치
- 다음 명령어를 입력하여 설치가능한 드라이버 버전을 확인합니다.
ubuntu-drivers devices
※ 입력했을때, 안뜬다면 아래 두줄 차례로 입력 ※
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update
저는 딥러닝 모델을 최대한 효율적으로 활용가능하며, 최신 버전인 560버전을 설치하였습니다.
sudo apt install nvidia-driver-560
그리고 재부팅 해줍니다.
sudo reboot
Nvidia 드라이버가 잘 설치되어 있는지 확인하려면 아래 명령어를 입력하면 됩니다.
nvidia-smi
- 2. CUDA 설치
위 사진을 자세히 보면 Driver Version옆에 CUDA가 설치 되어 있는것을 볼 수 있습니다.
CUDA는 그래픽 카드의 병렬 연산을 지원하는 NVIDIA 기술로, 많은 양의 연산을 동시에 처리하기 위해 사용합니다.
학습이나 인식할 때, 그래픽 카드의 병렬 연산을 할 경우 빠른 속도로 작업이 가능합니다.
아래 사이트에 접속하여 CUDA를 설치합니다.
설치를 위해서는 Nvidia 사이트 회원가입이 필수입니다.
https://developer.nvidia.com/cuda-toolkit-archive
CUDA Toolkit Archive
Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production
developer.nvidia.com
다양한 버전들이 있는데, 저는 12.4.0 버전을 설치해 주었습니다.
12.4 버전을 선택한 이유는 앞서 설치한 그래픽카드 버전에 맞게 설치해야하기 때문입니다.
Nvidia-smi 명령어를 사용하여 설치된 Driver Version이 560.35.03 입니다.
현재 설치된 그래픽 드라이버 버전에서는 쿠다 12.6 버전 까지 사용 가능한 것으로 보입니다.
(더 높은 버전을 설치하고 싶었지만, 파이토치가 최대로 지원하는 쿠다 버전이 12.4 입니다ㅜㅜ)
다시 쿠다 설치 화면으로 돌아가서, 12.4.0 버전을 선택하면 아래 화면이 나옵니다.
Linux / x86_64 / Ubuntu / 20.04 / deb(local) 순으로 선택해주고,
Base Installer 창에 있는 줄을 차례대로 입력하면서 다운받습니다. (다운 받는데 시간이 다소 오래 걸립니다.)
그리고 다음 명령어를 입력하여 bashrc 파일을 열고, 맨 밑 부분에 아래 3줄을 추가한 뒤, Save 합니다.
gedit ~/.bashrc
export CUDA_HOME=/usr/local/cuda-12.4 export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
터미널 껐다가 다시 열고,
nvcc -V 혹은 nvcc --version 명령어를 입력하여 설치된 CUDA 버전을 확인합니다.
- 3. cuDNN 설치하기
cuDNN 설치 사이트는 아래 주소로 들어가면 됩니다.
https://developer.nvidia.com/rdp/cudnn-archive
cuDNN Archive
Download releases from the GPU-accelerated primitive library for deep neural networks.
developer.nvidia.com
CUDA 12.x 버전과 호환되는 cuDNN v8.9.7버전을 선택했습니다.
Local Installer for Linux x86_64 (Tar) 파일을 선택합니다.
다운로드 파일에 들어가서, tar 파일을 압축해제 합니다.
tar 파일 압축 해제 명령어 : tar -xvf [파일명]
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
압축 해제 이후, cuDNN에 있는 파일의 일부를 CUDA 파일로 전송해줘야 합니다.
아래 명령어로 cuDNN 파일안의 내용을 CUDA파일로 이동시킵니다.
cd Downloads/cudnn-linux-x86_64-8.5.0.96_cuda12-archive/ sudo cp include/cudnn* /usr/local/cuda-12.4/include sudo cp lib/libcudnn* /usr/local/cuda-12.4/lib64/ chmod a+r /usr/local/cuda-12.4/lib64/libcudnn*
그리고, 아래 명령어로 설치가 정상적으로 되어있는지 확인합니다.
cat /usr/local/cuda-12.4/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
8.9.7 버전이 잘 설치된것을 보실수가 있습니다.
이제, PyTorch, TorchVison 등을 설치해주어야 하는데, 그전에 VSCode, Anaconda 부터 설치해보겠습니다.
Anaconda로부터 가상환경을 생성하고, 그 위에 PyTorch, TorchVision을 설치하여 패키지 버전 충돌을 예방하기 위함입니다.
- 4. VSCode 설치
https://code.visualstudio.com/download
Download Visual Studio Code - Mac, Linux, Windows
Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.
code.visualstudio.com
해당 사이트에서 Ubuntu 버전을 다운받고, 압축해제를 해줍니다.
sudo dpkg -i <파일명>.deb
설치가 완료되면 code 명령어를 입력하여 VSCode에 들어가고, Python을 다운합니다.
제가 다운받은 Python 버전은 3.8.10 입니다.
- 5. Anaconda 설치
https://www.anaconda.com/download/success
Download Now | Anaconda
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
Linux x86버전을 설치했고,
설치된 파일로 들어가, 해당 명령어로 설치 파일을 실행해준다.
cd 다운로드 bash Anaconda3-2024.06-1-Linux-x86_64.sh
여기서 한가지 문제점이 발생할 것입니다.
이후 저희가 설치할 PyTorch와 호환되는 Python버전이 3.8~3.11 인데, Anaconda에 설치된 파이썬 버전이 3.12 입니다.
따라서, 파이썬 버전을 3.8.10 으로 변경해 보겠습니다.
아래 명령어는 사용가능한 Python 버전을 출력하는 내용입니다.
conda search python
그중에서 저희는 3.8.10 버전으로 설치합니다.
conda install python=3.8.10
그러면, 파이썬 버전이 변경된것을 확인 할 수 있습니다.
이제, PyTorch를 설치할 가상환경을 만들어 보겠습니다.
conda create -n test python=3.8.10
그리고, 가상환경 목록들을 확인해보고 싶다면 아래 명령어를 입력하시면 됩니다.
conda env list
제작한 가상환경을 실행시키고 싶다면
conda activate [가상환경명] // 가상환경 활성화 conda deactivate // 가상환경 비활성화 conda env remove -n [가상환경명] // 가상환경 삭제
- 6. PyTorch 설치
https://pytorch.kr/get-started/locally/
파이토치 한국 사용자 모임 (PyTorch Korea User Group)
파이토치 한국 사용자 모임에 오신 것을 환영합니다. 딥러닝 프레임워크인 파이토치(PyTorch)를 사용하는 한국어 사용자들을 위해 문서를 번역하고 정보를 공유하고 있습니다.
pytorch.kr
Linux/Conda/Python/CUDA 12.4 순으로 선택해서 입력해야하는 명령어를 복사합니다.
가상환경 위에 PyTorch를 설치합니다.
이제 PyTorch, TorchVision이 잘 설치되어있는지 확인해보겠습니다.
conda activate [가상환경명] python import torch print(torch.__version__) (ctrl + z 입력해서 나가기) python import torchvision print(torchvision.__version__)
PyTorch 버전은 2.4.1, TorchVision 버전은 0.19.1으로 잘 설치되었습니다.
이제 Yolov7을 설치해보겠습니다.
- 7. YOLOv7 설치
환경구성을 위해 더 설치해줄것이 남아있습니다..
conda activate [가상환경명] git clone https://github.com/WongKinYiu/yolov7.git cd yolov7 gedit requirements.txt
이미, PyTorch와 TorchVision은 설치했으니 주석처리하고 저장해줍니다.
이제, 텍스트 파일에 있는 요소들을 모두 설치해줍니다.
pip install -r requirements.txt
웹 카메라를 연결해주고, 아래 명령어를 입력해줍니다.
python detect.py --weights yolov7.pt --source 0 python detect.py --weights yolov7.pt --conf 0.5 --source 0 // 인식률 50% 이상만
이 인식 모델에는 현재 coco dataset이라고 불리는 기본 데이터만 학습되어 있습니다.
여기서 Custom data를 학습시켜 제가 원하는 사물을 인식해보려 합니다.
만약 FPs가 너무 낮아서 끊김 현상이 있다면, TensorRT를 사용하면 될 것 같습니다.다소 인식률은 떨어지지만, 인식속도는 증가한다고 합니다.
이상으로, 긴 글 읽어주셔서 감사합니다.