第1章 人脸识别入门 1
1.1 人脸识别概况 1
1.1.1 何为人脸识别 1
1.1.2 人脸识别的应用 2
1.1.3 人脸识别的目标 4
1.1.4 人脸识别的一般方法 5
1.2 人脸识别发展状况 8
1.2.1 人脸识别历史沿革 8
1.2.2 DT时代的呼唤 10
1.2.3 计算机视觉的新起点 10
1.3 本章小结 12
第2章 数学与机器学习基础 13
2.1 矩阵 13
2.1.1 矩阵的形式 13
2.1.2 行列式 14
2.1.3 转置 15
2.1.4 矩阵的一般运算 15
2.2 向量 17
2.2.1 向量的形式 18
2.2.2 向量的点乘 18
2.2.3 向量的范数 19
2.3 距离度量 19
2.3.1 欧式距离 19
2.3.2 曼哈顿距离 20
2.3.3 余弦距离 20
2.3.4 汉明距离 21
2.4 卷积 22
2.4.1 一维卷积 22
2.4.2 二维卷积 23
2.5 机器学习基础 25
2.5.1 机器学习类别 25
2.5.2 分类算法 26
2.6 本章小结 38
第3章 计算机视觉原理与应用 39
3.1 计算机视觉介绍 39
3.2 颜色模型 40
3.2.1 彩色图像 40
3.2.2 灰度图像与二值图像 42
3.3 信号与噪声 44
3.3.1 信号 44
3.3.2 噪声 45
3.4 图像滤波 45
3.4.1 均值滤波 45
3.4.2 中值滤波 47
3.5 图像的几何变换 47
3.5.1 平移 48
3.5.2 旋转 49
3.5.3 缩放 50
3.6 图像特征 50
3.6.1 灰度直方图 50
3.6.2 LBP特征 51
3.6.3 Haar特征 52
3.6.4 HOG特征 54
3.7 本章小结 56
第4章 OpenCV基础与应用 58
4.1 OpenCV介绍 58
4.2 科学计算库Numpy 59
4.2.1 array类型 60
4.2.2 线性代数相关 62
4.2.3 矩阵的高级函数 64
4.3 OpenCV基本操作 70
4.4 图像的基本变换 72
4.4.1 颜色变换 72
4.4.2 几何变换 80
4.4.3 图像噪声处理 83
4.5 本章小结 86
第5章 深度学习与Keras工程实践 87
5.1 深度学习介绍 87
5.2 Keras框架简介 89
5.3 Keras的使用方法 91
5.3.1 深度学习的原理 91
5.3.2 Keras神经网络堆叠的两种方法 92
5.4 常用的神经网络层 96
5.4.1 全连接层 96
5.4.2 二维卷积层 98
5.4.3 池化层 100
5.4.4 BN层 103
5.4.5 dropout层 105
5.4.6 flatten层 106
5.5 激活函数 108
5.5.1 Sigmoid激活函数 108
5.5.2 Softmax激活函数 109
5.5.3 ReLU激活函数 110
5.5.4 Keras中激活函数的使用 111
5.6 优化器 112
5.6.1 SGD优化器 113
5.6.2 Adadelta优化器 116
5.7 损失函数 117
5.7.1 均方误差 117
5.7.2 交叉熵损失函数 118
5.7.3 Keras提供的损失函数 120
5.8 模型评估方法 122
5.8.1 交叉验证 122
5.8.2 分类器性能评估 124
5.9 数据增强 127
5.9.1 数据增强概述 128
5.9.2 Keras实现数据增强 129
5.9.3 自己实现数据增强 133
5.10 Keras的工程实践 134
5.10.1 训练时的回调函数 135
5.10.2 打印网络信息 137
5.10.3 输出网络结构图 139
5.10.4 获取某层的输出 140
5.11 本章小结 142
第6章 常用人脸识别算法 143
6.1 特征脸法 143
6.2 OpenCV的方法 146
6.2.1 人脸检测方法 147
6.2.2 人脸识别方法 149
6.3 Dlib的人脸检测方法 151
6.4 基于深度学习的图片特征提取 152
6.4.1 AlexNet 152
6.4.2 VGGNet 155
6.4.3 GoogLeNet 157
6.4.4 ResNet 160
6.5 基于深度学习的人脸检测 161
6.5.1 基于深度学习的目标检测 162
6.5.2 MTCNN 164
6.6 基于深度学习的人脸识别 167
6.6.1 基于度量学习的方法 168
6.6.2 基于边界分类的方法 171
6.7 本章小结 177
第7章 人脸识别项目实战 178
7.1 人脸图片数据集 178
7.1.1 Olivetti Faces人脸数据集 178
7.1.2 LFW人脸数据集 180
7.1.3 YouTube Faces人脸数据集 181
7.1.4 IMDB WIKI人脸数据集 181
7.1.5 FDDB人脸数据集 182
7.2 使用OpenCV的人脸检测 182
7.2.1 Haar级联分类器 182
7.2.2 OpenCV的SSD人脸检测器 184
7.3 使用Dlib的人脸检测 186
7.3.1 基于Hog- SV M的人脸检测 186
7.3.2 基于最大边界的对象检测器 187
7.4 深度学习实践 188
7.4.1 卷积神经网络实现 189
7.4.2 数据增强 207
7.4.3 自定义损失函数 211
7.4.4 数据预处理 213
7.4.5 模型训练 214
7.4.6 实现Web接口 216
7.4.7 模型调优与总结 218
7.5 人脸识别的拓展应用 219
7.6 本章小结 220
第8章 人脸识别工程化 221
8.1 云平台实践 221
8.1.1 云计算介绍 221
8.1.2 云服务的形式 223
8.1.3 云平台架构设计 224
8.2 服务API设计 229
8.2.1 人脸检测 229
8.2.2 人脸对比 239
8.3 人脸图片存储 241
8.4 人脸图片检索 243
8.5 本章小结 244
附录 参考文献 245