- Auto: ๊น์คํธ
- Date: 2022-02-18
NVIDIA์ Jetson Nano/TX1/TX2/Xavier NX/AGX Xavier ๋ฅผ ์ฌ์ฉํ inference(์ถ๋ก ) ์ realtime(์ค์๊ฐ) DNN vision library๋ฅผ ์ํ guide์ ์ค์ ๊ฑธ ํ์ํฉ๋๋ค.
ํด๋น repo๋ NVIDIA TensorRT ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ graph optimizations, kernel fusion, FP16/INT8 precision ์ ์ ์ฉํจ์ผ๋ก์จ Jetson ํ๋ซํผ์์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ๋ ๋น ๋ฅด๊ฒ, ๋ ์ ์ ์๋์ง๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ ์ ๋๋ค.
๋น์ ์ ๊ธฐ์ด, imageNet for image recognition(์ด๋ฏธ์ง ๋ถ๋ฅ), detectNet for object detection(๊ฐ์ฒด ๊ฒ์ถ), segNet for semantic segmentation, and poseNet for pose estimation, ๊ฐ ๋ชจ๋ธ๋ค์ shared tensorNet object ์์ ์์๋์ด ์ฌ์ฉ๋ฉ๋๋ค. ์์ ๋ก live camera๋ก๋ถํฐ streaming ๋ฐ๋ ๊ฒ๊ณผ ์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ ๊ณต๋ฉ๋๋ค. ๋ค์ API Reference ์์ C++, Python์ ๋ํ ์์ธํ ์๋ฃ๋ฅผ ์ฐพ์๋ณด์ค ์ ์์ต๋๋ค.
Hello AI World ์์๋ jetson platform์์ inference(์ถ๋ก )๊ณผ transfer learning์ ํ๋ ํํ ๋ฆฌ์ผ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์ ์ง์ datasets์ ์์งํ๊ณ ์ธ๊ณต์ ๊ฒฝ๋ง์ ์ง์ ํ์ต์์ผ๋ณผ ์ ์์ต๋๋ค. ์ด ํํ ๋ฆฌ์ผ์ image classification(์ด๋ฏธ์ง ๋ถ๋ฅ), object detection(๊ฐ์ฒด ๊ฒ์ถ), sematic segmentation, pose estimation, mono depth๋ฅผ ๋ค๋ฃน๋๋ค.
- Hello AI World
- Video Walkthroughs
- API Reference
- Code Examples
- Pre-Trained Models
- System Requirements
- Change Log
> ย JetPack 4.6 ์ด ์ง์๋ฉ๋๋ค. ๋ฌธ์๋ฅผ ํ์ธํ์ธ์. updated containers.
> ย Pose Estimation ์ Mono Depth ํํ ๋ฆฌ์ผ์ ํด๋ณด์ธ์!
Hello AI Wolrd๋ jetson ๋ณด๋์์ ์ํ๋ ์ ์์ผ๋ฉฐ, ์ด๋ TensorRT๋ฅผ ํตํ inference(์ถ๋ก )๊ณผ Pytorch๋ฅผ ์ด์ฉํ transfer learning์ ํฌํจํฉ๋๋ค. inference ๋ถ๋ถ์ Python๊ณผ C++๋ก ์ง์ image classfication(์ด๋ฏธ์ง ๋ถ๋ฅ)์ object detectino(๊ฐ์ฒด ๊ฒ์ถ) application ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก ์ด๋ฃจ์ด์ ธ์๊ณ ์ฝ 2์๊ฐ ์ ๋๊ฐ ์์๋ฉ๋๋ค. ๋ฐ๋ฉด, tranfer learning์ ๋ฐค์ ์ํ์์ผ์ฃผ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
- Jetson ์ JetPack ์ค์ ํ๊ธฐ
- Docker Container ์คํ์ํค๊ธฐ
- ์์ค์ฝ๋๋ก build(๋น๋)ํ๊ธฐ
- ImageNet ๋ฐ์ดํฐ์ ์ผ๋ก ์ด๋ฏธ์ง ๋ถ๋ฅํ๊ธฐ
- DetectNet์ผ๋ก ๊ฐ์ฒด ์์น ์ฐพ๊ธฐ
- SegNet์ผ๋ก ํ๋ Semantic Segmentation
- PoseNet์ผ๋ก ํ๋ Pose Estimation
- DepthNet์ผ๋ก ํ๋ Monocular Depth
- PyTorch๋ก ํ๋ Transfer Learning
- Classification(๋ถ๋ฅ)/Recognition(์ธ์) (ResNet-18)
- Object Detection (SSD-Mobilenet)
์๋ ์์๋ค์ Jetson AI Certification ์ฝ์ค์์ ์ ๊ณต๋ ๊ฒ์ ๋๋ค.
| Description | Video |
|---|---|
| Hello AI World Setup Jetson Nano์์ Hello AI World ๋์ปค ์ปจํ ์ด๋๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๊ณ run ํฉ๋๋ค. ์นด๋ฉ๋ผ๋ฅผ ํ ์คํธ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ RTP๋ฅผ ํตํด ๋คํธ์ํฌ์ ์ด๋ป๊ฒ ์คํธ๋ฆฌ๋ฐ ๋๋์ง ํ์ธํฉ๋๋ค. |
|
| Image Classification Inference ๋ฅ๋ฌ๋ ๊ธฐ์ ๊ณผ Jetson Nano๋ฅผ ํตํด ์ํํ๋ ์ด๋ฏธ์ง ๋ถ๋ฅ ํ๋ก๊ทธ๋จ์ ์ฝ๋ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ธ ์นด๋ฉ๋ผ์์ ์ค์๊ฐ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ ๊ฒ์ ํ์ธํฉ๋๋ค. |
|
| Training Image Classification Models Jetson Nano์์ ์ด๋ป๊ฒ Pytorch๋ก ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ์ ํ๋ จํ๋์ง ๋ฐฐ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค์คํ ๋ชจ๋ธ์ ์์ฑํ๊ธฐ ์ํ datasets์ ์์งํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. |
|
| Object Detection Inference ๋ฅ๋ฌ๋ ๊ธฐ์ ๊ณผ Jetson Nano๋ฅผ ํตํด ์ํํ๋ ๊ฐ์ฒด ๊ฒ์ถ ํ๋ก๊ทธ๋จ์ ์ฝ๋ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ผ์ด๋ธ ์นด๋ฉ๋ผ์์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๊ฒ์ถํ๋ ๊ฒ์ ํ์ธํฉ๋๋ค. |
|
| Training Object Detection Models Jetson Nano์์ ์ด๋ป๊ฒ Pytorch๋ก ๊ฐ์ฒด ๊ฒ์ถ ๋ชจ๋ธ์ ํ๋ จํ๋์ง ๋ฐฐ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค์คํ ๋ชจ๋ธ์ ์์ฑํ๊ธฐ ์ํ datasets์ ์์งํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. |
|
| Semantic Segmentation Jetson Nano์์ Semantic segmentation network๋ฅผ ๊ฒฝํํด๋ณด๊ณ ์ด๋ฅผ ๋ผ์ด๋ธ ์นด๋ฉ๋ผ๋ก ์ ์ํ๋๋์ง ํ์ธํฉ๋๋ค. |
์๋ ๋ ๋ฌธ์ ๋งํฌ๋ C++ and Python ํด๋น repo์์ ์ฌ์ฉํ๋ API ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
| C++ | Python | |
|---|---|---|
| Image Recognition | imageNet |
imageNet |
| Object Detection | detectNet |
detectNet |
| Segmentation | segNet |
segNet |
| Pose Estimation | poseNet |
poseNet |
| Monocular Depth | depthNet |
depthNet |
์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ libjetson-inference and libjetson-utils๋ฅผ ๋งํฌํจ์ผ๋ก์จ ๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Introductory code walkthroughs of using the library are covered during these steps of the Hello AI World tutorial:
Additional C++ and Python samples for running the networks on static images and live camera streams can be found here:
| C++ | Python | |
|---|---|---|
| ย ย ย Image Recognition | imagenet.cpp |
imagenet.py |
| ย ย ย Object Detection | detectnet.cpp |
detectnet.py |
| ย ย ย Segmentation | segnet.cpp |
segnet.py |
| ย ย ย Pose Estimation | posenet.cpp |
posenet.py |
| ย ย ย Monocular Depth | depthnet.cpp |
depthnet.py |
note: for working with numpy arrays, see Converting to Numpy Arrays and Converting from Numpy Arrays
These examples will automatically be compiled while Building the Project from Source, and are able to run the pre-trained models listed below in addition to custom models provided by the user. Launch each example with --help for usage info.
์ด ํ๋ก์ ํธ๋ ์ฌ๋ฌ pre-trained models์ด ํจ๊ป ์ ๊ณต๋๋ฉฐ ํด๋น ํด์ ์ฌ์ฉํ์ฌ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์ต๋๋ค. Model Downloader
| Network | CLI argument | NetworkType enum |
|---|---|---|
| AlexNet | alexnet |
ALEXNET |
| GoogleNet | googlenet |
GOOGLENET |
| GoogleNet-12 | googlenet-12 |
GOOGLENET_12 |
| ResNet-18 | resnet-18 |
RESNET_18 |
| ResNet-50 | resnet-50 |
RESNET_50 |
| ResNet-101 | resnet-101 |
RESNET_101 |
| ResNet-152 | resnet-152 |
RESNET_152 |
| VGG-16 | vgg-16 |
VGG-16 |
| VGG-19 | vgg-19 |
VGG-19 |
| Inception-v4 | inception-v4 |
INCEPTION_V4 |
| Network | CLI argument | NetworkType enum | Object classes |
|---|---|---|---|
| SSD-Mobilenet-v1 | ssd-mobilenet-v1 |
SSD_MOBILENET_V1 |
91 (COCO classes) |
| SSD-Mobilenet-v2 | ssd-mobilenet-v2 |
SSD_MOBILENET_V2 |
91 (COCO classes) |
| SSD-Inception-v2 | ssd-inception-v2 |
SSD_INCEPTION_V2 |
91 (COCO classes) |
| DetectNet-COCO-Dog | coco-dog |
COCO_DOG |
dogs |
| DetectNet-COCO-Bottle | coco-bottle |
COCO_BOTTLE |
bottles |
| DetectNet-COCO-Chair | coco-chair |
COCO_CHAIR |
chairs |
| DetectNet-COCO-Airplane | coco-airplane |
COCO_AIRPLANE |
airplanes |
| ped-100 | pednet |
PEDNET |
pedestrians |
| multiped-500 | multiped |
PEDNET_MULTI |
pedestrians, luggage |
| facenet-120 | facenet |
FACENET |
faces |
| Dataset | Resolution | CLI Argument | Accuracy | Jetson Nano | Jetson Xavier |
|---|---|---|---|---|---|
| Cityscapes | 512x256 | fcn-resnet18-cityscapes-512x256 |
83.3% | 48 FPS | 480 FPS |
| Cityscapes | 1024x512 | fcn-resnet18-cityscapes-1024x512 |
87.3% | 12 FPS | 175 FPS |
| Cityscapes | 2048x1024 | fcn-resnet18-cityscapes-2048x1024 |
89.6% | 3 FPS | 47 FPS |
| DeepScene | 576x320 | fcn-resnet18-deepscene-576x320 |
96.4% | 26 FPS | 360 FPS |
| DeepScene | 864x480 | fcn-resnet18-deepscene-864x480 |
96.9% | 14 FPS | 190 FPS |
| Multi-Human | 512x320 | fcn-resnet18-mhp-512x320 |
86.5% | 34 FPS | 370 FPS |
| Multi-Human | 640x360 | fcn-resnet18-mhp-512x320 |
87.1% | 23 FPS | 325 FPS |
| Pascal VOC | 320x320 | fcn-resnet18-voc-320x320 |
85.9% | 45 FPS | 508 FPS |
| Pascal VOC | 512x320 | fcn-resnet18-voc-512x320 |
88.5% | 34 FPS | 375 FPS |
| SUN RGB-D | 512x400 | fcn-resnet18-sun-512x400 |
64.3% | 28 FPS | 340 FPS |
| SUN RGB-D | 640x512 | fcn-resnet18-sun-640x512 |
65.1% | 17 FPS | 224 FPS |
- If the resolution is omitted from the CLI argument, the lowest resolution model is loaded
- Accuracy indicates the pixel classification accuracy across the model's validation dataset
- Performance is measured for GPU FP16 mode with JetPack 4.2.1,
nvpmodel 0(MAX-N)
Legacy Segmentation Models
| Network | CLI Argument | NetworkType enum | Classes |
|---|---|---|---|
| Cityscapes (2048x2048) | fcn-alexnet-cityscapes-hd |
FCN_ALEXNET_CITYSCAPES_HD |
21 |
| Cityscapes (1024x1024) | fcn-alexnet-cityscapes-sd |
FCN_ALEXNET_CITYSCAPES_SD |
21 |
| Pascal VOC (500x356) | fcn-alexnet-pascal-voc |
FCN_ALEXNET_PASCAL_VOC |
21 |
| Synthia (CVPR16) | fcn-alexnet-synthia-cvpr |
FCN_ALEXNET_SYNTHIA_CVPR |
14 |
| Synthia (Summer-HD) | fcn-alexnet-synthia-summer-hd |
FCN_ALEXNET_SYNTHIA_SUMMER_HD |
14 |
| Synthia (Summer-SD) | fcn-alexnet-synthia-summer-sd |
FCN_ALEXNET_SYNTHIA_SUMMER_SD |
14 |
| Aerial-FPV (1280x720) | fcn-alexnet-aerial-fpv-720p |
FCN_ALEXNET_AERIAL_FPV_720p |
2 |
| Model | CLI argument | NetworkType enum | Keypoints |
|---|---|---|---|
| Pose-ResNet18-Body | resnet18-body |
RESNET18_BODY |
18 |
| Pose-ResNet18-Hand | resnet18-hand |
RESNET18_HAND |
21 |
| Pose-DenseNet121-Body | densenet121-body |
DENSENET121_BODY |
18 |
- Jetson Nano Developer Kit with JetPack 4.2 or newer (Ubuntu 18.04 aarch64).
- Jetson Nano 2GB Developer Kit with JetPack 4.4.1 or newer (Ubuntu 18.04 aarch64).
- Jetson Xavier NX Developer Kit with JetPack 4.4 or newer (Ubuntu 18.04 aarch64).
- Jetson AGX Xavier Developer Kit with JetPack 4.0 or newer (Ubuntu 18.04 aarch64).
- Jetson TX2 Developer Kit with JetPack 3.0 or newer (Ubuntu 16.04 aarch64).
- Jetson TX1 Developer Kit with JetPack 2.3 or newer (Ubuntu 16.04 aarch64).
The Transfer Learning with PyTorch section of the tutorial speaks from the perspective of running PyTorch onboard Jetson for training DNNs, however the same PyTorch code can be used on a PC, server, or cloud instance with an NVIDIA discrete GPU for faster training.
In this area, links and resources for deep learning are listed:
- ros_deep_learning - TensorRT inference ROS nodes
- NVIDIA AI IoT - NVIDIA Jetson GitHub repositories
- Jetson eLinux Wiki - Jetson eLinux Wiki
note: the DIGITS/Caffe tutorial from below is deprecated. It's recommended to follow the Transfer Learning with PyTorch tutorial from Hello AI World.
Expand this section to see original DIGITS tutorial (deprecated)
The DIGITS tutorial includes training DNN's in the cloud or PC, and inference on the Jetson with TensorRT, and can take roughly two days or more depending on system setup, downloading the datasets, and the training speed of your GPU.
- DIGITS Workflow
- DIGITS System Setup
- Setting up Jetson with JetPack
- Building the Project from Source
- Classifying Images with ImageNet
- Using the Console Program on Jetson
- Coding Your Own Image Recognition Program
- Running the Live Camera Recognition Demo
- Re-Training the Network with DIGITS
- Downloading Image Recognition Dataset
- Customizing the Object Classes
- Importing Classification Dataset into DIGITS
- Creating Image Classification Model with DIGITS
- Testing Classification Model in DIGITS
- Downloading Model Snapshot to Jetson
- Loading Custom Models on Jetson
- Locating Objects with DetectNet
- Detection Data Formatting in DIGITS
- Downloading the Detection Dataset
- Importing the Detection Dataset into DIGITS
- Creating DetectNet Model with DIGITS
- Testing DetectNet Model Inference in DIGITS
- Downloading the Detection Model to Jetson
- DetectNet Patches for TensorRT
- Detecting Objects from the Command Line
- Multi-class Object Detection Models
- Running the Live Camera Detection Demo on Jetson
- Semantic Segmentation with SegNet
ยฉ 2016-2019 NVIDIA | Table of Contents

