Nvidia Tx2에다가 yolov5 실행하기
yolov5는 PC(특히 Ubuntu)에서 굉장히 inference하기 쉬운 형태 입니다.
GPU쓰는 방법만 알아낸다면, 말 그대로 github repository를 clone하고 실행하면 됩니다.
하지만 Tx2에서는 되지 않았습니다.
처음에는 Numpy 에러가 생기고,
Illegal instruction (core dumped)
처음에는 numpy 타입이 1.19.5여서 1.19.4로 downgrade도 해보고,
그 와중에 pip install을 하는 와중에 compile하는 시간도 많이 걸리고,
compile 하고 시스템 파일들이 저장공간에 많이 쌓여서 저장공간 부족도 생겼었습니다.
엄청난 삽질 끝에,
Tx2 CPU의 ARRCH CPU type 때문에
torch와 torchvision을 다시 compile해야 하는 것을 알게 되었습니다.
게다가, torch와 torchvision도 compatibility가 있다는 것을 알게 되었습니다.
https://pypi.org/project/torchvision/
이 사이트에 따르면, torch 1.7, 그리고 python3.6이상이면
torchvision 0.8.0, 또는 torchvision 0.8.1을 깔면 된다고 합니다.
게다가 torch와 torchvision을 컴파일하는 방법은,
이 블로그 포스팅에서 잘 나와있습니다.
https://ropiens.tistory.com/68
일단은, torch 와 torchvision을 깔고 확인해줍니다
# if you not install pip (python3)
sudo apt-get install python3-pip
pip install --upgrade pip3
# install torch v1.7 (for python 3)
wget https://nvidia.box.com/shared/static/wa34qwrwtk9njtyarwt5nvo6imenfy26.whl -O torch-1.7.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy torch-1.7.0-cp36-cp36m-linux_aarch64.whl
# install torchvision v0.8.1 (for python3)
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
git clone --branch v0.8.1 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.8.1
sudo python3 setup.py install
그리고 나서 yolov5에 필요한 라이브러리들을 설치하면 됩니다.
# pip3 upgrade to ver 20.2.4
sudo pip3 install pip --upgrade
# base
pip3 install matplotlib
pip3 install Pillow
pip3 install PyYAML
pip3 install scipy
# if scipy version < 1.0
# pip3 install scipy --upgrade
pip3 install tensorboard
pip3 install tqdm
pip3 install opencv-python
만일 torchvision이 설치되었고 잘 잡히는데도 불구하고
시스템이 계속 torchvision을 업그레이드하려고 하면,
requirements.txt에서 comment하고 install 해주면 됩니다!