《Python计算机视觉与深度学习实战》立足实践,从机器学习的基础技能出发,深入浅出地介绍了如何使用 Python 进行基于深度学习的计算机视觉项目开发。开篇介绍了基于传统机器学习及图像处理方法的计算机视觉技术;然后重点就图像分类、目标检测、图像分割、图像搜索、图像压缩及文本识别等常见的计算机视觉项目做了理论结合实践的讲解;最后探索了深度学习项目落地时会用到的量化、剪枝等技术,并提供了模型服务端部署案例。
《Python计算机视觉与深度学习实战》适合有一定的Python 编程基础,初学深度学习的读者阅读。
1.基于sklearn+PyTorch,理论+实践方式介绍计算机视觉项目
2.图文并茂,丰富项目实例助力搭建计算机视觉模型
3.编程实验展示深度学习理论,直观理解深度学习领域晦涩原理
4.实例项目采用项目文件形式编写,贴合软件工程开发实际应用场景
郭卡,安徽外国语学院计算机讲师,省级自然科学基金重点项目“基于大数据与人工智能技术的在线学习评价系统”主持人,《Python 数据爬取技术与实战手册》主编,参与多项人工智能研究项目并发表相关论文两篇。
戴亮,科大讯飞算法工程师,GiantPandaCV 作者之一,主要研究方向为光学字符识别与语音识别,热衷于 PyTorch 技术分享,对深度学习相关技术有深入了解。
第 1章 机器学习与sklearn 1
1.1 sklearn 环境配置 2
1.1.1 环境要求 2
1.1.2 安装方法 2
1.1.3 修改pip 源 3
1.1.4 安装Jupyter Notebook 4
1.2 数据集 5
1.2.1 自带的小型数据集 6
1.2.2 在线下载的数据集 8
1.2.3 计算机生成的数据集 8
1.3 分类 9
1.3.1 加载数据与模型 10
1.3.2 建立分类模型 11
1.3.3 模型的训练及预测 12
1.3.4 模型评价 12
1.4 回归 14
1.4.1 线性回归 15
1.4.2 回归模型评价 16
1.5 聚类 17
1.5.1 K-means 17
1.5.2 DBSCAN 17
1.5.3 聚类实例 18
1.6 降维 19
1.6.1 PCA 降维 19
1.6.2 LDA 降维 22
1.7 模型验证 23
1.8 模型持久化 27
1.8.1 joblib 27
1.8.2 pickle 28
1.9 小结 28
第 2章 传统图像处理方法 29
2.1 图像分类 29
2.1.1 HOG 的原理 29
2.1.2 工具介绍 30
2.1.3 CIFAR-10 分类 31
2.1.4 手写字符分类 33
2.2 目标检测 36
2.3 图像分割 40
2.4 图像搜索 41
2.5 小结 43
第3章 深度学习与PyTorch 44
3.1 框架介绍 44
3.2 环境配置 46
3.3 运算基本单元 48
3.3.1 Tensor 数据类型 48
3.3.2 Tensor 与ndarray 49
3.3.3 CPU 与GPU 运算 49
3.3.4 PyTorch 实现K-means 51
3.4 自动求导 55
3.5 数据加载 57
3.5.1 Dataset 58
3.5.2 DataLoader 59
3.6 神经网络工具包 60
3.6.1 Module 模块 61
3.6.2 线性层 62
3.6.3 卷积层 62
3.6.4 池化层 64
3.6.5 BatchNorm 层 65
3.6.6 激活层 65
3.6.7 神经网络各层输出的可视化 72
3.6.8 循环神经网络 76
3.6.9 Sequential 和ModuleList 78
3.6.10 损失函数 79
3.7 模型优化器optim 82
3.7.1 optim 用法 82
3.7.2 优化器的选择 82
3.7.3 学习率的选择 86
3.8 参数初始化init 94
3.9 模型持久化 96
3.10 JIT 编译器 98
3.11 模型迁移ONNX 99
3.12 数据可视化TensorBoard 101
3.13 机器视觉工具包torchvision 103
3.13.1 数据 103
3.13.2 模型 104
3.13.3 图像处理 106
3.14 小结 110
第4章 卷积神经网络中的分类与回归 111
4.1 卷积神经网络中的分类问题 112
4.1.1 CIFAR-10 图像分类 112
4.1.2 卷积神经网络的发展 117
4.1.3 分类网络的实现 121
4.1.4 模型训练 127
4.1.5 模型展示 132
4.1.6 多标签分类 134
4.2 卷积神经网络中的回归问题 142
4.2.1 生成数据集 142
4.2.2 模型训练 145
4.2.3 模型展示 146
4.3 小结 148
第5章 目标检测 149
5.1 深度学习物体检测算法 149
5.1.1 两段式检测 150
5.1.2 一段式检测 153
5.2 数据集构建 155
5.2.1 选择目标物体图片 155
5.2.2 背景图片下载 156
5.2.3 图片合成 156
5.3 数据加载 162
5.4 数据标记与损失函数构建 166
5.4.1 数据标记 167
5.4.2 损失函数 167
5.5 模型搭建与训练 172
5.6 模型预测 175
5.7 小结 180
第6章 图像分割 181
6.1 数据加载 184
6.2 模型搭建 189
6.3 模型训练 191
6.4 模型展示 194
6.5 智能弹幕 195
6.6 像素级回归问题:超分辨率重建 196
6.6.1 超分辨率重建算法的发展 197
6.6.2 数据加载 198
6.6.3 模型搭建与训练 202
6.6.4 模型展示 205
6.7 小结 206
第7章 图像搜索 207
7.1 分类网络的特征 208
7.2 深度学习人脸识别技术 208
7.2.1 FaceNet 209
7.2.2 CosFace 和ArcFace 209
7.3 数据处理 210
7.3.1 数据下载 210
7.3.2 数据检查 212
7.3.3 数据提取 213
7.4 模型训练 214
7.4.1 普通分类模型 214
7.4.2 CosFace 218
7.5 图像搜索 219
7.5.1 图像比对 219
7.5.2 KD-Tree 搜索 221
7.6 小结 224
第8章 图像压缩 225
8.1 AutoEncoder 226
8.1.1 AutoEncoder 的原理 226
8.1.2 AutoEncoder 模型搭建 226
8.1.3 数据加载 229
8.1.4 模型训练 230
8.1.5 结果展示 232
8.2 GAN 234
8.2.1 GAN 原理 234
8.2.2 GAN 训练流程 235
8.2.3 GAN 随机生成人脸图片 235
8.2.4 GAN 与AutoEncoder 的结合 242
8.2.5 图像修复 247
8.3 小结 250
第9章 不定长文本识别 251
9.1 循环神经网络概述 251
9.2 时间序列预测 252
9.2.1 创建模型 253
9.2.2 生成数据 253
9.2.3 模型训练 255
9.2.4 模型预测 256
9.3 CRNN 模型 257
9.3.1 CRNN 算法简介 257
9.3.2 CTCLoss 函数 258
9.3.3 模型结构 259
9.3.4 数据预处理 261
9.3.5 模型训练 264
9.3.6 模型预测 266
9.4 小结 267
第 10章 神经网络压缩与部署 268
10.1 剪枝 268
10.1.1 模型设计 269
10.1.2 训练基础模型 271
10.1.3 模型稀疏化 273
10.1.4 压缩模型通道 276
10.2 量化 283
10.3 混合精度训练 287
10.4 深度学习模型的服务端部署 289
10.4.1 创建接口 289
10.4.2 访问接口 291
10.5 小结 292