内容简介
《计算机视觉与PyTorch项目实战:基于深度学习框架的端到端产品级模型设计与开发》使用PyTorch 框架来讨论计算机视觉算法及其应用。首先介绍计算机视觉基础,主题涉及卷积神经网络、ResNet、YOLO、数据增强和业内使用的其他常规技术。随后简要概述PyTorch 库。接下来探究图像分类问题、对象检测技术以及如何在训练和运行推理的同时实现迁移学习。最后通过一个完整的建模过程来阐述深度学习框架PyTorch 是如何运用优化技巧和模型AI 可解释性的。
《计算机视觉与PyTorch项目实战:基于深度学习框架的端到端产品级模型设计与开发》适合具有一定基础的中高级读者阅读和参考,可以帮助他们使用迁移学习和PyTorch 来搭建产品级的计算机视觉模型。
目录
第1章 计算机视觉的基础构成
第2章 图像分类
第3章 构建目标检测模型
第4章 构建图像分割模型
第5章 基于图像的搜索和推荐系统
第6章 姿态估计
第7章 图像异常检测
第8章 图像超分辨率
第9章 视频分析
第10章 计算机视觉的可解释AI
详细目录
第1章 计算机视觉的基本构成 001
1.1 什么是计算机视觉 002
1.1.1 应用 002
1.1.2 通道 005
1.1.3 卷积神经网络 007
1.1.4 了解CNN架构类型 014
1.1.5 掌握深度学习模型 021
1.1.6 PyTorch简介 024
1.2 小结 026
第2章 图像分类 027
2.1 本章所涵盖的主题 028
2.2 方法概述 028
2.3 创建图像分类流程 029
2.3.1 第一个基本模型 030
2.3.2 数据 030
2.3.3 数据探索 032
2.3.4 数据加载器 033
2.3.5 定义模型 035
2.3.6 训练过程 040
2.3.7 基本模型的第二种变体 044
2.3.8 基本模型的第三种变体 046
2.3.9 基本模型的第四种变体 052
2.7 小结 053
第3章 构建目标检测模型 055
3.1 使用Boosted Cascade进行目标检测 056
3.2 R-CNN 058
3.2.1 区域候选网络 059
3.2.2 快速区域卷积神经网络 062
3.2.3 候选区域网络的工作原理 063
3.2.4 锚框生成层 064
3.2.5 候选区域层 065
3.3 Mask R-CNN 065
3.4 YOLO 066
3.5 YOLO V2/V3 068
3.6 项目代码片段 069
3.7 小结 082
第4章 构建图像分割模型 083
4.1 图像分割 084
4.2 PyTorch预训练支持 086
4.2.1 语义分割 086
4.2.2 实例分割 089
4.3 模型优化 090
4.4 小结 106
第5章 基于图的搜索和推荐系统 107
5.1 问题陈述 107
5.2 方法和方法论 108
5.3 实现 109
5.3.1 数据集 109
5.3.2 安装和导入库 110
5.3.3 导入和理解数据 111
5.3.4 特征工程 114
5.3.5 计算相似度和排名 121
5.3.6 可视化推荐结果 122
5.3.7 从用户处接收图输入并推荐相似产品 125
5.4 小结 128
第6章 姿态估计 129
6.1 自顶向下的方法 130
6.2 自底向上的方法 130
6.3 OpenPose 131
6.3.1 分支1 131
6.3.2 分支2 131
6.4 HRNet 133
6.5 Higher HRNet 135
6.6 PoseNet 136
6.6.1 PoseNet工作机制 136
6.6.2 PoseNet的优点和缺点 140
6.6.3 姿态估计的应用 140
6.6.4 在杂货店视频上进行的测试用例 140
6.7 实现 141
6.8 小结 148
第7章 图像异常检测 149
7.1 异常检测 149
7.2 方法1:使用预训练的分类模型 151
7.3 方法2:使用自编码器 165
7.4 小结 168
第8章 图像超分辨率 169
8.1 利用最近邻概念放大图像 170
8.2 理解双线性插值 171
8.3 变分自编码器 172
8.4 生成式对抗网络 176
8.5 模型代码 177
8.6 模型开发 177
8.7 运行应用程序 188
8.8 小结 190
第9章 视频分析 191
9.1 问题陈述 192
9.2 方法 194
9.3 实现 195
9.3.1 数据 196
9.3.2 把视频上传到Google Colab 197
9.3.3 将视频转换为一系列图像 197
9.3.4 图像提取 198
9.3.5 数据预处理 198
9.3.6 确定杂货店中的热点 200
9.3.7 导入图像 203
9.3.8 获取人群计数 203
9.3.9 安保与监控 205
9.3.10 确定人口统计学特征(年龄和性别) 208
9.4 小结 210
第10章 计算机视觉的可解释AI 211
10.1 Grad-CAM 212
10.2 Grad-CAM++ 213
10.3 NBDT 214
10.4 Grad-CAM和Grad-CAM++的实现 216
10.4.1 在单个图像上的Grad-CAM和Grad-CAM++实现 216
10.4.2 在单个图像上的NBDT实现 219
10.5 小结 221
前言/序言
在计算机视觉领域,有很多方法更为流行,比如本书介绍的PyTorch框架。为了充分利用深度学习,很多研究人员、开发人员和初学者往往都会首选这个框架。
本书要介绍一些计算机视觉问题及其解决方案,同时结合PyTorch实现的代码来介绍一些较为关键的挑战(尤其适用于Python初中级用户)。此外,本书还要介绍用于解决业务问题的各种方法。
针对书中介绍的重要概念,我们还要提供相关的生产级别的代码,旨在帮助大家快速入门。这些代码可以在本机或者云端运行,与有没有GPU(图形处理单元)无关。
在本书中,我们要分阶段介绍图像处理的概念。首先,介绍计算机视觉的基本概念。然后再深入研究深度学习领域,解释如何为视觉相关任务开发模型。随后,我们要帮助大家快速了解PyTorch,为理解本书后面介绍的商业挑战实例奠定基础。同时,我们还要探讨具有革命性意义的卷积神经网络以及VGG、ResNet、YOLO、Inception、R-CNN和其他许多架构。
接下来深入探讨与图像分类、目标检测和分割相关的业务问题以及在许多行业中广泛使用的超分辨率和生成对抗网络(GAN)架构等概念。大家可以从中学习和掌握图像相似度和姿态估计等主题(它们对解决无监督学习问题非常有帮助)。另外,书中还涉及视频分析相关话题,旨在帮助大家学会使用图像和基于时间的帧等概念来考虑问题。最后,讨论如何向业务合作伙伴解释这些深度学习模型。
本书力求为研究计算机视觉业务问题的读者提供一整套产品级解决方案。