图1. Jetson Nano2GB(100毫米x 80毫米x 29毫米)
Jetson Nano2GB开非常适合教学,学习以及开发AI和机器人技术。通过活跃的开发人员社区和随时可以构建的开源项目,您将找到入门所需的所有资源。它以低廉的价格提供了令人难以置信的AI性能,并使用与创建所有行业的突破性AI产品完全相同的NVIDIA软件和工具,使每个人都可以访问AI和机器人技术的世界。除了内存大小和一小部分外设,基本跟4G版本一致。具体参数对比可见下图。
官方详细的硬件参数可以参考该网址:https://developer.nvidia.com/embedded/learn/jetson-nano-2gb-devkit-user-guide#id-.JetsonNano2GBDeveloperKitUserGuidevbatuu_v1.0-Introduction
新发布的JetPack 4.4 SDK 为基于Ubuntu 18.04的Jetson Nano提供了完整的桌面Linux环境,具有加速图形,支持NVIDIA CUDA Toolkit 10.2,以及cuDNN 8和TensorRT等库。该SDK还包括本机安装流行的功能开源机器学习(ML)框架,如TensorFlow,PyTorch,Caffe,Keras和MXNet,以及计算机视觉和机器人开发的框架,如OpenCV和ROS。
完全兼容这些框架和NVIDIA领先的AI平台,可以比以往更轻松地将基于AI的推理工作负载部署到Jetson。Jetson Nano为各种复杂的深度神经网络(DNN)模型提供实时计算机视觉和推理。这些功能支持多传感器自主机器人,具有智能边缘分析的物联网设备和先进的AI系统。甚至转移学习也可以使用ML框架在Jetson Nano上本地重新训练网络。
Jetson Nano 2GB占地面积仅为80x100mm,具有1个USB 3.0 Type A,2个USB 2.0 Type A,USB 2.0 Micro-B,1个MIPI CSI-2连接器,一个HDMI接口,40针接头连接器(GPIO,I2C,I2S,SPI,UART),12针接头连接器(电源和相关信号,UART),4针风扇接头连接器,1个MIPI CSI-2连接器,千兆以太网,802.11ac无线。
Jetson Nano 2GB开发人员工具包可以使用通用的USB-C电源供电,但不支持USB-C供电协议。这意味着可以使用通用的USB-C电源,但是由于没有进行电源协商,它们都将退回到提供5V3A的电源。
您需要使用高质量的电源(和电缆)为开发套件供电,该电源可以在开发套件的USB-C端口提供5V3A的电流。USB电源的标称功率输出能力可以在其标签上看到,但并非每个承诺“5V3A”的电源都可以这样做。该网址列出官方声明的支持组件。https://developer.nvidia.com/embedded/learn/jetson-nano-2gb-devkit-user-guide#id-.JetsonNano2GBDeveloperKitUserGuidevbatuu_v1.0-SupportedComponentList
Jetson Nano可以运行各种各样的高级网络,包括流行的ML框架的完整原生版本,如TensorFlow,PyTorch,Caffe / Caffe2,Keras,MXNet等。通过实现图像识别,对象检测和定位,姿势估计,语义分割,视频增强和智能分析等强大功能,这些网络可用于构建自动机器和复杂AI系统。
图3显示了在线提供的流行模型的推理基准测试结果。有关在 Jetson Nano上运行这些基准测试的说明,请参见 此处。推理使用批量1和FP16精度,采用 JetPack 4.2附带的NVIDIA TensorRT加速器库。Jetson Nano在许多场景中都具有实时性能,能够处理多个高清视频流。
图3.使用Jetson Nano和TensorRT的各种深度学习推理网络的性能,使用FP16精度和批量大小1
模型 | 应用 | 骨架 | NVIDIA Jetson Nano | 覆盆子3 | Raspberry Pi 3 + Intel神经计算棒2 | Google Edge TPU 开发板 |
ResNet-50 | 分类 | TensorFlow | 36 FPS | 1.4 FPS | 16 FPS | DNR |
MobileNet-v2 | 分类 | TensorFlow | 64 FPS | 2.5 FPS | 30 FPS | 130 FPS |
SSD ResNet-18(960×544) | 物体检测 | TensorFlow | 5 FPS | DNR | DNR | DNR |
SSD ResNet-18(480×272) | 物体检测 | TensorFlow | 16 FPS | DNR | DNR | DNR |
SSD ResNet-18(300×300) | 物体检测 | TensorFlow | 18 FPS | DNR | DNR | DNR |
SSD Mobilenet-V2(960×544) | 物体 | TensorFlow | 8 FPS | DNR | 1.8 FPS | DNR |
SSD Mobilenet-V2(480×272) | 物体检测 | TensorFlow | 27 FPS | DNR | 7 FPS | DNR |
SSD Mobilenet-V2 (300×300) | 物体检测 | TensorFlow | 39 FPS | 1 FPS | 11 FPS | 48 FPS |
成立V4 (299×299) | 分类 | PyTorch | 11 FPS | DNR | DNR | 9 FPS |
小小的YOLO V3 (416×416) | 物体检测 | 暗网 | 25 FPS | 0.5 FPS | DNR | DNR |
OpenPose (256×256) | 姿势估计 | 咖啡 | 14 FPS | DNR | 5 FPS | DNR |
VGG-19(224×224) | 分类 | MXNet | 10 FPS | 0.5 FPS | 5 FPS | DNR |
超高分辨率(481×321) | 图像处理 | PyTorch | 15 FPS | DNR | 0.6 FPS | DNR |
UNET (1x512x512) | 分割 | 咖啡 | 18 FPS | DNR | 5 FPS | DNR |
表2提供了完整的结果,包括其他平台的性能,如Raspberry Pi 3,Intel Neural Compute Stick 2和Google Edge TPU Coral Dev Board:
由于内存容量有限,网络层不受支持或硬件/软件限制,DNR(未运行)结果频繁发生。固定功能神经网络加速器通常支持相对较窄的一组用例,硬件支持专用层操作,需要网络权重和激活以适应有限的片上高速缓存,以避免重大的数据传输损失。它们可能会回退到主机CPU上以运行硬件中不支持的层,并且可能依赖于支持减少的框架子集的模型编译器(例如,TFLite)。
Jetson Nano灵活的软件和完整的框架支持,内存容量和统一内存子系统使其能够运行多种不同的网络,达到全高清分辨率,包括同时在多个传感器流上的可变批量大小。这些基准测试代表了流行网络的一些示例,但用户可以通过加速性能为Jetson Nano部署各种模型和定制架构。而Jetson Nano不仅限于DNN推理。其CUDA架构可用于计算机视觉和数字信号处理(DSP),使用包括FFT,BLAS和LAPACK操作在内的算法,以及用户定义的CUDA内核。
多流视频分析
Jetson Nano可实时处理多达8个高清全动态视频流,并可部署为网络视频录像机(NVR),智能相机和物联网网关的低功耗边缘智能视频分析平台。NVIDIA的DeepStream SDK 使用ZeroCopy和TensorRT优化端到端推理管道,以在边缘和本地服务器上实现最佳性能。下面的视频显示了Jetson Nano在8个1080p30流上同时执行物体检测,基于ResNet的模型以全分辨率运行,吞吐量为每秒500万像素(MP / s)。
在Jetson Nano上运行的DeepStream应用程序,基于ResNet的
对象检测器同时在八个独立的1080p30视频流上运行。
图4中的框图显示了使用Jetson Nano通过深度学习分析在千兆以太网上摄取和处理多达八个数字流的示例NVR架构。该系统可解码500 MP / s的H.264 / H.265,并编码250 MP / s的H.264 / H.265视频。
图4.带有Jetson Nano和8x HD摄像头输入的参考NVR系统架构
针对Jetson Nano的DeepStream SDK支持计划于2019年第二季度发布。请加入DeepStream开发人员计划 以接收有关即将发布的版本的通知。
JetBot
图5中所示的NVIDIA JetBot是一个新的开源自动机器人套件,它提供了所有软件和硬件计划,以低于250美元的价格构建一个人工智能的深度学习机器人。硬件材料包括Jetson Nano,IMX219 800万像素摄像头,3D打印机箱,电池组,电机,I2C电机驱动器和配件。
图5.基于Jetson Nano的NVIDIA JetBot开源深度学习自主机器人套件,价格低于250美元
该项目通过Jupyter笔记本为您提供了易于学习的示例,介绍如何编写Python代码来控制电机,训练JetBot检测障碍物,跟踪人和家庭物体等物体,并训练JetBot跟踪地板周围的路径。可以通过扩展代码和使用AI框架为JetBot创建新功能。
还有 可用于JetBot的ROS节点,为希望集成基于ROS的应用程序和SLAM和高级路径规划等功能的用户提供ROS Melodic支持。包含JetBot的ROS节点的GitHub存储库还包括Gazebo 3D机器人模拟器的模型,允许在部署到机器人之前在虚拟环境中开发和测试新的AI行为。Gazebo模拟器生成合成相机数据,并在Jetson Nano上运行。
Hello AI World 提供了一个很好的方式来开始使用Jetson并体验AI的强大功能。在短短几个小时内,您就可以使用JetPack SDK和NVIDIA TensorRT在Jetson Nano Developer Kit上进行一系列深度学习推理演示,并进行实时图像分类和对象检测(使用预训练模型)。本教程重点介绍与计算机视觉相关的网络,并包括使用实时摄像头。您还可以使用C ++编写自己易于理解的识别程序。可用的深度学习ROS节点 将这些识别,检测和分段推理功能与ROS集成在一起 适用于先进的机器人系统和平台。这些实时推理节点可以轻松地放入现有的ROS应用程序中。图6突出显示了一些示例。
图6. Hello AI World和两天演示教程通过部署深度学习计算机视觉,使用户快速启动并运行
想要尝试培训他们自己的模型的开发人员可以遵循完整的“ 两天演示 ”教程,该教程涵盖了图像分类,对象检测和带有转移学习的语义分割模型的重新训练和定制。传递学习可以精确调整特定数据集的模型权重,并避免必须从头开始训练模型。传输学习最有效地在连接了NVIDIA独立GPU的PC或云实例上执行,因为培训需要比推理更多的计算资源和时间。
然而,由于Jetson Nano可以运行TensorFlow,PyTorch和Caffe等完整的培训框架,因此它还能够为那些可能无法访问另一台专用培训机并且愿意等待更长时间才能获得结果的人进行转学。表3突出了PyTorch使用Jetson Nano在200天图像,22.5GB ImageNet子集上训练Alexnet和ResNet-18的两天到演示教程的转移学习的初步结果:
表3.使用Jetson Nano和转移学习在ImageNet数据集的样本200K图像/ 22.5GB子集上重新训练图像分类网络的结果 | |||
网络 | 批量大小 | 每个时代的时间 | 张/秒 |
AlexNet | 64 | 1.16小时 | 45 |
RESNET-18 | 64 | 3.22小时 | 16 |
每个时期的时间是完全通过200K图像的训练数据集所需的时间。对于可用结果,分类网络可能需要2-5个时期,并且应该在离散GPU系统上训练生产模型以获得更多时期,直到它们达到最大准确度。但是,Jetson Nano让您可以通过让网络在一夜之间重新培训,在低成本平台上体验深度学习和人工智能。并非所有自定义数据集都可能与此处使用的22.5GB示例一样大。因此,图像/秒表示Jetson Nano的训练性能,每个时期的时间缩放与数据集的大小,训练批量大小和网络复杂性。其他型号也可以在Jetson Nano上重新训练,同时增加训练时间。