본문 바로가기
PC 환경설정

YOLOv4 모델을 tensorrt로 최적화 실습

by 코딩새내기_ 2021. 6. 27.

https://github.com/jkjung-avt/tensorrt_demos

 

jkjung-avt/tensorrt_demos

TensorRT MODNet, YOLOv4, YOLOv3, SSD, MTCNN, and GoogLeNet - jkjung-avt/tensorrt_demos

github.com

이 저장소의 Demo5 실행 실습입니다.

 

저는 RTX3080에 Ubuntu18.04를 사용하고 있습니다.

먼저 도커 이미지를 받고 도커를 실행합니다.

## 저장소를 클론합니다.
git clone https://github.com/jkjung-avt/tensorrt_demos
## tensorrt 도커 이미지를 받습니다.
sudo docker pull nvcr.io/nvidia/tensorrt:21.06-py3
## docker에서 opencv영상 재생과 camera를 사용하기 위해서입니다.
xhost local:docker
## doyoung -> 본인의 디렉토리로 수정해줍니다.
sudo docker run --gpus all -v /home/doyoung:/src --device='/dev/video0:/dev/video0' //
--env DISPLAY=$DISPLAY --volume='/tmp/.X11-unix:/tmp/.X11-unix:rw' //
-it nvcr.io/nvidia/tensorrt:21.06-py3

cd /
cd src/tensorrt_demos
apt-get update

여기 보시는 것처럼

# python을 사용하신다면 ssd/install_pycuda.sh 파일을 열어서  pip3 ->pip로 바꿔주세요
# python3를 사용하신다면 변경하지 않으셔도 됩니다.

cd ssd
./install_pycuda.sh

위 에러가 뜨신다면

apt-get install python3-dev

./install_pycuda.sh

제가 쓴 도커 이미지는 python3.8을 사용합니다.

하지만 위 저장소에서는 onnx==1.4.1버전을 필수로 사용해야 하는데

onnx==1.4.1버전은 python3.7까지 지원됩니다.

그래서 추가로 python3.7을 설치해야 합니다.

apt update
apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt install python3.7

python3.7 -V 를 쳐서 설치됐는지 확인합니다.

alias python=python3.7
python get-pip.py --force-reinstall

# python -V
# pip -V로 python과 pip가 python3.7인 것을 확인합니다.

이제 onnx를 설치합니다.

pip install onnx==1.4.1

에러가 뜹니다.

apt-get install protobuf-compiler libprotoc-dev
pip install pybind11
apt-get install python3.7-dev  ## Python.h: No such file or directory에러 해결 커맨드입니다.


pip install onnx==1.4.1

이러면 onnx 설치가 완료됩니다.

pip install nvidia-pyindex
pip install nvidia-tensorrt==7.2.3.4

tensorrt를 설치합니다.

cd ${HOME}/project/tensorrt_demos/plugins
make

plugins폴더로 가서 make를 합니다.

cd ${HOME}/project/tensorrt_demos/yolo
./download_yolo.sh
python yolo_to_onnx.py -m yolov4-416
python onnx_to_tensorrt.py -m yolov4-416

yolo폴더로 가서 위 명령어를 실행합니다.

3,4번 째는 시간이 좀 걸릴 수 있습니다.(30분 이상)

pip install opencv-python==4.4.0.40
apt-get install libgl1-mesa-glx
pip install pycuda

opencv, pycuda libgl1-mesa-glx를 설치합니다.

cd ${HOME}/project/tensorrt_demos

python trt_yolo.py --image dog.jpg -m yolov4-416

을 실행하면

(libSM.so.6: cannot open shared object file: No such file or directory)

라는 오류가 뜨는데

apt-get install -y libsm6 libxext6 libxrender-dev

하면 해결됩니다.

python trt_yolo.py --image dog.jpg -m yolov4-416

마지막으로 실행하시면

댓글