书籍详情
PyTorch计算机视觉实战:目标检测、图像处理与深度学习
作者:V·基肖尔·阿耶德瓦拉,耶什万斯·雷迪
出版社:机械工业出版社
出版时间:2023-09-01
ISBN:9787111733393
定价:¥149.00
购买这本书可以去
内容简介
本书基于真实数据集,全面系统地阐述现代计算机视觉实用技术、方法和实践,涵盖50多个计算机视觉问题。全书分为四部分:di一部分(第1~3章)介绍神经网络和PyTorch的基础知识,以及如何使用PyTorch构建并训练神经网络,包括输入数据缩放、批归一化、超参数调整等;第二部分(第4~10章)介绍如何使用卷积神经网络、迁移学习等技术解决更复杂的视觉相关问题,包括图像分类、目标检测和图像分割等;第三部分(第11~13章)介绍各种图像处理技术,包括自编码器模型和各种类型的GAN模型;第四部分(第14~18章)探讨将计算机视觉技术与NLP、强化学习和OpenCV等技术相结合来解决传统问题的新方法。本书内容丰富新颖,语言文字表述清晰,应用实例讲解详细,图例直观形象,适合PyTorch初中级读者及计算机视觉相关技术人员阅读。
作者简介
暂缺《PyTorch计算机视觉实战:目标检测、图像处理与深度学习》作者简介
目录
CONTENTS
目 录
译者序
前言
第一部分 面向计算机视觉的
深度学习基础知识
第1章 人工神经网络基础 2
1.1 比较人工智能与传统机器学习 3
1.2 人工神经网络的构建模块 4
1.3 实现前向传播 6
1.3.1 计算隐藏层的值 6
1.3.2 应用激活函数 7
1.3.3 计算输出层的值 9
1.3.4 计算损失值 9
1.3.5 前向传播的代码 11
1.4 实现反向传播 14
1.4.1 梯度下降的代码 15
1.4.2 使用链式法则实现
反向传播 17
1.5 整合前向传播与反向传播 20
1.6 理解学习率的影响 22
1.7 总结神经网络的训练过程 28
1.8 小结 29
1.9 课后习题 29
第2章 PyTorch基础 30
2.1 安装PyTorch 30
2.2 PyTorch张量 32
2.2.1 初始化张量 33
2.2.2 张量运算 34
2.2.3 张量对象的自动梯度 37
2.2.4 PyTorch的张量较
NumPy的ndarrays
的优势 38
2.3 使用PyTorch构建神经网络 39
2.3.1 数据集、数据加载器和
批大小 45
2.3.2 预测新的数据点 48
2.3.3 实现自定义损失函数 49
2.3.4 获取中间层的值 50
2.4 使用序贯方法构建神经网络 51
2.5 保存并加载PyTorch模型 54
2.5.1 state dict 54
2.5.2 保存 55
2.5.3 加载 55
2.6 小结 55
2.7 课后习题 56
第3章 使用PyTorch构建深度
神经网络 57
3.1 表示图像 57
3.2 为什么要使用神经网络进行
图像分析 62
3.3 为图像分类准备数据 64
3.4 训练神经网络 66
3.5 缩放数据集以提升模型准确度 71
3.6 理解不同批大小的影响 74
3.6.1 批大小为32 75
3.6.2 批大小为10 000 79
3.7 理解不同损失优化器的影响 80
3.8 理解不同学习率的影响 83
3.8.1 学习率对缩放数据集
的影响 83
3.8.2 不同学习率对非缩放
数据集的影响 88
3.9 理解不同学习率衰减的影响 90
3.10 构建更深的神经网络 93
3.11 理解不同批归一化的影响 94
3.11.1 没有批归一化的非常小
的输入值 96
3.11.2 经过批归一化的非常小
的输入值 98
3.12 过拟合的概念 100
3.12.1 添加dropout的影响 100
3.12.2 正则化的影响 102
3.13 小结 106
3.14 课后习题 106
第二部分 物体分类与目标检测
第4章 卷积神经网络 108
4.1 传统深度神经网络的问题 108
4.2 CNN的构建模块 111
4.2.1 卷积 112
4.2.2 滤波器 113
4.2.3 步长和填充 114
4.2.4 池化 115
4.2.5 整合各个构建模块 116
4.2.6 卷积和池化的图像平移
不变性原理 117
4.3 实现CNN 117
4.3.1 使用PyTorch构建基于
CNN的架构 118
4.3.2 基于Python的前向传播 121
4.4 使用深度CNN分类图像 123
4.5 实现数据增强 127
4.5.1 图像增强 127
4.5.2 对一批图像执行数据增强
及collate_fn的必要性 137
4.5.3 用于图像平移的数据
增强 140
4.6 特征学习结果的可视化 143
4.7 构建对真实图像进行分类
的CNN 153
4.8 小结 161
4.9 课后习题 162
第5章 面向图像分类的迁移学习 163
5.1 迁移学习简介 163
5.2 理解VGG16架构 164
5.3 理解ResNet架构 174
5.4 实现人脸关键点检测 178
5.5 多任务学习—实现年龄估计
和性别分类 186
5.6 torch_snippets库简介 195
5.7 小结 200
5.8 课后习题 200
第6章 图像分类的实战技术 201
6.1 生成CAM 201
6.2 数据增强和批归一化 207
6.3 模型实现的实践要点 212
6.3.1 处理不平衡数据 212
6.3.2 分类图像中目标的大小 213
6.3.3 训练数据和验证数据
之间的差异 213
6.3.4 扁平层中的节点数 214
6.3.5 图像的大小 214
6.3.6 使用OpenCV实用程序 214
6.4 小结 215
6.5 课后习题 215
第7章 目标检测基础 216
7.1 目标检测简介 216
7.2 为训练图像样本创建真值 217
7.3 理解区域建议 220
7.3.1 使用SelectiveSearch
生成区域建议 221
7.3.2 实现用于生成区域建议
的SelectiveSearch 222
7.4 理解IoU 224
7.5 非极大抑制 226
7.6 mAP 226
7.7 训练基于R-CNN的定制目标
检测器 227
7.7.1 R-CNN的工作细节 227
7.7.2 基于定制数据集实现
R-CNN目标检测模型 228
7.8 训练基于Fast R-CNN的定制
目标检测器 241
7.8.1 Fast R-CNN的工作细节 242
7.8.2 基于定制数据集实现Fast R-CNN目标检测模型 242
7.9 小结 249
7.10 课后习题 249
第8章 目标检测进阶 250
8.1 现代目标检测算法的组成 250
8.1.1 锚盒 250
8.1.2 区域建议网络 252
8.2 基于定制数据集训练Faster
R-CNN 254
8.3 YOLO的工作细节 260
8.4 基于定制数据集训练YOLO 265
8.4.1 安装Darknet 265
8.4.2 设置数据集格式 267
8.4.3 配置架构 268
8.4.4 训练和测试模型 269
8.5 SSD模型的工作细节 270
8.6 基于定制数据集训练SSD
模型 274
8.7 小结 278
8.8 课后习题 278
第9章 图像分割 279
9.1 探索U-Net架构 279
9.2 使用U-Net实现语义分割 283
9.3 探索Mask R-CNN架构 288
9.3.1 RoI对齐 290
9.3.2 掩码头部 291
9.4 使用Mask R-CNN实现实例
分割 292
9.5 小结 305
9.6 课后习题 306
第10章 目标检测与分割的应用 307
10.1 多目标实例分割 307
10.1.1 获取和准备数据 308
10.1.2 训练用于实例分割的
模型 312
10.1.3 对新图像进行推断 313
10.2 人体姿态检测 315
10.3 人群计数 316
10.4 图像着色 325
10.5 面向点云的三维目标检测 330
10.5.1 理论 330
10.5.2 训练YOLO模型实现
三维目标检测 334
10.6 小结 337
第三部分 图像处理
第11章 自编码器与图像处理 340
11.1 理解自编码器 340
11.2 理解卷积自编码器 346
11.3 理解变分自编码器 351
11.3.1 VAE的工作机制 352
11.3.2 KL散度 353
11.3.3 构建VAE模型 353
11.4 图像对抗性攻击 357
11.5 图像风格迁移 360
11.6 生成深度虚拟图像 366
11.7 小结 375
11.8 课后习题 375
第12章 基于GAN的图像生成 376
12.1 GAN模型简介 376
12.2 使用GAN生成手写数字 378
12.3 使用DCGAN生成人脸图像 383
12.4 实现条件GAN模型 391
12.5 小结 399
12.6 课后习题 400
第13章 高级GAN图像处理 401
13.1 使用Pix2Pix GAN模型 401
13.2 使用CycleGAN模型 410
13.3 在定制图像上使用StyleGAN
模型 418
13.4 超分辨率GAN 426
13.4.1 架构 427
13.4.2 编码SRGAN 428
13.5 小结 429
13.6 课后习题 430
第四部分 计算机视觉与其他技术
第14章 使用小样本进行模型训练 432
14.1 实现零样本学习 432
14.2 实现小样本学习 437
14.2.1 构建Siamese网络 438
14.2.2 原型网络的工作细节 444
14.2.3 关系网络的工作细节 445
14.3 小结 446
14.4 课后习题 446
第15章 计算机视觉与NLP 447
15.1 RNN模型简介 447
15.1.1 RNN架构的应用场景 448
15.1.2 探索RNN的结构 449
15.1.3 为什么需要存储记忆 449
15.2 LSTM架构简介 450
15.2.1 LSTM的工作细节 451
15.2.2 使用PyTorch实现
LSTM 453
15.3 生成图像标题 453
15.4 转录手写图像 465
15.4.1 CTC损失的工作细节 466
15.4.2 计算CTC损失值 467
15.4.3 手写转录的代码实现 468
15.5 使用DETR进行目标检测 476
15.5.1 transformer的工作细节 476
15.5.2 DETR的工作细节 479
15.5.3 目标检测的代码实现 482
15.6 小结 485
15.7 课后习题 485
第16章 计算机视觉与强化学习 486
16.1 强化学习基础知识 486
16.1.1 计算状态价值 487
16.1.2 计算状态–行为价值 488
16.2 实现Q学习 489
16.2.1 Q值 489
16.2.2 了解Gym环境 490
16.2.3 构建Q表 491
16.2.4 探索–利用机制 493
16.3 实现深度Q学习 495
16.4 目标固定的深度Q学习 501
16.5 实现自动驾驶智能体 508
16.5.1 安装CARLA环境 508
16.5.2 训练自动驾驶智能体 511
16.6 小结 518
16.7 课后习题 519
第17章 模型的实际应用部署 520
17.1 API基础知识 520
17.2 在本地服务器上创建API并
进行预测 521
17.2.1 安装API模块和依赖项 522
17.2.2 图像分类器的支持组件 522
17.3 将API部署到云端 525
17.3.1 Docker镜像与Docker
容器 526
17.3.2 创建Docker容器 526
17.3.3 在云端发布并运行
Docker容器 530
17.4 小结 535
第18章 使用OpenCV实用程序
进行图像分析 536
18.1 图像中的单词检测 536
18.2 图像中的车道线检测 542
18.3 基于颜色的目标检测 544
18.4 构建全景图像 546
18.5 图像中的车牌检测 550
18.6 小结 552
附录 课后习题答案 554
目 录
译者序
前言
第一部分 面向计算机视觉的
深度学习基础知识
第1章 人工神经网络基础 2
1.1 比较人工智能与传统机器学习 3
1.2 人工神经网络的构建模块 4
1.3 实现前向传播 6
1.3.1 计算隐藏层的值 6
1.3.2 应用激活函数 7
1.3.3 计算输出层的值 9
1.3.4 计算损失值 9
1.3.5 前向传播的代码 11
1.4 实现反向传播 14
1.4.1 梯度下降的代码 15
1.4.2 使用链式法则实现
反向传播 17
1.5 整合前向传播与反向传播 20
1.6 理解学习率的影响 22
1.7 总结神经网络的训练过程 28
1.8 小结 29
1.9 课后习题 29
第2章 PyTorch基础 30
2.1 安装PyTorch 30
2.2 PyTorch张量 32
2.2.1 初始化张量 33
2.2.2 张量运算 34
2.2.3 张量对象的自动梯度 37
2.2.4 PyTorch的张量较
NumPy的ndarrays
的优势 38
2.3 使用PyTorch构建神经网络 39
2.3.1 数据集、数据加载器和
批大小 45
2.3.2 预测新的数据点 48
2.3.3 实现自定义损失函数 49
2.3.4 获取中间层的值 50
2.4 使用序贯方法构建神经网络 51
2.5 保存并加载PyTorch模型 54
2.5.1 state dict 54
2.5.2 保存 55
2.5.3 加载 55
2.6 小结 55
2.7 课后习题 56
第3章 使用PyTorch构建深度
神经网络 57
3.1 表示图像 57
3.2 为什么要使用神经网络进行
图像分析 62
3.3 为图像分类准备数据 64
3.4 训练神经网络 66
3.5 缩放数据集以提升模型准确度 71
3.6 理解不同批大小的影响 74
3.6.1 批大小为32 75
3.6.2 批大小为10 000 79
3.7 理解不同损失优化器的影响 80
3.8 理解不同学习率的影响 83
3.8.1 学习率对缩放数据集
的影响 83
3.8.2 不同学习率对非缩放
数据集的影响 88
3.9 理解不同学习率衰减的影响 90
3.10 构建更深的神经网络 93
3.11 理解不同批归一化的影响 94
3.11.1 没有批归一化的非常小
的输入值 96
3.11.2 经过批归一化的非常小
的输入值 98
3.12 过拟合的概念 100
3.12.1 添加dropout的影响 100
3.12.2 正则化的影响 102
3.13 小结 106
3.14 课后习题 106
第二部分 物体分类与目标检测
第4章 卷积神经网络 108
4.1 传统深度神经网络的问题 108
4.2 CNN的构建模块 111
4.2.1 卷积 112
4.2.2 滤波器 113
4.2.3 步长和填充 114
4.2.4 池化 115
4.2.5 整合各个构建模块 116
4.2.6 卷积和池化的图像平移
不变性原理 117
4.3 实现CNN 117
4.3.1 使用PyTorch构建基于
CNN的架构 118
4.3.2 基于Python的前向传播 121
4.4 使用深度CNN分类图像 123
4.5 实现数据增强 127
4.5.1 图像增强 127
4.5.2 对一批图像执行数据增强
及collate_fn的必要性 137
4.5.3 用于图像平移的数据
增强 140
4.6 特征学习结果的可视化 143
4.7 构建对真实图像进行分类
的CNN 153
4.8 小结 161
4.9 课后习题 162
第5章 面向图像分类的迁移学习 163
5.1 迁移学习简介 163
5.2 理解VGG16架构 164
5.3 理解ResNet架构 174
5.4 实现人脸关键点检测 178
5.5 多任务学习—实现年龄估计
和性别分类 186
5.6 torch_snippets库简介 195
5.7 小结 200
5.8 课后习题 200
第6章 图像分类的实战技术 201
6.1 生成CAM 201
6.2 数据增强和批归一化 207
6.3 模型实现的实践要点 212
6.3.1 处理不平衡数据 212
6.3.2 分类图像中目标的大小 213
6.3.3 训练数据和验证数据
之间的差异 213
6.3.4 扁平层中的节点数 214
6.3.5 图像的大小 214
6.3.6 使用OpenCV实用程序 214
6.4 小结 215
6.5 课后习题 215
第7章 目标检测基础 216
7.1 目标检测简介 216
7.2 为训练图像样本创建真值 217
7.3 理解区域建议 220
7.3.1 使用SelectiveSearch
生成区域建议 221
7.3.2 实现用于生成区域建议
的SelectiveSearch 222
7.4 理解IoU 224
7.5 非极大抑制 226
7.6 mAP 226
7.7 训练基于R-CNN的定制目标
检测器 227
7.7.1 R-CNN的工作细节 227
7.7.2 基于定制数据集实现
R-CNN目标检测模型 228
7.8 训练基于Fast R-CNN的定制
目标检测器 241
7.8.1 Fast R-CNN的工作细节 242
7.8.2 基于定制数据集实现Fast R-CNN目标检测模型 242
7.9 小结 249
7.10 课后习题 249
第8章 目标检测进阶 250
8.1 现代目标检测算法的组成 250
8.1.1 锚盒 250
8.1.2 区域建议网络 252
8.2 基于定制数据集训练Faster
R-CNN 254
8.3 YOLO的工作细节 260
8.4 基于定制数据集训练YOLO 265
8.4.1 安装Darknet 265
8.4.2 设置数据集格式 267
8.4.3 配置架构 268
8.4.4 训练和测试模型 269
8.5 SSD模型的工作细节 270
8.6 基于定制数据集训练SSD
模型 274
8.7 小结 278
8.8 课后习题 278
第9章 图像分割 279
9.1 探索U-Net架构 279
9.2 使用U-Net实现语义分割 283
9.3 探索Mask R-CNN架构 288
9.3.1 RoI对齐 290
9.3.2 掩码头部 291
9.4 使用Mask R-CNN实现实例
分割 292
9.5 小结 305
9.6 课后习题 306
第10章 目标检测与分割的应用 307
10.1 多目标实例分割 307
10.1.1 获取和准备数据 308
10.1.2 训练用于实例分割的
模型 312
10.1.3 对新图像进行推断 313
10.2 人体姿态检测 315
10.3 人群计数 316
10.4 图像着色 325
10.5 面向点云的三维目标检测 330
10.5.1 理论 330
10.5.2 训练YOLO模型实现
三维目标检测 334
10.6 小结 337
第三部分 图像处理
第11章 自编码器与图像处理 340
11.1 理解自编码器 340
11.2 理解卷积自编码器 346
11.3 理解变分自编码器 351
11.3.1 VAE的工作机制 352
11.3.2 KL散度 353
11.3.3 构建VAE模型 353
11.4 图像对抗性攻击 357
11.5 图像风格迁移 360
11.6 生成深度虚拟图像 366
11.7 小结 375
11.8 课后习题 375
第12章 基于GAN的图像生成 376
12.1 GAN模型简介 376
12.2 使用GAN生成手写数字 378
12.3 使用DCGAN生成人脸图像 383
12.4 实现条件GAN模型 391
12.5 小结 399
12.6 课后习题 400
第13章 高级GAN图像处理 401
13.1 使用Pix2Pix GAN模型 401
13.2 使用CycleGAN模型 410
13.3 在定制图像上使用StyleGAN
模型 418
13.4 超分辨率GAN 426
13.4.1 架构 427
13.4.2 编码SRGAN 428
13.5 小结 429
13.6 课后习题 430
第四部分 计算机视觉与其他技术
第14章 使用小样本进行模型训练 432
14.1 实现零样本学习 432
14.2 实现小样本学习 437
14.2.1 构建Siamese网络 438
14.2.2 原型网络的工作细节 444
14.2.3 关系网络的工作细节 445
14.3 小结 446
14.4 课后习题 446
第15章 计算机视觉与NLP 447
15.1 RNN模型简介 447
15.1.1 RNN架构的应用场景 448
15.1.2 探索RNN的结构 449
15.1.3 为什么需要存储记忆 449
15.2 LSTM架构简介 450
15.2.1 LSTM的工作细节 451
15.2.2 使用PyTorch实现
LSTM 453
15.3 生成图像标题 453
15.4 转录手写图像 465
15.4.1 CTC损失的工作细节 466
15.4.2 计算CTC损失值 467
15.4.3 手写转录的代码实现 468
15.5 使用DETR进行目标检测 476
15.5.1 transformer的工作细节 476
15.5.2 DETR的工作细节 479
15.5.3 目标检测的代码实现 482
15.6 小结 485
15.7 课后习题 485
第16章 计算机视觉与强化学习 486
16.1 强化学习基础知识 486
16.1.1 计算状态价值 487
16.1.2 计算状态–行为价值 488
16.2 实现Q学习 489
16.2.1 Q值 489
16.2.2 了解Gym环境 490
16.2.3 构建Q表 491
16.2.4 探索–利用机制 493
16.3 实现深度Q学习 495
16.4 目标固定的深度Q学习 501
16.5 实现自动驾驶智能体 508
16.5.1 安装CARLA环境 508
16.5.2 训练自动驾驶智能体 511
16.6 小结 518
16.7 课后习题 519
第17章 模型的实际应用部署 520
17.1 API基础知识 520
17.2 在本地服务器上创建API并
进行预测 521
17.2.1 安装API模块和依赖项 522
17.2.2 图像分类器的支持组件 522
17.3 将API部署到云端 525
17.3.1 Docker镜像与Docker
容器 526
17.3.2 创建Docker容器 526
17.3.3 在云端发布并运行
Docker容器 530
17.4 小结 535
第18章 使用OpenCV实用程序
进行图像分析 536
18.1 图像中的单词检测 536
18.2 图像中的车道线检测 542
18.3 基于颜色的目标检测 544
18.4 构建全景图像 546
18.5 图像中的车牌检测 550
18.6 小结 552
附录 课后习题答案 554
猜您喜欢