图1. Jetson Nano开发套件(80x100mm),现已上市,售价99美元
NVIDIA 在2019年NVIDIA GPU技术大会(GTC)上发布了Jetson Nano开发套件,这是一款售价99美元的计算机,现在可供嵌入式设计人员,研究人员和DIY制造商使用,在紧凑,易用的平台上提供现代AI的强大功能。完整的软件可编程性。Jetson Nano采用四核64位ARM CPU和128核集成NVIDIA GPU,可提供472 GFLOPS的计算性能。它还包括4GB LPDDR4存储器,采用高效,低功耗封装,具有5W / 10W功率模式和5V DC输入,如图1所示。
新发布的JetPack 4.2 SDK 为基于Ubuntu 18.04的Jetson Nano提供了完整的桌面Linux环境,具有加速图形,支持NVIDIA CUDA Toolkit 10.0,以及cuDNN 7.3和TensorRT等库。该SDK还包括本机安装流行的功能开源机器学习(ML)框架,如TensorFlow,PyTorch,Caffe,Keras和MXNet,以及计算机视觉和机器人开发的框架,如OpenCV和ROS。
完全兼容这些框架和NVIDIA领先的AI平台,可以比以往更轻松地将基于AI的推理工作负载部署到Jetson。Jetson Nano为各种复杂的深度神经网络(DNN)模型提供实时计算机视觉和推理。这些功能支持多传感器自主机器人,具有智能边缘分析的物联网设备和先进的AI系统。甚至转移学习也可以使用ML框架在Jetson Nano上本地重新训练网络。
Jetson Nano开发套件的占地面积仅为80x100mm,具有四个高速USB 3.0端口,MIPI CSI-2摄像头连接器,HDMI 2.0和DisplayPort 1.3,千兆以太网,M.2 Key-E模块,MicroSD卡插槽,和40引脚GPIO接头。端口和GPIO接头开箱即用,具有各种流行的外围设备,传感器和即用型项目,例如 NVIDIA在GitHub上开源的3D可打印深度学习JetBot。
devkit从可移动的MicroSD卡启动,可以从具有SD卡适配器的任何PC进行格式化和成像。devkit可以通过Micro USB端口或5V DC桶形插孔适配器方便地供电。相机连接器兼容经济实惠的MIPI CSI传感器,包括基于JPS生态系统合作伙伴提供的8MP IMX219的模块。还支持Raspberry Pi Camera Module v2,其中包括JetPack中的驱动程序支持。表1显示了关键规格。
处理 | |
中央处理器 | 64位四核ARM A57 @ 1.43GHz |
GPU | 128核NVIDIA Maxwell @ 921MHz |
记忆 | 4GB 64位LPDDR4 @ 1600MHz | 25.6 GB / s |
视频编码器* | 4Kp30 | (4x)1080p30 | (2x)1080p60 |
视频解码器* | 4Kp60 | (2x)4Kp30 | (8x)1080p30 | (4x)1080p60 |
接口 | |
USB | 4x USB 3.0 A(主机)| USB 2.0 Micro B(设备) |
相机 | MIPI CSI-2 x2(15位Flex连接器) |
显示 | HDMI | DisplayPort的 |
联网 | 千兆以太网(RJ45) |
无线 | M.2带有PCIe x1的Key-E |
存储 | MicroSD卡(建议最低16GB UHS-1) |
其他I / O. | (3x)I2C | (2x)SPI | UART | I2S | 个GPIO |
该devkit围绕一个260引脚的SODIMM型系统级模块(SoM)构建,如图2所示.SoM包含处理器,存储器和电源管理电路。Jetson Nano计算模块尺寸为45x70mm,将于2019年6月开始发售,售价129美元(千片批量),供嵌入式设计人员集成到生产系统中。生产计算模块将包括16GB eMMC板载存储和增强I / O,PCIe Gen2 x4 / x2 / x1,MIPI DSI,附加GPIO和12个MIPI CSI-2通道,可连接多达三个x4摄像头或最多四个摄像头在x4 / x2配置中。Jetson的统一内存子系统在CPU,GPU和多媒体引擎之间共享,提供简化的ZeroCopy传感器摄取和高效处理流水线。
图2. 45x70mm Jetson Nano计算模块,带260针边缘连接器
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
表2提供了完整的结果,包括其他平台的性能,如Raspberry Pi 3,Intel Neural Compute Stick 2和Google Edge TPU Coral Dev Board:
模型 | 应用 | 骨架 | 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 |
由于内存容量有限,网络层不受支持或硬件/软件限制,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开发人员计划 以接收有关即将发布的版本的通知。
图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的两天到演示教程的转移学习的初步结果:
网络 | 批量大小 | 每个时代的时间 | 张/秒 |
AlexNet | 64 | 1.16小时 | 45 |
RESNET-18 | 64 | 3.22小时 | 16 |
每个时期的时间是完全通过200K图像的训练数据集所需的时间。对于可用结果,分类网络可能需要2-5个时期,并且应该在离散GPU系统上训练生产模型以获得更多时期,直到它们达到最大准确度。但是,Jetson Nano让您可以通过让网络在一夜之间重新培训,在低成本平台上体验深度学习和人工智能。并非所有自定义数据集都可能与此处使用的22.5GB示例一样大。因此,图像/秒表示Jetson Nano的训练性能,每个时期的时间缩放与数据集的大小,训练批量大小和网络复杂性。其他型号也可以在Jetson Nano上重新训练,同时增加训练时间。
Jetson Nano的计算性能,紧凑的占地面积和灵活性为开发人员带来了创建AI供电设备和嵌入式系统的无限可能性。今天开始使用Jetson Nano开发套件只需99美元。访问我们的嵌入式开发人员专区,下载软件和文档,浏览Jetson Nano可用的开源项目。加入Jetson DevTalk论坛的社区以获得支持,并确保共享您的项目。我们期待看到您创造的东西!