书籍详情

深入理解计算机视觉:在边缘端构建高效的目标检测应用

深入理解计算机视觉:在边缘端构建高效的目标检测应用

作者:张晨然

出版社:电子工业出版社

出版时间:2023-06-01

ISBN:9787121455940

定价:¥149.00

购买这本书可以去
内容简介
  本书按实战项目研发的先后顺序,介绍了目标检测神经网络从研发到运营的全生命周期。首先介绍了目标检测场景下的图片标注方法和数据格式,以及与之密切相关的特征融合网络和预测网络;介绍了数据"后处理”所涉及的NMS算法及其变种,在此基础上,读者只需结合各式各样的骨干网络就可以搭建完整的一阶段目标检测神经网络模型。接下来介绍了神经网络的动态模式和静态模式两种训练方法,以及训练过程中的数据监控和异常处理。后以亚马逊云和谷歌Coral开发板为例,介绍了云端部署和边缘端部署神经网络的两种部署方法。其中,对于边缘端部署,本书还详细介绍了神经网络量化模型的基础原理和模型编译逻辑,这对将神经网络转化为可独立交付的产品至关重要。 本书还结合智慧交通、智慧后勤、自动驾驶等项目,介绍了计算机视觉数据增强技术和神经网络性能评估原理,以及边缘计算网关、边缘计算系统、自动驾驶数据的计算原理和PointNet等多个三维目标检测神经网络,帮助读者快速将计算机视觉技术运用到实际生产中。
作者简介
  作者本科毕业于天津大学通信工程专业,硕士研究生阶段就读于厦门大学,主攻嵌入式系统和数字信号底层算法,具备扎实的理论基础。作者先后就职于中国电信集团公司和福建省电子信息(集团)有限责任公司,目前担任福建省人工智能学会的理事和企业工作委员会的主任,同时也担任谷歌开发者社区、亚马逊开发者生态的福州区域负责人,长期从事计算机视觉和自然语言基础技术的研究,积累了丰富的人工智能项目经验,致力于推动深度学习在交通、工业、民生、建筑等领域的应用落地。作者于2017年获得高级工程师职称,拥有多项发明专利。
目录
目录


第1篇 一阶段目标检测神经网络的结构设计
第1章 目标检测的竞赛和数据集 2
1.1 计算机视觉坐标系的约定和概念 2
1.1.1 图像的坐标系约定 2
1.1.2 矩形框的描述方法约定 3
1.2 PASCAL VOC竞赛和数据集 6
1.2.1 PASCAL VOC竞赛任务和数据集简介 6
1.2.2 PASCAL VOC2007数据集探索 8
1.3 MS COCO挑战赛和数据集 14
1.3.1 MS COCO挑战赛的竞赛任务 14
1.3.2 MS COCO数据集简介 17
1.4 目标检测标注的解析和统计 18
1.4.1 XML文件的格式 18
1.4.2 XML文件解析和数据均衡性统计 20
第2章 目标检测神经网络综述 24
2.1 几个著名的目标检测神经网络 24
2.1.1 R-CNN家族神经网络简介 25
2.1.2 YOLO和SSD神经网络简介 28
2.1.3 CenterNet神经网络简介 30
2.1.4 U-Net神经网络简介 31
2.2 目标检测神经网络分类和高阶API资源 32
2.3 矩形框的交并比评价指标和实现 34
第3章 一阶段目标检测神经网络的特征融合和中段网络 40
3.1 一阶段目标检测神经网络的整体结构 40
3.2 一阶段目标检测神经网络的若干中段网络介绍 41
3.2.1 单向融合的中段网络 41
3.2.2 简单双向融合的中段网络 43
3.2.3 复杂双向融合的中段网络 45
3.3 不同融合方案中段网络的关系和应用 46
3.4 YOLO的多尺度特征融合中段网络案例 47
3.4.1 YOLOV3的中段网络及实现 48
3.4.2 YOLOV4的中段网络PANet及实现 52
3.4.3 YOLOV3-tiny和YOLOV4-tiny版本的中段网络及实现 58
3.5 神经网络输出的解码 62
3.5.1 融合特征图的几何含义 62
3.5.2 矩形框中心点坐标的解码 65
3.5.3 矩形框宽度和高度的解码 67
3.5.4 前背景概率和分类概率的解码 69
3.5.5 矩形框角点坐标和解码函数整体输出 70
第4章 一阶段目标检测神经网络典型案例——YOLO解析 73
4.1 YOLO家族目标检测神经网络简介 73
4.2 先验锚框和YOLO神经网络的检测思路 74
4.2.1 用人为设定方式找到的先验锚框 74
4.2.2 用聚类回归方式找到的先验锚框 76
4.2.3 YOLO的先验锚框编号 79
4.2.4 YOLO的XYSCALE和缩放比参数 81
4.3 建立YOLO神经网络 82
4.3.1 根据选择确定YOLO神经网络参数 83
4.3.2 建立骨干网络、中段网络和预测网络 84
4.3.3 加上解码网络后建立完整的YOLO模型 86
4.4 YOLO神经网络的迁移学习和权重加载 89
4.4.1 骨干网络关键层的起止编号 89
4.4.2 中段网络和预测网络关键层的起止编号 93
4.4.3 YOLO模型的权重加载 100
4.5 原版YOLO模型的预测 107
4.5.1 原版YOLO模型的建立和参数加载 107
4.5.2 神经网络的输入/输出数据重组 108
4.6 NMS算法的原理和预测结果可视化 111
4.6.1 传统NMS算法原理 112
4.6.2 NMS算法的变种 116
4.6.3 预测结果的筛选和可视化 121
4.7 YOLO模型的多个衍生变种简介 124
4.8 YOLO模型的发展与展望 127
第2篇 YOLO神经网络的损失函数和训练
第5章 将数据资源制作成标准TFRecord数据集文件 130
5.1 数据资源的加载 130
5.2 数据资源的解析和提取 135
5.3 TFRecord数据集文件的制作 139
5.4 单样本的example对象制作 139
5.5 遍历全部样本制作完整数据集 144
5.6 从数据集提取样本进行核对 145
第6章 数据集的后续处理 150
6.1 数据集的加载和打包 150
6.1.1 数据集的加载和矩阵化 150
6.1.2 图像矩阵尺寸的标准化 153
6.1.3 真实矩形框标注矩阵尺寸的标准化 158
6.1.4 数据集的打包处理 159
6.2 将原始数据集打包为可计算数据集 163
6.2.1 计算真实矩形框与先验锚框的匹配度排名 164
6.2.2 找到真实矩形框所对应的网格下的先验锚框 169
6.2.3 可计算数据集测试 177
第7章 一阶段目标检测的损失函数的设计和实现 181
7.1 损失函数框架和输入数据的合理性判别 182
7.2 真实数据和预测数据的对应和分解 184
7.3 预测矩形框的前背景归类和权重分配 188
7.4 预测矩形框的误差度量 192
7.4.1 用中心点表示的位置误差 192
7.4.2 用宽度和高度表示的位置误差 192
7.4.3 用通用交并比表示的矩形框误差 194
7.4.4 用距离交并比表示的矩形框误差 198
7.4.5 用完整交并比表示的矩形框误差 200
7.4.6 用交并比量化矩形框预测误差的实践 206
7.5 前景和背景的预测误差 208
7.5.1 前景误差和背景误差的定义 208
7.5.2 样本均衡原理和Focal-Loss应用 209
7.6 分类预测误差 212
7.7 总误差的合并和数值合理性确认 213
第8章 YOLO神经网络的训练 217
8.1 数据集和模型准备 217
8.1.1 参数配置 217
8.1.2 数据集预处理 220
8.1.3 模型参数加载和冻结 223
8.2 动态模式训练 225
8.2.1 监控指标的设计和日志存储 225
8.2.2 动态模式下神经网络的训练和调试 230
8.3 训练中非法数值的监控和调试 237
8.3.1 发现和监控非法数值计算结果 237
8.3.2 计算结果出现非法数值的原因和对策 240
8.4 静态模式训练和TensorBoard监控 244
第3篇 目标检测神经网络的云端和边缘端部署
第9章 一阶段目标检测神经网络的云端训练和部署 250
9.1 一阶段目标检测神经网络的推理模型设计 250
9.1.1 一阶段目标检测神经网络的推理形态 250
9.1.2 推理场景下的数据重组网络 251
9.1.3 构造推理场景下的YOLO模型函数 254
9.1.4 构造和测试YOLO推理模型 255
9.2 目标检测推理模型的云端部署 256
9.2.1 亚马逊EC2云计算实例选型 257
9.2.2 使用云端服务器部署模型并响应推理请求 257
9.3 在亚马逊SageMakerStudio上训练云计算模型 259
第10章 神经网络的INT8全整数量化原理 262
10.1 神经网络量化模型的基本概念 262
10.1.1 神经网络量化模型速览和可视化 262
10.1.2 浮点数值的量化存储和计算原理 268
10.2 神经网络量化模型的制作和分析 273
10.2.1 算子的映射和合并 273
10.2.2 量化参数搜索和代表数据集 276
10.2.3 TFLite量化模型的算子和张量分析 279
10.3 量化性能分析和量化模型的逐层调试 289
10.3.1 量化信噪比分析原理 289
10.3.2 量化模型的单层误差调试 294
10.3.3 量化模型的误差累积调试 296
10.4 不支持算子的替换技巧 300
10.4.1 大动态范围非线性算子替换原理 301
10.4.2 大动态范围非线性算子替换效果 303
第11章 以YOLO和Edge TPU为例的边缘计算实战 305
11.1 TensorFlow模型的量化 307
11.1.1 量化感知训练获得INT8整型模型 308
11.1.2 训练后量化获得INT8整型模型 313
11.2 神经网络模型的编译 315
11.2.1 模型编译的工作原理 315
11.2.2 在Edge TPU上部署模型的注意事项 318
11.3 YOLO目标检测模型的量化和编译 321
11.3.1 YOLO变种版本选择和骨干网络修改 321
11.3.2 针对硬件限制进行解码网络的修改 322
11.3.3 预测矩阵的汇总重组 325
11.3.4 YOLO推理模型的建立 327
11.3.5 YOLO模型的量化 329
11.3.6 量化模型的测试和信噪比分析 331
11.4 YOLO量化模型的编译和边缘端部署 337
11.4.1 量化模型转换为编译模型 337
11.4.2 编写边缘端编译模型推理代码 341
第4篇 个性化数据增强和目标检测神经网络性能测试
第12章 个性化目标检测数据集处理 346
12.1 农村公路占道数据的目标检测应用 346
12.1.1 项目数据背景 346
12.1.2 数据的预处理 347
12.2 数据的增强 350
12.2.1 数据增强技术的概念和效果 350
12.2.2 基于空间变换的数据增强方法 351
12.2.3 基于颜色空间的数据增强方法 354
12.2.4 其他图像数据的增强手法 357
12.2.5 图像数据集的增强工具和探索工具 360
12.3 使用Albumentations进行数据增强 361
12.3.1 Albumentations的安装和使用 361
12.3.2 几何数据增强管道的配置 362
12.3.3 使用数据管道处理并保存数据 364
12.3.4 像素数据增强管道的配置 366
12.3.5 增强数据集的运用 367
第13章 模型性能的定量测试和决策阈值选择 368
13.1 神经网络性能量化的基本概念 368
13.1.1 神经网络预测的混淆矩阵 368
13.1.2 神经网络量化评估和P-R曲线 369
13.1.3 多分类目标检测场景和平均精确率均值 371
13.1.4 F分数评估方法 372
13.2 餐盘识别神经网络性能测试案例 373
13.2.1 项目背景 373
13.2.2 提取全部真实数据和预测结果 375
13.2.3 模拟不同决策阈值下的精确率和召回率 378
第14章 使用边缘计算网关进行多路摄像头目标检测 385
14.1 边缘计算网关的整体结构 385
14.1.1 核心TPU组件 385
14.1.2 计算卡和模组 386
14.1.3 下位机的操作系统 387
14.1.4 下位机的开发环境简介 388
14.2 开发环境准备 392
14.2.1 上位机安装Docker 392
14.2.2 上位机装载镜像和SDK开发包 393
14.2.3 神经网络工具链和主要用途 397
14.2.4 针对TensorFlow模型的编译方法 398
14.3 浮点32位模型部署的全流程 399
14.3.1 训练主机将Keras模型转换为单pb模型文件 399
14.3.2 上位机将单pb模型文件编译为bmodel模型文件 400
14.3.3 下位机读取和探索bmodel模型文件 402
14.3.4 下位机使用bmodel模型文件进行推理 406
14.4 边缘端全整数量化模型部署 410
14.4.1 在上位机Docker内制作代表数据集 410
14.4.2 在上位机D
猜您喜欢

读书导航