本书以Python语言为工具,以图像为载体,对计算机视觉涉及的操作和变换方法进行了详细的介绍及实现。全书共分10章,分别为计算机视觉概述、编程语言Python及库简介、数字图像预处理、图像特征与检测、机器学习、BP神经网络基础、卷积神经网络CNN、经典神经网络结构分析、百度EasyDL入门以及计算机视觉在制造行业应用案例分析。
本书可作为高等院校智能制造工程、人工智能等相关专业的教材,亦可作为图像处理、多媒体编程、计算机视觉领域人员的实用参考书。
第1章 计算机视觉概述 1
本章思维导图 1
本章学习目标 2
1.1 计算机视觉、模式识别和机器视觉 2
1.2 计算机视觉与生物视觉 2
1.3 机器学习在计算机视觉中的作用 6
1.4 计算机视觉的应用领域 7
1.5 计算机视觉技术可能面临的挑战 10
本章小结 11
习题 11
第2章 编程语言Python及库简介 12
本章思维导图 12
本章学习目标 13
2.1 搭建开发环境和使用 13
2.1.1 Anaconda的安装 13
2.1.2 Spyder汉化与简介 13
2.1.3 Spyder编程示例 15
2.2 编程语言Python 15
2.2.1 Python注释 16
2.2.2 print输出语句 16
2.2.3 标识符 17
2.2.4 变量的操作 17
2.2.5 行与缩进 18
2.2.6 常用五大标准数据类型 18
2.2.7 运算符 21
2.2.8 分支语句 23
2.2.9 循环语句 24
2.2.10 函数 26
2.2.11 模块 28
2.2.12 包 29
2.2.13 类 30
2.3 科学计算库NumPy 32
2.3.1 NumPy简介 32
2.3.2 多维数组对象 32
2.3.3 索引方法 35
2.3.4 数组维度的变换 35
2.3.5 对象的属性 36
2.3.6 数组的数学函数 37
2.3.7 NumPy中几个典型函数 39
2.4 可视化库Matplotlib简介 41
2.4.1 最基础的绘图示例 41
2.4.2 标签和图例 43
2.4.3 子图 44
2.5 机器学习Scikit-learn库简介 45
2.5.1 数据集 46
2.5.2 数据集划分 48
2.5.3 数据预处理 49
2.5.4 通用学习模式 50
2.6 图像处理OpenCV库简介 51
2.6.1 OpenCV核心模块 52
2.6.2 OpenCV图像基础操作 53
2.7 深度学习框架PyTorch 56
2.7.1 创建Tensor 57
2.7.2 Tensor运算 61
2.7.3 PyTorch网络搭建所需函数/类 65
本章小结 65
习题 65
第3章 数字图像预处理 67
本章思维导图 67
本章学习目标 67
3.1 图像采样与量化 68
3.1.1 坐标系约定 68
3.1.2 采样 68
3.1.3 量化 69
3.2 色彩空间 70
3.2.1 RGB色彩空间 71
3.2.2 GRAY色彩空间 72
3.2.3 YCrCb色彩空间 74
3.2.4 HSV色彩空间 75
3.3 图像几何变换 76
3.3.1 缩放 76
3.3.2 翻转 77
3.3.3 旋转(直角旋转) 78
3.3.4 仿射变换 79
3.4 直方图修正 83
3.4.1 灰度图像直方图 83
3.4.2 图像清晰化 84
3.4.3 全局阈值处理 90
3.4.4 自适应阈值处理 91
3.5 图像去噪及卷积 92
3.5.1 图像噪声 92
3.5.2 均值滤波 93
3.5.3 中值滤波 94
3.5.4 高斯滤波 95
3.5.5 卷积与锐化 97
3.5.6 二值图像的去噪 101
本章小结 104
习题 105
第4章 图像特征与检测 107
本章思维导图 107
本章学习目标 108
4.1 边缘检测 108
4.1.1 Roberts算子 110
4.1.2 Prewitt算子 111
4.1.3 Sobel算子 112
4.1.4 Scharr算子 113
4.1.5 Laplacian算子 114
4.1.6 Canny算子 116
4.1.7 图像傅里叶变换 117
4.1.8 边缘检测的作用 119
4.2 图像几何参数的检测 119
4.2.1 基于轮廓的对象识别 119
4.2.2 Hough变换 123
4.3 图像纹理的检测 127
4.4 基于哈希值的检测 131
4.4.1 均值哈希 132
4.4.2 差异哈希 134
4.5 基于LBP算子的特征检测 136
4.5.1 基本LBP算子 136
4.5.2 圆形LBP算子 137
4.5.3 旋转不变LBP特征 137
4.5.4 均匀LBP模式 138
4.5.5 LBPH(LBP特征统计直方图) 139
4.6 基于HOG算子的特征检测 141
4.7 基于色彩的提取 144
4.8 基于差分的提取 146
4.8.1 帧间差分 146
4.8.2 背景差分 148
4.9 光流追踪 151
4.9.1 稀疏光流 151
4.9.2 密集光流 152
本章小结 152
习题 154
第5章 机器学习 155
本章思维导图 155
本章学习目标 156
5.1 K-Means实现 157
5.2 K最近邻算法 159
5.2.1 欧氏距离(euclidean distance) 160
5.2.2 曼哈顿距离(manhattan distance) 160
5.2.3 闵可夫斯基距离(minkowski distance) 161
5.2.4 余弦距离(cosine distance) 161
5.3 朴素贝叶斯算法 163
5.3.1 贝叶斯公式 163
5.3.2 朴素贝叶斯 164
5.4 决策树算法 167
5.4.1 特征选择 168
5.4.2 决策树的修剪 169
5.5 支持向量机SVM 171
5.6 主成分分析PCA算法 173
5.7 线性回归算法 176
5.7.1 线性回归导入 176
5.7.2 代价函数 177
5.7.3 梯度下降法 178
5.7.4 岭回归(ridge regression) 184
5.7.5 套索回归(lasso regression) 185
5.7.6 弹性网络(elastic net) 186
5.8 逻辑回归算法 186
5.8.1 Sigmoid函数 187
5.8.2 代价函数 189
5.9 模型评估 193
5.9.1 混淆矩阵 193
5.9.2 分类问题常用评估指标 194
5.9.3 回归问题常用评估指标 196
5.9.4 评估方法 197
本章小结 198
习题 199
第6章 BP神经网络基础 201
本章思维导图 201
本章学习目标 202
6.1 感知机 202
6.2 感知机的激活函数 203
6.3 神经网络的激活函数 204
6.3.1 Sigmoid函数 204
6.3.2 Tanh函数 206
6.3.3 ReLU函数 206
6.3.4 Leaky ReLU、PReLU、RReLU函数 207
6.3.5 ELU函数 208
6.3.6 SELU函数 208
6.4 输出层的设计 209
6.4.1 恒等函数和Softmax函数 210
6.4.2 Softmax函数的特征 211
6.4.3 输出层的神经元 211
6.5 损失函数 212
6.6 链式法则与计算图的反向传播 212
6.7 隐藏层 214
6.8 PyTorch实现线性回归 214
6.9 PyTorch实现逻辑回归 218
6.10 BP神经网络入门示例 220
本章小结 221
习题 222
第7章 卷积神经网络CNN 223
本章思维导图 223
本章学习目标 223
7.1 输入层 224
7.2 全连接层 225
7.3 全连接层在图像处理中的问题 225
7.4 卷积层 226
7.5 池化层 228
7.6 激活层 229
7.7 特征图形象化 229
7.8 简单的CNN网络示例 231
本章小结 232
习题 233
第8章 经典神经网络结构分析 234
本章思维导图 234
本章学习目标 234
8.1 典型网络LeNet5 235
8.1.1 LeNet5解析 235
8.1.2 PyTorch实现LeNet5 236
8.1.3 PyTorch实现模型的保存与加载 238
8.2 典型网络AlexNet 241
8.2.1 AlexNet网络分析 242
8.2.2 局部响应归一化 243
8.2.3 批归一化 243
8.2.4 Dropout 244
8.2.5 实现AlexNet 245
8.3 典型网络VGGNet 248
8.3.1 VGGNet网络分析 248
8.3.2 手工构建VGGNet 251
8.4 典型网络Inception 251
8.4.1 Inception网络分析 252
8.4.2 手工构建Inception网络 255
8.5 典型网络ResNet 255
8.5.1 ResNet网络分析 256
8.5.2 手工构建ResNet 258
8.6 几种网络的比较 258
8.7 卷积神经网络的发展 259
8.7.1 分类网络 260
8.7.2 检测网络 261
8.7.3 分割网络 261
本章小结 263
习题 263
第9章 百度EasyDL入门 264
本章思维导图 264
本章学习目标 264
9.1 图像分类 265
9.1.1 创建数据集 265
9.1.2 数据集标注 267
9.1.3 模型训练 267
9.1.4 模型校验 269
9.1.5 模型发布 269
9.1.6 体验模型 270
9.2 物体检测 270
9.2.1 创建数据集 270
9.2.2 数据集标注 270
9.2.3 模型训练 271
9.2.4 模型校验 271
9.2.5 模型发布和体验模型 272
9.3 图像分割 272
本章小结 273
习题 273
第10章 计算机视觉在制造行业应用案例分析 274
本章思维导图 274
本章学习目标 274
10.1 齿轮齿数统计分析 275
10.2 滚动轴承故障诊断 276
10.3 薄壁件铣削颤振监测 279
本章小结 281
习题 281
参考文献 282