YoloV8을 JetsonTX2에서 실행을 시키고자 했고, 그러기 위해선 ultralytics라는 모듈을 설치를 해야 했다. 근데 여기서 문제는 python3.7 이상부터만 설치가 가능하다.
JetPack 4.6.2 설치 방법 : https://iambeginnerdeveloper.tistory.com/228
python3.8 설치 방법 : https://iambeginnerdeveloper.tistory.com/229
여기까지 설치하고 나면 jetpack에 설치 되어 있는 tensorrt는 python3.6용이기 때문에 TensorRT도 python3.8용으로 새로 설치 해 주어야 한다.
1. building python3.8
원래 먼저 새 버전의 python부터 빌드해야 하는데 이미 python3.8을 설치 했기 때문에 설명 생략.
위에 삽입 해 둔 링크 참고.
2. build cmake
sudo apt-get install -y protobuf-compiler libprotobuf-dev openssl libssl-dev libcurl4-openssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.13.5/cmake-3.13.5.tar.gz
tar xvf cmake-3.13.5.tar.gz
rm cmake-3.13.5.tar.gz
cd cmake-3.13.5/
./bootstrap --system-curl
make -j4
echo 'export PATH='${PWD}'/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc
cd ../
3. prepare header
python3.8 header를 설치 해 주어야 한다.
https://ubuntu.pkgs.org/20.04/ubuntu-main-arm64/libpython3.8-dev_3.8.2-1ubuntu1_arm64.deb.html
위 링크에서 다운로드가 가능하며 아래 명령어들로 설치가 가능하다.
mkdir python3.8
cd python3.8
mkdir include
cd ..
wget http://ports.ubuntu.com/pool/main/p/python3.8/libpython3.8-dev_3.8.2-1ubuntu1_arm64.deb
ar x libpython3.8-dev_3.8.2-1ubuntu1_arm64.deb
tar -xvf data.tar.xz
cp ./usr/include/aarch64-linux-gnu/python3.8/pyconfig.h python3.8/include/
cp -r Python-3.8.12/Include/* python3.8.12/include/
4. build TensorRT pybinding
git clone https://github.com/pybind/pybind11.git
git clone -b release/8.0 https://github.com/NVIDIA/TensorRT.git
cd TensorRT
git submodule update --init --recursive
4.1 python 폴더로 이동 후 build.sh 파일 열어서 경로 및 버전, target architecture 수정
cd python
→ target : jetson은 aarch64이기 때문에 꼭 aarch64로 수정 해 주어야 한다.
→ root_path : git clone 해 온 TensorRT 폴더의 경로.
→ ext_path : root_path의 상위 폴더.
→ make 시 jetson의 nproc 맞춰서 숫자 수정 해 주면 된다.
4.2 build.sh 파일 실행
./build.sh
4.3 install the python wheel
build.sh를 설치하면 설정 해 둔 wheel output dir 경로에 tensorrt-8.0.1.6-cp38-none-linux_aarch64.whl 파일이 생성되어 있을 것이다.
python3.8 -m install ./build/dist/tensorrt-8.0.1.6-cp38-none-linux_aarch64.whl
5. import tensorrt
→ import 시 에러 없이 성공하면 제대로 설치가 된 것이다.
이렇게 python3.8용 tensorrt까지 설치하고 나면 .pt weight 파일을 tensorrt 파일로 변환을 할 수 있다!
jetson에서 .pt -> tensorrt로의 변환은 다음 포스팅에서..!