书籍详情
OpenCV 4机器学习算法原理与编程实战(博文视点出品)
作者:朱斌 著
出版社:电子工业出版社
出版时间:2021-04-01
ISBN:9787121408304
定价:¥108.00
购买这本书可以去
内容简介
本书主要面向OpenCV领域的研究与开发人员,采用原理结合实战的方式,介绍OpenCV 4的机器学习算法模块与深度神经网络模块中的核心算法原理与C++编程实战。全书共10章, 第1~3章, 介绍OpenCV 4的基础知识、基本图像操作和机器学习基础知识;第4~8章,介绍K-means、KNN、决策树、随机森林、Boosting算法和支持向量机等机器学习算法与编程实战;第9~10章,介绍神经网络与深度神经网络的基本原理与编程实战,并提供了不同深度学习模型的部署示例代码。 本书基本聚焦于机器学习在计算机视觉领域的应用,不要求读者具有相应的知识背景,在必要时书中会介绍相关的基本概念。因此,本书既可以作为相关专业学生的实验教材,也可以作为研究人员或工程技术人员的参考资料。
作者简介
朱斌,博士,国防科技大学副教授。长期从事计算机视觉与机器学习领域的教学与科研工作,主要研究方向为成像侦察与信息处理。主持国家自然科学基金、省自然科学基金各1项,主持或参与其他科研项目多项,其中,2项科研成果列装,并获军队科技进步二等奖2项,授权国家发明专利10余项。
目录
第1章 概述 1
1.1 OpenCV简述 1
1.2 OpenCV的功能 1
1.3 OpenCV中的机器学习与深度神经网络模块 2
1.4 基本数据类型 2
1.4.1 数据类型概述 2
1.4.2 cv::Vec类 3
1.4.3 cv::Point类 6
1.4.4 cv::Scalar类 8
1.4.5 cv::Size类 9
1.4.6 cv::Rect类 9
1.4.7 cv::RotatedRect类 13
1.4.8 cv::Mat类 14
1.4.9 基本矩阵运算 19
参考文献 22
第2章 OpenCV在机器学习任务中的基本图像操作 23
2.1 基本图像操作 23
2.1.1 读取、显示和存储图像 23
2.1.2 颜色空间转换 30
2.1.3 图像的几何变换 36
2.1.4 直方图均衡化 49
2.1.5 标注文字和矩形框 57
2.2 基本视频操作 60
2.2.1 读取和播放视频文件 61
2.2.2 处理视频文件 62
2.2.3 存储视频文件 65
参考文献 67
第3章 机器学习的基本原理与OpenCV机器学习模块 69
3.1 机器学习的基本概念 69
3.1.1 机器学习的定义 69
3.1.2 机器学习的分类 70
3.2 机器学习的一般流程 73
3.2.1 机器学习流程 73
3.2.2 数据集 74
3.2.3 偏差与方差 77
3.2.4 评估分类器性能的方法 79
3.3 逻辑回归分类示例 80
3.3.1 图像数据与数据表示 81
3.3.2 逻辑回归模型 82
3.3.3 逻辑回归的损失函数 83
3.4 OpenCV支持的机器学习算法 84
3.4.1 机器学习模块的结构 84
3.4.2 机器学习模块中的算法 85
3.4.3 数据集准备 87
3.4.4 特征选择 88
参考文献 89
第4章 K-means和KNN 90
4.1 算法原理 90
4.1.1 K-means原理 90
4.1.2 KNN原理 92
4.2 OpenCV实现 95
4.2.1 K-means的实现 95
4.2.2 KNN的实现 97
4.3 应用示例 99
4.3.1 K-means聚类示例 99
4.3.2 KNN手写数字识别示例 106
4.3.3 应用提示 112
参考文献 113
第5章 决策树 114
5.1 决策树原理 114
5.1.1 决策树的基本思想 114
5.1.2 决策树的表示方法 114
5.1.3 最佳切分属性的选择 116
5.1.4 停止标准 123
5.1.5 剪枝 123
5.2 OpenCV实现 123
5.2.1 创建决策树 123
5.2.2 训练决策树 126
5.2.3 使用决策树预测 127
5.3 应用示例 129
5.3.1 蘑菇可食性分类 129
5.3.2 预测波士顿房价 135
5.3.3 应用提示 142
参考文献 142
第6章 随机森林 143
6.1 随机森林原理 143
6.1.1 随机森林的基本思想 143
6.1.2 Bagging算法 143
6.2 OpenCV实现 146
6.2.1 OpenCV中的随机森林 146
6.2.2 创建随机森林 147
6.2.3 训练随机森林 148
6.2.4 使用随机森林预测 148
6.3 应用示例 148
6.3.1 蘑菇可食性分类 149
6.3.2 预测波士顿房价 153
6.3.3 应用提示 158
参考文献 158
第7章 Boosting算法 159
7.1 Boosting算法原理 159
7.1.1 Boosting算法的基本思想 159
7.1.2 Boosting算法 159
7.1.3 AdaBoost算法 160
7.2 OpenCV实现 164
7.2.1 创建AdaBoost模型 164
7.2.2 训练AdaBoost模型 166
7.2.3 使用AdaBoost模型预测 166
7.3 应用示例 166
7.3.1 蘑菇可食性分类 167
7.3.2 英文字母分类问题 169
7.3.3 应用提示 174
参考文献 174
第8章 支持向量机 175
8.1 支持向量机原理 175
8.1.1 统计学习理论概述 175
8.1.2 线性SVM算法基本原理 179
8.1.3 非线性SVM算法的基本原理 190
8.1.4 SVM回归算法的基本原理 192
8.1.5 SVM算法执行SRM准则的解释 194
8.2 OpenCV实现 195
8.2.1 OpenCV中的SVM算法 195
8.2.2 创建SVM模型 197
8.2.3 训练SVM模型 199
8.2.4 使用SVM模型预测 202
8.3 应用示例 203
8.3.1 使用HOG特征与SVM算法识别手写数字 203
8.3.2 应用提示 213
参考文献 214
第9章 神经网络 215
9.1 神经网络算法原理 215
9.1.1 神经网络的结构与表示 216
9.1.2 单隐层前馈神经网络 220
9.1.3 多隐层前馈神经网络 222
9.1.4 梯度下降法 225
9.1.5 反向传播算法 229
9.2 OpenCV实现 234
9.2.1 OpenCV中的MLP算法 234
9.2.2 创建MLP模型 235
9.2.3 训练MLP模型 237
9.2.4 使用MLP模型预测 239
9.3 应用示例 239
9.3.1 使用神经网络识别手写数字 239
9.3.2 应用提示 251
参考文献 251
第10章 深度神经网络 252
10.1 卷积神经网络的基本原理 253
10.1.1 卷积神经网络的结构 254
10.1.2 卷积层 255
10.1.3 池化 262
10.1.4 Softmax层 263
10.1.5 CNN特征学习的过程 263
10.1.6 CNN特征学习的原理 266
10.2 OpenCV的DNN模块 268
10.2.1 OpenCV支持的深度学习框架 269
10.2.2 支持的层类型 269
10.2.3 编译支持GPU加速的OpenCV 269
10.2.4 DNN模块的使用 274
10.3 应用示例 286
10.3.1 典型计算机视觉任务 286
10.3.2 使用GoogLeNet实现图像分类 289
10.3.3 使用YOLOv4实现目标检测 295
10.3.4 使用Mask R-CNN实现实例分割 306
10.3.5 使用GOTURN模型实现目标跟踪 315
10.3.6 使用DB算法实现场景文本检测 319
10.3.7 使用CRNN实现场景文本识别 327
10.3.8 应用提示 338
参考文献 339
1.1 OpenCV简述 1
1.2 OpenCV的功能 1
1.3 OpenCV中的机器学习与深度神经网络模块 2
1.4 基本数据类型 2
1.4.1 数据类型概述 2
1.4.2 cv::Vec类 3
1.4.3 cv::Point类 6
1.4.4 cv::Scalar类 8
1.4.5 cv::Size类 9
1.4.6 cv::Rect类 9
1.4.7 cv::RotatedRect类 13
1.4.8 cv::Mat类 14
1.4.9 基本矩阵运算 19
参考文献 22
第2章 OpenCV在机器学习任务中的基本图像操作 23
2.1 基本图像操作 23
2.1.1 读取、显示和存储图像 23
2.1.2 颜色空间转换 30
2.1.3 图像的几何变换 36
2.1.4 直方图均衡化 49
2.1.5 标注文字和矩形框 57
2.2 基本视频操作 60
2.2.1 读取和播放视频文件 61
2.2.2 处理视频文件 62
2.2.3 存储视频文件 65
参考文献 67
第3章 机器学习的基本原理与OpenCV机器学习模块 69
3.1 机器学习的基本概念 69
3.1.1 机器学习的定义 69
3.1.2 机器学习的分类 70
3.2 机器学习的一般流程 73
3.2.1 机器学习流程 73
3.2.2 数据集 74
3.2.3 偏差与方差 77
3.2.4 评估分类器性能的方法 79
3.3 逻辑回归分类示例 80
3.3.1 图像数据与数据表示 81
3.3.2 逻辑回归模型 82
3.3.3 逻辑回归的损失函数 83
3.4 OpenCV支持的机器学习算法 84
3.4.1 机器学习模块的结构 84
3.4.2 机器学习模块中的算法 85
3.4.3 数据集准备 87
3.4.4 特征选择 88
参考文献 89
第4章 K-means和KNN 90
4.1 算法原理 90
4.1.1 K-means原理 90
4.1.2 KNN原理 92
4.2 OpenCV实现 95
4.2.1 K-means的实现 95
4.2.2 KNN的实现 97
4.3 应用示例 99
4.3.1 K-means聚类示例 99
4.3.2 KNN手写数字识别示例 106
4.3.3 应用提示 112
参考文献 113
第5章 决策树 114
5.1 决策树原理 114
5.1.1 决策树的基本思想 114
5.1.2 决策树的表示方法 114
5.1.3 最佳切分属性的选择 116
5.1.4 停止标准 123
5.1.5 剪枝 123
5.2 OpenCV实现 123
5.2.1 创建决策树 123
5.2.2 训练决策树 126
5.2.3 使用决策树预测 127
5.3 应用示例 129
5.3.1 蘑菇可食性分类 129
5.3.2 预测波士顿房价 135
5.3.3 应用提示 142
参考文献 142
第6章 随机森林 143
6.1 随机森林原理 143
6.1.1 随机森林的基本思想 143
6.1.2 Bagging算法 143
6.2 OpenCV实现 146
6.2.1 OpenCV中的随机森林 146
6.2.2 创建随机森林 147
6.2.3 训练随机森林 148
6.2.4 使用随机森林预测 148
6.3 应用示例 148
6.3.1 蘑菇可食性分类 149
6.3.2 预测波士顿房价 153
6.3.3 应用提示 158
参考文献 158
第7章 Boosting算法 159
7.1 Boosting算法原理 159
7.1.1 Boosting算法的基本思想 159
7.1.2 Boosting算法 159
7.1.3 AdaBoost算法 160
7.2 OpenCV实现 164
7.2.1 创建AdaBoost模型 164
7.2.2 训练AdaBoost模型 166
7.2.3 使用AdaBoost模型预测 166
7.3 应用示例 166
7.3.1 蘑菇可食性分类 167
7.3.2 英文字母分类问题 169
7.3.3 应用提示 174
参考文献 174
第8章 支持向量机 175
8.1 支持向量机原理 175
8.1.1 统计学习理论概述 175
8.1.2 线性SVM算法基本原理 179
8.1.3 非线性SVM算法的基本原理 190
8.1.4 SVM回归算法的基本原理 192
8.1.5 SVM算法执行SRM准则的解释 194
8.2 OpenCV实现 195
8.2.1 OpenCV中的SVM算法 195
8.2.2 创建SVM模型 197
8.2.3 训练SVM模型 199
8.2.4 使用SVM模型预测 202
8.3 应用示例 203
8.3.1 使用HOG特征与SVM算法识别手写数字 203
8.3.2 应用提示 213
参考文献 214
第9章 神经网络 215
9.1 神经网络算法原理 215
9.1.1 神经网络的结构与表示 216
9.1.2 单隐层前馈神经网络 220
9.1.3 多隐层前馈神经网络 222
9.1.4 梯度下降法 225
9.1.5 反向传播算法 229
9.2 OpenCV实现 234
9.2.1 OpenCV中的MLP算法 234
9.2.2 创建MLP模型 235
9.2.3 训练MLP模型 237
9.2.4 使用MLP模型预测 239
9.3 应用示例 239
9.3.1 使用神经网络识别手写数字 239
9.3.2 应用提示 251
参考文献 251
第10章 深度神经网络 252
10.1 卷积神经网络的基本原理 253
10.1.1 卷积神经网络的结构 254
10.1.2 卷积层 255
10.1.3 池化 262
10.1.4 Softmax层 263
10.1.5 CNN特征学习的过程 263
10.1.6 CNN特征学习的原理 266
10.2 OpenCV的DNN模块 268
10.2.1 OpenCV支持的深度学习框架 269
10.2.2 支持的层类型 269
10.2.3 编译支持GPU加速的OpenCV 269
10.2.4 DNN模块的使用 274
10.3 应用示例 286
10.3.1 典型计算机视觉任务 286
10.3.2 使用GoogLeNet实现图像分类 289
10.3.3 使用YOLOv4实现目标检测 295
10.3.4 使用Mask R-CNN实现实例分割 306
10.3.5 使用GOTURN模型实现目标跟踪 315
10.3.6 使用DB算法实现场景文本检测 319
10.3.7 使用CRNN实现场景文本识别 327
10.3.8 应用提示 338
参考文献 339
猜您喜欢