새소식

기타

Jetson Nano Tensor RT 세팅 가이드

  • -

이번에 회사에서 Jetson Nano를 활용할 일이 있어서, 환경을 세팅해봤습니다.

세팅 방법을 설명하는 글들을 보다보니, 국내 블로그 글들은 2023년 4월 14일, 지금 상황에서 적용하면 다 오류가 발생했습니다. (libnvinfer_plugin not exists 등)

아무래도 계속 업데이트가 되는 영향도 있긴 하겠지만, 결국 가장 중요한 건 공식 가이드인 것 같습니다.

 

 

안될 때마다 계속 "지금 이 상황에선 뭘 할 수 있을까? 뭘 찾아봐야 될까?" 라는 고민 끝에, "해외 자료를 더 찾아보자"라고 판단했고, 공식 가이드라고 판단되는 github 링크를 찾게 됐습니다. 결국 그 가이드대로 하다 보니, 별다른 추가 설치 없이도 바로 해결이 됐습니다. 그럼 어떻게 해결했는지 설명해 드리겠습니다.

 

 

공식 가이드 Github : https://github.com/dusty-nv/jetson-inference

 

GitHub - dusty-nv/jetson-inference: Hello AI World guide to deploying deep-learning inference networks and deep vision primitive

Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson. - GitHub - dusty-nv/jetson-inference: Hello AI World guide to deployin...

github.com

Nvidia 공식 사이트에 이 github을 참조하라는 말은 없지만, nvidia jetson 개발자가 운영하는 repository이고, 어제(4월 14일)도 업데이트됐을 정도로 관리가 잘 되고 있는 repository 입니다. github star가 6.3K인 것도 자료를 참조할 만하다는 지표가 되겠죠. 만약 이 글을 보며 진행하다가 안되는 경우는 위의 사이트에 접속하셔서, "System Setup" 부분을 읽어보면서 하시길 권장드립니다.

 

 

1. SD 카드 이미지 세팅

현재 가이드에 의하면, Jetson Nano와 Jetson Xavier NX는 SD 카드 이미지를 직접 받아서 SD 카드에 구워야 합니다. 다른 Jetson 기기들은 NVIDIA SDK Manager로 세팅 가능하고요. SD 카드 이미지는 이 주소로 가서 다운로드하시면 됩니다. 해당 주소에서 "Jetson Nano Developer Kit SD Card Image"라고 되어 있는 걸 찾아서 받으시면 됩니다. Jetson Nano 2GB를 사용하는 경우, "Jetson Nano 2GB Developer Kit SD Card Image"를 받으시면 됩니다. (맥, 윈도우, 리눅스 등 세팅하는 PC OS는 상관없습니다.)

 

 

Jetson Nano SD Card Image

 

 

Jetson Nano 기기 설명이나, 구체적인 설치 방법은 공식 가이드에서 확인할 수 있습니다. 이 사이트에서 SD 카드 굽는 balenaEtcher 프로그램을 다운로드 한 뒤, 위에서 받은 SD Card Image zip 파일의 압축을 풀고, "Select Image" 압축 푼 파일을 선택해주면 됩니다. 그럼 아래 이미지처럼 진행되고, 대략 20분 정도가 소요됩니다. 

 

 

SD 카드 굽는 프로그램, balenaEtcher
Jetson Nano Tensor RT 세팅, SD 카드 진행 과정

 

 

2. 부팅, github clone

위의 작업이 완료되면, 아래 이미지처럼 sd 카드를 jetson nano에 넣고 전원을 연결하면 바로 켜집니다. (넣었을 때, 64GB 숫자 적힌 부분이 밑에서 보이게 넣어야 맞더라구요) 그리고 처음에 알려드린 깃허브 repository를 clone 합니다.

 

 

Jetson Nano SD 카드 넣는 법 (출처 : nvidia developer 사이트)

 

 

그리고 docker 이미지를 받으면 되는데, 아래처럼 docker/run.sh 하면 내가 설치한 Jetpack, L4T 버전에 맞는 docker를 자동으로 받을 수 있습니다. 추가로 연결하고 싶은 게 있다면, "$ docker/run.sh --volume /my/folder:/conatiner/folder" 형식으로 입력해 주면 됩니다. 웹캠을 연결하고 싶다면 --volume /dev/video0:/dev/video0 형식으로 입력해도 됩니다. 

 

 

$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ docker/run.sh

 

 

이렇게만 하면 설치는 끝입니다. JetPack 안에 CUDA, Tensor RT 모두 세팅이 되어 있어서 추가로 할 건 없습니다.

이 사이트의 가이드를 참조해서 추론 테스트를 해볼 수 있습니다.

 

 

분류 모델 추론 예시입니다. TensorRT 기반으로 실행됩니다. 처음 입력하면 모델이 없으니 다운로드하라는 설명이 나옵니다. "download_models.sh" 이런 스크립트를 실행하라는 메시지가 나오는데 그거 보고 그냥 따라서 실행하시면 됩니다. 

$ cd jetson-inference/build/aarch64/bin
# Python
$ ./imagenet.py images/orange_0.jpg images/test/output_0.jpg  # (default network is googlenet)

 

 

Jetson Nano TensorRT 추론 예시 (출처: jetson-inference github)

 

 

분류, segmentation, detection, pose estimation까지 다양한 분야에 적용할 수 있고, 40만원대(4GB Jetson Nano)의 가격임에도 segmentation 기준 20fps 정도의 성능이 나옵니다. 서버를 별도로 두는 것에 비해 가성비가 좋고, 내부망에서 활용하기도 좋을 것 같습니다. 이번 작업엔 역시나 공식 가이드가 중요하다는 걸 다시 느꼈네요.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.