高性价比 边缘计算平台:Jetbot

高性价比 边缘计算平台:Jetbot

展开查看详情

1. 区 术 cn 社 技 g. 能 cu 智 ai 工 . ww 何琨/英伟达 G人 w kenh@nvidia.com 13810640677 CU AI

2. 区 术 cn 社 技 g. Jetson NANO & Jetbot 能 cu 智 ai JetBot 体系结构 工 . ww 利用TensorRT加速推理实践 G人 w CU AI 2

3. 边缘计算 区 术 cn 社 1. 分布式和低延时计算 技 g. 2. 效率更高 能 cu 3. 更加智能化 智 ai 4. 更加节能 工 . ww 5. 缓解流量压力 G人 w CU AI 3

4.JETSON NANO DEVELOPER KIT JETSON NANO MODULE 区 术 cn 社 Small, low-power AI Computer 技 g. 128 CUDA Cores | 4 Core CPU 能 cu 4 GB Memory 智 ai 472 GFLOPs 工 . 70x45mm ww 5W | 10W G人 w CU AI 4

5. JETSON NANO 128 Core Maxwell GPU 0.5 TFLOPs (FP16) 区 CPU 4 core ARM A57 @ 1.43 GHz 术 cn 社 Memory 4 GB 64 bit LPDDR4 25.6 GB/s 技 g. Softwar Storage 16 GB eMMC e 能 cu 4K @ 30 | 4x 1080p @ 30 | 8x 720p @ 30 Video Encode (H.264/H.265) 智 ai 4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 | 16x 720p @ Video Decode 30 | (H.264/H.265) 工 . 12 (3x4 or 4x2) MIPI CSI-2 DPHY 1.1 lanes ww Camera (1.5 Gbps) WiFi/BT Requires external chip Display G人 w HDMI 2.0 or DP1.2 | eDP 1.4 | DSI (1 x2) 2 simultaneous 1 x1/2/4 PCIE UPHY 1 USB 3.0 CU SATA None Other I/Os 1xSDIO / 2xSPI / 3xI2C / UART / I2S / GPIOs AI USB OTG Not supported Mechanical 69.6mm x 45mm 260 pin edge connector, No TTP 5

6. 英伟达 NANO开发板 区 术 cn 1. microSD card slot for main storage 社 技 g. 2. 40-pin expansion header 3. Micro-USB port for 5V power input or for 能 cu data 智 ai 4. Gigabit Ethernet port 工 . 5. USB 3.0 ports (x4) ww 6. HDMI output port G人 w 7. DisplayPort connector 8. DC Barrel jack for 5V power input 9. MIPI CSI camera connector CU 1. microSD card (16GB UHS-1 minimum) 2. USB keyboard and mouse AI 3. Computer display (either HDMI or DP) 4. Micro-USB power supply (5V⎓ 2A 6

7. JETSON SOFTWARE 区 术 cn 社 技 g. 能 cu Nsight Developer Tools Modules 智 ai Depth Object Pose Gesture Path Ecosystem … estimation detection estimation recognition planning modules 工 . ww TensorRT VisionWorks cuBLAS Vulkan libargus Drivers Jetpack SDK cuDNN Deep Learning G人 w OpenCV Computer Vision cuFFT Accel. Computing OpenGL Graphics Video API Multimedia Ecosystem Sensors CUDA • Linux4Tegra • ROS CU Jetson Computer AI 7 Jetson software: developer.nvidia.com/jetson

8. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 术 cn 社 区 8

9. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 术 cn 社 区 9

10. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 术 cn 社 区 10

11. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 术 cn 社 区 11

12. 区 智能小车框架图 术 cn 社 技 g. Power supply Communication 能 cu USB 智 ai Motor 1 工 . ww Motor I2C Nano CSI camera Driver G人 w (CPU+GPU) Motor 2 CU AI Chassis 12

13. JetBot 系统体系结构 区 术 cn 控制接口 社 • 技 g. • class Robot(SingletonConfigurable): def set_motors(self, left_speed, right_speed): 能 cu • • def forward(self, speed=1.0, duration=None): 智 ai • def backward(self, speed=1.0): 工 . • def left(self, speed=1.0): ww • def right(self, speed=1.0): • G人 w def stop(self): CU AI 13

14. JetBot 系统体系结构 区 术 cn 视频接口 社 • 技 g. • class Camera(SingletonConfigurable): 能 cu 智 ai 工 . ww G人 w CU AI 14

15. JetBot 系统体系结构 区 术 cn • 深度学习模型推理接口 社 class ObjectDetector(object): 技 g. • • 能 cu • def __init__(self, engine_path, preprocess_fn=bgr8_to_ssd_input): • logger = trt.Logger() 智 ai • trt.init_libnvinfer_plugins(logger, '') • load_plugins() 工 . self.trt_model = TRTModel(engine_path, input_names=[TRT_INPUT_NAME], ww • • output_names=[TRT_OUTPUT_NAME, TRT_OUTPUT_NAME + '_1']) • • • G人 w self.preprocess_fn = preprocess_fn def execute(self, *inputs): • trt_outputs = self.trt_model(self.preprocess_fn(*inputs)) return parse_boxes(trt_outputs) CU • • AI • def __call__(self, *inputs): • return self.execute(*inputs) 15

16. 机器人中的避障实现方案 区 术 cn 传统的避障方案: 社 • 技 g. • 超声波:易受干扰,距离短,对较小的物体不敏感 激光雷达:价格昂贵,体积较大 能 cu • • 结构光摄像头:户外易受太阳光线影像 智 ai • 双目摄像头:计算量大,受纹理,障碍物特征等问题限制 工 . • Jetbot上使用的避障方案: ww • 利用深度学习算法的优势,实现一个鲁棒性较强的避障方案 • • • G人 w 只需要一个摄像头 计算速度快,能够达到实施效果 需要大量数据支持 CU AI 16

17. 卷积神经网络 区 术 cn 传统的避障方案: 社 • 技 g. • 超声波:易受干扰,距离短,对较小的物体不敏感 激光雷达:价格昂贵,体积较大 能 cu • • 结构光摄像头:户外易受太阳光线影像 智 ai • 双目摄像头:计算量大,受纹理,障碍物特征等问题限制 工 . • Jetbot上使用的避障方案: ww • 利用深度学习算法的优势,实现一个鲁棒性较强的避障方案 • • • G人 w 只需要一个摄像头 计算速度快,能够达到实施效果 需要大量数据支持 CU AI 17

18. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 目标检测算法 术 cn 社 区 18

19. AI CU G人 w ww 工 . 智 ai 能 cu 技 g. 术 cn 社 区 19

20.TensorRT https://github.com/NVIDIA/TensorRT 区 术 cn 社 技 g. 能 cu 智 ai 工 . ww G人 w CU AI 20

21. TENSORRT WORKFLOW 区 术 cn 社 技 g. Input 能 cu ● Pre-trained FP32 model and network Output 智 ai ● Optimized execution engine on GPU for deployment 工 . ww Serialized a PLAN can be reloaded from the disk into the TensorRT runtime. There is no G人 w need to perform the optimization step again. CU AI NEURAL OPTIMIZATION PLAN EXECUTION NETWORK ENGINE ENGINE 11 21

22.2 2 FUSE NETWORK LAYERS 区 术 cn Inception structure in 社 GoogleNet 技 g. next input 能 cu concat 智 ai relu relu relu 工 . relu ww bias bias bias bias 3x3 conv. 5x5 conv. 1x1 conv. 1x1 conv. G人 w relu relu bias bias max pool 1x1 conv. 1x1 conv. CU AI input concat 22

23.2 3 FUSE NETWORK LAYERS 区 术 cn Vertical 社 fusion 技 g. next input 能 cu concat 智 ai 工 . ww 1x1 CBR 3x3 CBR 5x5 CBR 1x1 CBR G人 w 1x1 CBR 1x1 CBR max pool CU AI input concat 23

24.2 4 FUSE NETWORK LAYERS 区 术 cn Horizontal 社 fusion 技 g. next input 能 cu concat 智 ai 工 . ww 3x3 CBR 5x5 CBR 1x1 CBR G人 w max pool 1x1 CBR CU AI input concat 24

25.2 5 FUSE NETWORK LAYERS 区 术 cn Concat elision 社 技 g. next input 能 cu 智 ai 工 . ww 3x3 CBR 5x5 CBR 1x1 CBR G人 w max pool 1x1 CBR CU AI input 25

26.2 6 FUSE NETWORK LAYERS 区 术 cn Concurrency 社 技 g. next input 能 cu 智 ai 工 . ww 3x3 CBR 5x5 CBR 1x1 CBR G人 w 1x1 CBR max pool CU AI input 26

27.TensorRT 区 术 cn 1. 创建Builder 社 技 g. 2. 创建Network 3. 创建Parser 能 cu 4. 绑定输入、输出以及自定义组件 智 ai 5. 序列化或者反序列化 工 . 6. 传输计算数据(host->device) ww 7. 执行计算 G人 w 8. 传输计算结果(device->host) CU AI 27

28.TensorRT架构 PluginFactory: Build engine: 区 • create parser • createPlugin 术 cn • setWrokSpace • deserialization 社 plugin 技 g. • setkType • serialize implementation 能 cu • free • isPlugin • free 智 ai main() 工 . do_inference: MyPlugin: ww • bind the buffers • MyPlugin()/~Myplugin() G人 w • create GPU buffers and a stream • getNbOutputs() • getOutputDimensions() • transfer data • initialize() • enqueue • terminate() CU • release the stream • enqueue()-- Cuda kernel function and the buffers • serialize()/deserialize() AI 28

29. TensorRT架构 区 术 cn 社 技 g. 能 cu 智 ai SSD_mobilenet_v2 优化案例 工 . ww G人 w CU AI 29