本书结合理论和实践,主要介绍如何使用图像处理和深度学习技术来使计算机感知和理解图形。全书分为概述、OpenCV 图像基本操作、深度学习与计算机视觉、计算机视觉基础技术、计算机视觉综合应用五大部分(共 11 章)。概述部分(第 1 章)主要介绍计算机视觉的概念和发展史;OpenCV 图像基本操作(第 2 章)主要介绍基于OpenCV 的图像处理操作;深度学习与计算机视觉(第3 章)主要介绍深度学习的概念及其应用、深度学习的实现框架TensorFlow 的用法以及卷积神经网络的概念、结构和算法;计算机视觉基础技术(第4~9 章)主要介绍图像分类、目标检测、图像分割、场景文字识别、人体关键点检测、图像生成等关键技术的原理、方法及应用;计算机视觉综合应用(第 10、11 章)主要介绍视觉交互机器人和无人驾驶的自动巡线两个大型综合实验。本书围绕基本理论,设置了较多的实验操作和实践案例,通过自己动手练习,帮助读者巩固所学内容。
许桂秋,数据中国“百校工程”项目运营总监。2000年9月―2004年6月,厦门大学,计算机科学与技术专业学习,获工学学士;2007年8月―2011年4月,中国石油天然气股份有限公司,项目经理,工程师;2011年6月―2016年7月,曙光信息产业股份有限公司,项目经理,工程师;主要从事大数据,人工智能等新一代信息技术领域的产教融合研究。主要著作出版情况:《大数据导论》、《Python编程基础与应用》、《NoSQL数据库原理与应用》、《数据挖掘与机器学习》等9本系列教材,浙江科技出版社,2019年。
目 录
第1章 概述 1
1.1 什么是计算机视觉 1
1.2 计算机视觉的发展史 3
第2章 OpenCV图像基本操作 6
2.1 如何使用OpenCV 6
2.2 图像的基础操作 8
2.2.1 图像的基本表示方法 8
2.2.2 图像的读取、显示和存储 11
2.2.3 视频序列的读取和存储 16
2.2.4 图像像素的处理与访问 20
2.2.5 获取图像属性 23
2.2.6 图像RoI 23
2.2.7 图像通道的拆分与合并 25
2.3 图像的几何变换 28
2.3.1 图像缩放 28
2.3.2 图像翻转 30
2.3.3 图像仿射变换 31
2.3.4 图像透视 34
2.4 图像的算术运算 35
2.4.1 图像的加法运算 35
2.4.2 图像的加权和运算 37
2.4.3 图像的按位逻辑运算 38
第3章 深度学习与计算机视觉 42
3.1 深度学习概述 42
3.1.1 深度学习的概念 42
3.1.2 深度学习的发展历程 42
3.2 卷积神经网络 45
3.2.1 卷积神经网络的研究历史与意义 45
3.2.2 卷积神经网络的基本结构 46
3.2.3 卷积神经网络的工作原理 48
3.2.4 卷积神经网络的发展趋势 49
3.2.5 实验—机器人识别你的字 50
3.3 基于深度学习的计算机视觉 56
3.3.1 计算机视觉与深度学习的关系 56
3.3.2 计算机视觉和深度学习发展的加速器—GPU 58
3.3.3 计算机视觉与深度学习的基础与研究方向 59
3.4 深度学习的实现框架TensorFlow 60
3.4.1 TensorFlow简介 60
3.4.2 TensorFlow环境的搭建 60
3.4.3 TensorFlow计算模型—计算图 68
3.4.4 TensorFlow数据模型—张量 70
3.4.5 TensorFlow运行模型—会话 74
第4章 图像分类 76
4.1 定义与应用场景 76
4.2 实现方法 77
4.3 常用数据集 80
4.4 实验—机器人看图识物 82
4.5 实验—机器人识别人脸表情 100
第5章 目标检测 112
5.1 定义与应用场景 112
5.2 实现方法 113
5.2.1 基于候选区域的目标检测算法 114
5.2.2 基于直接回归的目标检测算法 119
5.3 常用数据集 122
5.4 实验—机器人捕捉人脸并识别 123
5.5 实验—无人驾驶中的目标检测 141
第6章 图像分割 146
6.1 定义与应用场景 146
6.2 实现方法 147
6.2.1 基于特征编码的模型 147
6.2.2 基于区域选择的模型 148
6.2.3 基于上采样/反卷积的模型 150
6.2.4 基于RNN的模型 151
6.2.5 基于提高特征分辨率的模型 152
6.3 常用数据集 152
6.4 实验—无人驾驶场景感知 153
第7章 场景文字识别 165
7.1 定义与应用场景 165
7.2 实现方法 167
7.2.1 传统方法时期 167
7.2.2 深度学习方法时期 167
7.3 常用数据集 170
7.4 实验—无人值守车牌识别机器人 171
第8章 人体关键点检测 179
8.1 定义与应用场景 179
8.1.1 人体关键点检测的定义 179
8.1.2 人体关键点检测的应用场景 180
8.2 实现方法 182
8.2.1 自顶向下 183
8.2.2 自底向上 184
8.3 常用数据集 186
8.3.1 MPII数据集 187
8.3.2 MSCOCO数据集 188
8.4 实验—姿态识别互动机器人 189
第9章 图像生成 194
9.1 定义与应用场景 194
9.1.1 图像生成的定义 194
9.1.2 图像生成的应用 195
9.2 实现方法 196
9.2.1 GAN模型 196
9.2.2 PixelRNN/PixelCNN模型 197
9.2.3 VAE模型 198
9.3 常用数据集 200
9.4 实验—机器人书法学习 200
第10章 视觉交互机器人 212
10.1 实验目的 212
10.2 实验背景 212
10.3 实验原理 212
10.4 实验环境 215
10.5 实验步骤 215
10.5.1 利用CNN主流架构的mini_Xception训练情感分类 215
10.5.2 视觉交互机器人综合实验 221
第11章 无人驾驶的自动巡线 228
11.1 实验目的 228
11.2 实验背景 228
11.3 实验原理 230
11.4 实验环境 231
11.5 实验步骤 231
11.5.1 数据准备 231
11.5.2 网络设计 231
11.5.3 模型训练 237
11.5.4 模型测试 243