jetson agx orin에서 nanoowl 모델 실행하기
NanoOWL - NVIDIA Jetson AI Lab
Tutorial - NanoOWL Let's run NanoOWL , OWL-ViT optimized to run real-time on Jetson with NVIDIA TensorRT . What you need One of the following Jetson: Jetson AGX Orin (64GB) Jetson AGX Orin (32GB) Jetson Orin NX (16GB) Jetson Orin Nano (8GB) Running one of
www.jetson-ai-lab.com
여기 엔비디아 공식 문서를 따라하면 쉽게할수있다
1. 내가 가지고 있는 하드웨어가 이걸 굴릴수있는지 확인
2. JetPack 버전 확인
3. SSD 마운팅
🔖 SSD + Docker - NVIDIA Jetson AI Lab
Tips - SSD + Docker Once you have your Jetson set up by flashing the latest Jetson Linux (L4T) BSP on it or by flashing the SD card with the whole JetPack image, before embarking on testing out all the great generative AI application using jetson-container
www.jetson-ai-lab.com
4. jetson-containers 패키지 다운로드
jetson-containers 패키지는 젯슨 나노용 도커라고 생각하면 된다 이걸로 컨테이너 만들면 도커 컨테이너가 생성된다
공식가이드에서는 카메라를 연결하라고 했지만 난 카메라가 없기에 사진으로 대체하여 테스트하고자한다
그래서 깃허브에 있는 가이드를 따라하였다
GitHub - NVIDIA-AI-IOT/nanoowl: A project that optimizes OWL-ViT for real-time inference with NVIDIA TensorRT.
A project that optimizes OWL-ViT for real-time inference with NVIDIA TensorRT. - NVIDIA-AI-IOT/nanoowl
github.com
세팅
컨테이너부터 만들어주자
깃허브 가이드에서는 workdir를 /opt/nanoowl 로 하라고 되어있는데 나는 이렇게 하다가 뭐가 뭔지 모르겠어서 그냥 home에 만들어놨던 폴더로 하였다
jetson-containers run --workdir /home/wise/Workspace $(autotag nanoowl)
nanoowl패키지 다운로드
git clone https://github.com/NVIDIA-AI-IOT/nanoowl
cd nanoowl
python3 setup.py develop --user
TensorRT 엔진을 구워보자
mkdir -p data
python3 -m nanoowl.build_image_encoder_engine \
data/owl_image_encoder_patch32.engine
cd examples
python3 owl_predict.py \
--prompt="[an owl, a glove]" \
--threshold=0.1 \
--image_encoder_engine=../data/owl_image_encoder_patch32.engine
이렇게하면 /["workdir"]/nanoowl/data/owl_predict_out.jpg 에 결과 이미지가 생성된다
도커 컨테이너 내에서는 이미지를 확인할수없으니 옮겨주자
docker cp [docker ps 명령어로 확인한 container id]:/home/wise/Workspace/nanoowl/data/owl_predict_out.jpg /home/wise/Pictures
docker cp e6a2147cfadf:/["workdir"]/nanoowl/data/owl_predict_out.jpg ["원하는 경로"]
바로 이어서 아래 코드를 실행하려했는데 오류가 떴다
python3 tree_predict.py \
--prompt="[an owl [a wing, an eye]]" \
--threshold=0.15 \
--image_encoder_engine=../data/owl_image_encoder_patch32.engine
/root/.cache/clip가 있어서 안됐다고 한다 ls -la /root/.cache 명령어로 확인해보니 보이길래 rm /root/.cache/clip으로 지워준뒤 다시 실행했다
data/tree_predict_out.jpg가 결과값으로 나왔으니 아까처럼 옮겨서 확인하면