计算机视觉之深度学习:使用TENSORFLOW和KERAS训练高级神经网络
作者: (英)拉贾林加帕·尚穆加马尼著
出版时间: 2020年版
内容简介
本书开门见山,直接帮助你准备好训练高效深度学习模型的环境,以完成各种计算机视觉任务。书中介绍了常见的深度学习架构,如卷积神经网络和递归神经网络;讲述了如何利用深度学习进行图像分类、图像检索、目标检测、语义分割等内容。读完本书,你将能够开发和训练自己的深度学习模型,并用它们解决计算机视觉难题。
目录
第 1 章 入门 1
1.1 理解深度学习 1
1.1.1 感知机 1
1.1.2 激活函数 2
1.1.3 人工神经网络 4
1.1.4 训练神经网络 7
1.1.5 尝试TensorFlow游乐场 8
1.1.6 卷积神经网络 8
1.1.7 循环神经网络 10
1.1.8 长短期记忆网络 11
1.2 计算机视觉深度学习 12
1.2.1 分类 12
1.2.2 检测或定位与分割 12
1.2.3 相似性学习 13
1.2.4 图像题注 13
1.2.5 生成模型 14
1.2.6 视频分析 15
1.3 建立开发环境 15
1.3.1 硬件和操作系统 15
1.3.2 安装软件包 17
1.4 小结 23
第 2 章 图像分类 24
2.1 在TensorFlow中训练MNIST模型 24
2.1.1 MNIST数据集 24
2.1.2 加载MNIST数据 25
2.1.3 建立一个感知机 25
2.1.4 构建多层卷积网络 28
2.2 在Keras中训练MNIST模型 35
2.2.1 准备数据集 35
2.2.2 构建模型 36
2.3 其他流行的图像测试数据集 38
2.3.1 CIFAR数据集 38
2.3.2 Fashion-MNIST数据集 38
2.3.3 ImageNet数据集和竞赛 39
2.4 更大的深度学习模型 40
2.4.1 AlexNet模型 40
2.4.2 VGG-16模型 41
2.4.3 谷歌Inception-V3模型 42
2.4.4 微软ResNet-50模型 45
2.4.5 SqueezeNet模型 45
2.4.6 空间变换网络模型 46
2.4.7 DenseNet模型 47
2.5 训练猫与狗的模型 47
2.5.1 准备数据 48
2.5.2 使用简单CNN进行基准测试 48
2.5.3 增强数据集 49
2.5.4 迁移学习或微调模型 50
2.5.5 在深度学习中微调一些层 51
2.6 开发现实世界的应用 53
2.6.1 选择正确的模型 53
2.6.2 处理欠拟合和过拟合场景 53
2.6.3 从面部检测性别和年龄 54
2.6.4 微调服装模型 54
2.6.5 品牌安全 54
2.7 小结 54
第 3 章 图像检索 55
3.1 理解视觉特征 55
3.1.1 深度学习模型的可视化激活 56
3.1.2 嵌入可视化 57
3.1.3 DeepDream 60
3.1.4 对抗样本 64
3.2 模型推断 65
3.2.1 导出模型 65
3.2.2 提供训练好的模型 66
3.3 基于内容的图像检索 68
3.3.1 构建检索流水线 68
3.3.2 有效的检索 71
3.3.3 使用自编码器去噪 74
3.4 小结 77
第 4 章 目标检测 78
4.1 检测图像中的目标 78
4.2 探索数据集 79
4.2.1 ImageNet数据集 79
4.2.2 PASCAL VOC挑战 79
4.2.3 COCO目标检测挑战 79
4.2.4 使用指标评估数据集 80
4.3 目标定位算法 81
4.3.1 使用滑动窗口定位目标 82
4.3.2 将定位看作回归问题 83
4.4 检测目标 86
4.4.1 R-CNN(区域卷积神经网络) 86
4.4.2 Fast R-CNN 86
4.4.3 Faster R-CNN 87
4.4.4 SSD(单射多框探测器) 88
4.5 目标检测API 88
4.5.1 安装和设置 88
4.5.2 预训练模型 89
4.5.3 重新训练目标检测模型 90
4.5.4 为自动驾驶汽车训练行人检测 92
4.6 YOLO目标检测算法 92
4.7 小结 94
第 5 章 语义分割 95
5.1 预测像素 95
5.1.1 诊断医学图像 97
5.1.2 通过卫星图像了解地球 97
5.1.3 提供机器人视觉 98
5.2 数据集 98
5.3 语义分割算法 98
5.3.1 全卷积网络 98
5.3.2 SegNet架构 99
5.3.3 膨胀卷积 103
5.3.4 DeepLab 104
5.3.5 RefiNet 105
5.3.6 PSPnet 106
5.3.7 大卷积核的重要性 106
5.3.8 DeepLab v3 107
5.4 超神经分割 107
5.5 分割卫星图像 111
5.6 分割实例 113
5.7 小结 114
第 6 章 相似性学习 115
6.1 相似性学习算法 115
6.1.1 孪生网络 115
6.1.2 FaceNet模型 118
6.1.3 DeepNet模型 120
6.1.4 DeepRank模型 120
6.1.5 视觉推荐系统 121
6.2 人脸分析 122
6.2.1 人脸检测 122
6.2.2 人脸特征点和属性 123
6.2.3 人脸识别 126
6.2.4 人脸聚类 130
6.3 小结 131
第 7 章 图像题注 132
7.1 了解问题和数据集 132
7.2 理解图像题注的自然语言处理 132
7.2.1 用向量形式表达词 133
7.2.2 将词转换为向量 133
7.2.3 训练一个嵌入 134
7.3 图像题注和相关问题的方法 135
7.3.1 使用条件随机场来链接图像和文本 136
7.3.2 在CNN 特征上使用RNN生成题注 136
7.3.3 使用图像排序创建题注 138
7.3.4 从图像检索题注与从题注检索图像 139
7.3.5 密集题注 140
7.3.6 使用RNN生成题注 141
7.3.7 使用多模态度量空间 142
7.3.8 使用注意网络生成题注 143
7.3.9 知道什么时候查看 143
7.4 实现基于注意力的图像题注 145
7.5 小结 147
第 8 章 生成模型 148
8.1 生成模型的应用 148
8.1.1 艺术风格迁移 148
8.1.2 预测视频中的下一帧 149
8.1.3 图像的超分辨率 150
8.1.4 交互式图像生成 151
8.1.5 图像到图像的翻译 151
8.1.6 文本到图像的生成 152
8.1.7 图像修复 153
8.1.8 图像混合 153
8.1.9 转换属性 154
8.1.10 创建训练数据 154
8.1.11 创建新的动画角色 155
8.1.12 照片3D模型 155
8.2 神经艺术风格迁移 156
8.2.1 内容损失 156
8.2.2 使用Gram矩阵的风格损失 160
8.2.3 风格迁移 162
8.3 生成对抗网络 165
8.3.1 vanilla GAN 165
8.3.2 条件GAN 167
8.3.3 对抗损失 167
8.3.4 图像翻译 168
8.3.5 InfoGAN 168
8.3.6 GAN的缺点 169
8.4 视觉对话模型 169
8.5 小结 171
第 9 章 视频分类 172
9.1 了解视频和视频分类 172
9.1.1 探索视频分类数据集 172
9.1.2 将视频分割成帧 175
9.1.3 视频分类方法 175
9.2 将基于图像的方法扩展到视频 184
9.2.1 人体姿态回归 184
9.2.2 视频分割 185
9.2.3 视频题注 186
9.2.4 视频生成 188
9.3 小结 188
第 10 章 部署 189
10.1 模型的性能 189
10.1.1 量化模型 189
10.1.2 MobileNets 190
10.2 云部署 193
10.2.1 AWS 193
10.2.2 Google云平台 197
10.3 在设备中部署模型 200
10.3.1 Jetson TX2 200
10.3.2 Android 201
10.3.3 iPhone 201
10.4 小结 202