Nvidia Jetson YOLOX 개발환경 설정

HeungJun Kim·2022년 6월 13일
0

Nvidia Jetson 개발

목록 보기
3/5
post-thumbnail

1. pytorch 설치

yolox를 설치하기전 필수사항으로 cuda/pytorch 가 반드시 미리 설치되어 있어야한다.

jetson 보드에는 cuda가 기본설치되어 있으므로 py torch 만 설치해준다.

https://qengineering.eu/install-pytorch-on-jetson-nano.html

Qengineering의 jetson 개발환경 포스팅에 따라 설치했다.

정상적으로 설치가 완료되었다.
이미지에는 나타나지 않지만, torch(직접설치), tensorrt(기본설치), opencv(기본설치) 되어 있다.(파이썬 바인딩 포함)

2. YOLOX 설치

$ git clone https://github.com/Megvii-BaseDetection/YOLOX.git
$ cd YOLOX

설치 전 필요한 패키지를 미리 설치해준다.

$ sudo apt-get install gfortran
$ pip3 install scikit-build

사용하지 않는 onnx 관련 패키지 및 기존에 설치된 python-opencv 패키지를 덮어 쓰지않도록 requirements.txt 파일을 열어 수정해준다.

$ sudo gedit requirements.txt

# TODO: Update with exact module version
numpy
torch>=1.7
#opencv_python     # 오픈씨비 덮어쓰기 x
loguru
scikit-image
tqdm
torchvision
Pillow
thop
ninja
tabulate
tensorboard

# verified versions
# pycocotools corresponds to https://github.com/ppwwyyxx/cocoapi
pycocotools>=2.0.2

#onnx 설치 X
#onnx==1.8.1
#onnxruntime==1.8.0
#onnx-simplifier==0.3.5

기존 설치된 numpy를 제거하고 pip을 통해 새로 설치한다.

$ sudo rm -R /usr/lib/python3/dist-packages/numpy
$ sudo rm -R /usr/lib/python3/dist-packages/numpy-1.13.3.egg-info/

강제로 numpy를 제거해줬다.
다시 설치하자.

$ sudo -H pip3 install numpy==1.19.5 --force

onnx는 아래 명령어를 통해 별도로 설치한다.

$ sudo apt-get install protobuf-compiler libprotoc-dev
$ sudo pip3 install onnx==1.8.1

설치가 오래걸리기 때문에 마음의 준비를 하자.

$ sudo pip3 install -v -e . # or python3 setup.py develop

yolox 설치가 완료되었다.

3. torch2trt 패키지 설치

사실 jetson 보드에는 inference 포팅이 목적이기 때문에,
실제 추론을 torch로 하지않고 tensorrt를 사용할 것이다.

tensortt 최적화 시 하드웨어에 dependency 되기 때문에 jetson board에 직접 변환 툴을 설치한다.
(개발 완료 후에는 동일한 환경으로 셋팅 후 최적화된 engine 파일을 배포하면 된다.)

$ git clone https://github.com/NVIDIA-AI-IOT/torch2trt
$ cd torch2trt
$ sudo python setup.py install

jetpack에 기본설치된 Pillow 패키지를 찾을 수 없으므로,
지우고 pip으로 다시 설치해줬다.

$ sudo pip3 uninstall Pillow
$ sudo pip3 install Pillow
$ sudo pip3 install Image

### 4. YOLOX/tools/trt.py로 모델 변환
LD_PRELOAD 환경변수에 /usr/lib/aarch64-linux-gnu/libgomp.so.1를 추가해준다.

$ sudo gedit ~/.bashrc

export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libgomp.so.1

$ source ~/.bashrc

4번 단계를 왜 했는지 기억이 안난다..(일단 넘어가고 오류발생시 하는 것으로...)

profile
Computer Vision / Object Detection / SW개발

0개의 댓글