人工智能边缘计算开发实战:基于NVIDIA Jetson Nano
定 价:99 元
- 作者:陈泳翰、桑圆圆 编著
- 出版时间:2024/2/1
- ISBN:9787122437334
- 出 版 社:化学工业出版社
- 中图法分类:TP18
- 页码:318
- 纸张:
- 版次:01
- 开本:小16开
本书选取当下大热的AIoT(人工智能物联网)为应用场景,以NVIDIA Jetson Nano为硬件平台,系统介绍了人工智能的开发知识,重点讲解了人工智能中边缘计算技术的应用。首先介绍了NVIDIA Jetson Nano开发平台和开发环境的配置,然后通过具体的案例介绍了人工智能边缘计算在物体检测、深度学习等领域的应用。
本书适合人工智能初学者、嵌入式开发技术人员、对人工智能技术感兴趣的青少年及创客教师自学使用,同时也可用作高等院校人工智能相关专业的教材及参考书。
第1章 初识边缘AI计算 001
1.1 人工智能驱动的边缘计算 002
1.2 适配深度神经网络的众核架构 003
1.3 选择合适的人工智能学习平台 006
1.4 英伟达的“高效/易用/兼容”开发生态 009
1.5 学习边缘AI计算从Jetson上手 012
1.6 Jetson的AIoT成功案例与配套资源 015
1.7 本章小结 017
第2章 为Jetson设备安装开发环境 019
2.1 Jetpack提供完整的AIoT开发资源 019
2.2 用Jetpack安装Jetson设备 022
2.3 首次启动Jetson设备 026
2.4 远程控制Jetson设备 027
2.5 检查系统状态的基础指令 031
2.6 监控与调试Jetson设备的性能 032
2.7 配套的辅助工具 034
2.8 本章小结 036
第3章 体验Jetpack开发环境 037
3.1 CUDA并行计算的加速性能 037
3.1.1 编译CUDA samples 038
3.1.2 nbody(粒子碰撞模拟) 038
3.1.3 oceanFFT(海洋波动模拟) 040
3.1.4 smokeParticles(烟雾粒子光影模拟) 041
3.2 高阶计算机视觉开发工具包 041
3.2.1 VisionWorks工具包与范例 042
3.2.2 VPI简介 047
3.2.3 VPI简易Python范例 050
3.3 摄像头的选择与调用 053
3.3.1 GStreamer流媒体框架 054
3.3.2 V4L2 应用库 055
3.3.3 libargus 应用库 056
3.4 检测摄像头 057
3.4.1 用v4l2-ctl检测摄像头参数 057
3.4.2 用NvGstCapture启动摄像头 059
3.4.3 用gst-launch启动摄像头 060
3.5 好用的OpenCV计算机视觉库 061
3.5.1 通过UVC调用USB摄像头 062
3.5.2 通过GStreamer调用CSI摄像头 063
3.5.3 体验三种计算机视觉算法 064
3.5.4 简易的人脸定位应用 066
3.5.5 简易的眼睛定位应用 067
3.6 本章小结 068
第4章 深度学习之推理识别 070
4.1 智能视觉类三大基础应用 071
4.1.1 图像分类(image classif?ication) 071
4.1.2 物体检测(object detection) 073
4.1.3 语义分割(semantic segmentation) 074
4.2 进入Hello AI World 076
4.2.1 完整的深度神经网络(DNN)视觉库 076
4.2.2 主要功能模块 078
4.2.3 安装Hello AI World项目 079
4.3 立即体验深度学习推理效果 081
4.3.1 总体参数选项说明 082
4.3.2 imagenet成批图像的分类检测 084
4.3.3 imagenet的参数说明 086
4.3.4 detectnet物体检测指令 088
4.3.5 其他深度学习推理应用 091
4.4 用Python开发自己的深度学习推理应用 094
4.4.1 10行代码的物体识别应用 094
4.4.2 获取推理检测的信息 095
4.4.3 添加参数解析功能,扩大适用范围 097
4.5 jetson.utils视觉处理工具 100
4.5.1 videoSource()负责全部输入源处理 101
4.5.2 videoOutput() 负责全部输出处理 104
4.5.3 简单的输入/输出范例 105
4.5.4 RTP/RTSP视频流转向应用 106
4.6 本章小结 109
第5章 深度学习之模型训练 110
5.1 调试Jetson的模型训练环境 111
5.2 图像分类的模型训练 113
5.2.1 整理图像分类的数据 113
5.2.2 用train.py执行训练模型 114
5.2.3 用训练好的模型执行推理识别 117
5.2.4 从ImageNet获取图像 119
5.3 目标检测的模型训练 122
5.3.1 从Open Images获取目标检测数据 123
5.3.2 train_ssd.py参数说明 126
5.3.3 执行目标检测的模型训练 128
5.3.4 模型训练的参数与时间比较 131
5.3.5 转成ONNX格式进行推理识别测试 131
5.4 更丰富的数据集资源 134
5.4.1 VOC目录结构与标注格式 134
5.4.2 从VOC数据集提取所需要的类别 136
5.4.3 从COCO数据集抽离类别并转成VOC格式 138
5.4.4 从ImageNet数据集抽离类别并转成VOC格式 140
5.4.5 汇总多种数据集来源进行模型训练 140
5.5 对自己收集的数据进行标注 141
5.5.1 手动收集图像数据 141
5.5.2 图像标注工具 142
5.5.3 标注过程需要注意的重点 144
5.6 本章小结 146
第6章 在Jetson上执行YOLO算法 147
6.1 YOLO神经网络简史与算法演进 147
6.2 搭配YOLO算法的Darknet框架 150
6.2.1 安装Darknet框架 150
6.2.2 Darknet使用说明 152
6.2.3 执行YOLO目标检测的推理计算 154
6.3 用Darknet训练YOLO口罩识别模型 157
6.3.1 在Jetson使用YOLOv4-Tiny训练模型 158
6.3.2 整理数据集与格式转换 159
6.3.3 修改YOLOv4-Tiny网络结构文件 161
6.3.4 执行训练模型的步骤 163
6.3.5 检测口罩识别模型的效果与性能 165
6.4 调用Darknet的Python接口提取识别内容 168
6.4.1 darknet_video.py的使用方法 168
6.4.2 修改darknet_images.py获取所识别物体的信息 170
6.4.3 用darknet_video.py获取识别物件信息 172
6.5 本章小结 173
第7章 上手DeepStream智能分析工具 175
7.1 基于GStreamer框架的DeepStream 177
7.1.1 GStreamer框架简介 177
7.1.2 GStreamer通道结构的组件与衬垫 179
7.1.3 GStreamer箱柜的管理机制 180
7.2 DeepStream的运作体系 183
7.2.1 DeepStream的功能组件 183
7.2.2 DeepStream的数据流 186
7.2.3 DeepStream组件与硬件引擎之对应 189
7.3 执行DeepStream经典范例 191
7.3.1 安装DeepStream 开发套件 191
7.3.2 deepstream-app范例简介 193
7.3.3 deepstream-app配置文件与相关资源 194
7.3.4 开始deepstream-app实验 197
7.4 深入deepstream-app配置文件设置组 200
7.4.1 系统类设置组 201
7.4.2 输入源设置组 202
7.4.3 预处理设置组 205
7.4.4 智能计算设置组 206
7.4.5 信息汇总之视觉显示设置组 209
7.4.6 信息汇总之IoT传送设置组 211
7.5 deepstream-app更多应用 213
7.5.1 添加多个输入源 214
7.5.2 调整显示输出的细节 216
7.5.3 目标跟踪功能 217
7.5.4 多神经网络的组合识别 219
7.6 本章小结 221
第8章 开发DeepStream应用 223
8.1 开始DeepStream的Python应用 223
8.1.1 配置DeepStream的Python开发环境 224
8.1.2 从deepstream-test1上手 226
8.1.3 创建DeepStream应用的7步骤 228
8.2 DeepStream的输入与输出 230
8.2.1 添加USB摄像头 231
8.2.2 添加多路多类型输入源功能 233
8.2.3 动态增减数据源 235
8.2.4 添加RTSP视频流输出 236
8.3 DeepStream的智能计算插件 240
8.3.1 nvinfer推理插件的角色与工作原理 240
8.3.2 nvinfer控制参数与配置文件 242
8.3.3 nvtracker目标跟踪算法 246
8.3.4 nvtracker控制参数与配置文件 248
8.4 DeepStream的智能范例说明 249
8.4.1 deepstream-test2多神经网络组合识别 249
8.4.2 导入自定义YOLO神经网络插件 251
8.4.3 视频动态遮蔽私密信息 254
8.4.4 中文车牌号识别 257
8.4.5 善用NGC丰富的预训练模型资源 262
8.5 DeepStream的统计分析插件 263
8.5.1 nvdsanalytics插件工作流与元数据 264
8.5.2 nvdsanalytics的配置文件 266
8.5.3 执行deepstream-nvdsanalytics范例 267
8.6 性能优化基本原则 270
8.7 本章小结 271
第9章 Jetbot智能车学习系统 273
9.1 安装Jetbot操作环境 274
9.1.1 用镜像文件烧录 275
9.1.2 在Jetson用脚本安装 275
9.1.3 下载容器镜像安装(推荐) 277
9.1.4 检测环境:登录Jupyter操作界面 277
9.2 安装无线网与配置Wi-Fi连线 278
9.2.1 安装无线网卡 278
9.2.2 为Jetbot配置独立的无线连接方式 280
9.2.3 将Jetbot无线网卡设置为热点 280
9.2.4 将控制台PC无线网卡设置为热点 282
9.2.5 通过便携无线路由器协助 283
9.3 组装Jetbot智能车所需要注意的细节 284
9.3.1 非标准件的注意细节 285
9.3.2 OLED显示屏的选型与处理 287
9.3.3 TT电机的选购与测试 288
9.4 跑动Jetbot 289
9.4.1 基本运动(basic_motion) 290
9.4.2 游戏摇杆控制(teleoperation) 293
9.5 避撞功能 295
9.5.1 Jetbot环境识别原理 295
9.5.2 现场演示(live_demo) 297
9.5.3 数据采集 302
9.5.4 模型训练 304
9.6 剖析Jetson的40针引脚 304
9.6.1 分清楚GPIO与SFIO的不同 306
9.6.2 jetson-io引脚配置工具 308
9.6.3 Jetson.GPIO应用开发库 309
9.7 浅谈I2C总线与周边设备 311
9.7.1 I2C总线的特性 311
9.7.2 i2c-tools总线检测工具 312
9.7.3 Jetbot控制OLED显示屏的代码 314
9.7.4 Jetbot的控制元件与代码 315
9.8 本章小结 317