[套装书]OpenCV 4计算机视觉+深入理解OpenCV+OpenCV 4计算机视觉项目实战(原书第2版)+机器学习(4册)

作者
约瑟夫·豪斯,乔·米尼奇诺 罗伊·希尔克罗特 大卫·米兰·埃斯克里瓦 大卫·米兰·埃斯克里瓦维尼休斯·G.门东萨 普拉蒂克·乔希 阿迪蒂亚·夏尔马 维什韦什·拉维·什里马利 迈克尔·贝耶勒
丛书名
智能系统与技术丛书
出版社
机械工业出版社
ISBN
9782109241621
简要
简介
内容简介书籍计算机书籍 ---------------------------8083545 - OpenCV 4计算机视觉:Python语言实现(原书第3版)--------------------------- 本书首先介绍OpenCV 4以及如何基于Python 3在各种平台上安装OpenCV 4。接下来,你将学习如何执行读取、写入、操纵,以及显示静态图像、视频和摄像机回馈等基本操作。你还将学习图像处理、视频分析、深度估计和分割,并通过构建一个简单的GUI应用程序获得实践经验。接下来,你将处理两类常见问题:人脸检测和人脸识别。你还将学习物体分类和机器学习的概念,这将使你能够创建和使用物体检测器和分类器,甚至跟踪电影或摄像机回馈中的物体。稍后,你将学习3D跟踪和增强现实。本书末尾,你将学习人工神经网络和深度神经网络,学习如何开发手写数字识别以及对人的性别和年龄分类的应用程序。 ---------------------------8067389 - 深入理解OpenCV:实用计算机视觉项目解析(原书第3版)--------------------------- 本书第3版仍然坚持“帮助计算机视觉工程师迈出掌握OpenCV的第一步”的初心。本书简化数学公式,但保留了重要的数学公式。针对当前热门的计算机视觉主题,如人脸及特征点检测、姿态估计,以及基于深度卷积网络的车牌识别,展示了从构思到运行的全过程,并提供了完整的项目代码。新版本加入“为项目找到最佳OpenCV算法”、“避免OpenCV中的常见陷阱”两个章节帮助程序员从成百上千的API中进行需求权衡、设计、技术选型、优化和避免陷阱。 ---------------------------8061510 - OpenCV 4计算机视觉项目实战(原书第2版)--------------------------- 本书通过实例和项目讲解OpenCV概念及其算法。首先介绍OpenCV的安装和图像处理的基础知识。然后,覆盖用户界面并深入讲解图像处理,读者将学到复杂的计算机视觉算法,并探索机器学习和人脸检测。之后,本书将介绍如何在复杂场景中创建光流视频分析和背景减除,还将讲解文本分割和识别,以及新的和改进的深度学习模块的基础知识。最后,本书介绍了OpenCV的基础知识,例如矩阵运算、滤波器和直方图,帮读者掌握常用的计算机视觉技术,从头开始构建OpenCV项目。 . ---------------------------8075859 - 机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版)--------------------------- 本书通过具体的编程实践案例,全面系统地讲述了机器学习涉及的核心内容。首先介绍新特性以及安装OpenCV 4构建计算机视觉应用程序。你将探索机器学习的基础知识,学习设计用于图像处理的各种算法。本书将逐步介绍有监督学习和无监督学习。你将获得使用Python中的scikit-learn开发各种机器学习应用程序的实践经验。后续章节将重点介绍决策树、支持向量机、贝叶斯学习等各种机器学习算法,以及如何将这些算法应用于目标检测等计算机视觉操作。然后,你将深入研究深度学习和集成学习,并探索它们在现实世界中的应用。最后,你将学习用于构建图像处理系统的最新的Intel OpenVINO。
目录
[套装书具体书目]
8061510 - OpenCV 4计算机视觉项目实战(原书第2版) - 9787111631644 - 机械工业出版社 - 定价 79
8067389 - 深入理解OpenCV:实用计算机视觉项目解析(原书第3版) - 9787111645771 - 机械工业出版社 - 定价 79
8075859 - 机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版) - 9787111668268 - 机械工业出版社 - 定价 99
8083545 - OpenCV 4计算机视觉:Python语言实现(原书第3版) - 9787111689485 - 机械工业出版社 - 定价 99



---------------------------8083545 - OpenCV 4计算机视觉:Python语言实现(原书第3版)---------------------------


译者序
前言
作者简介
审校者简介
第1章 安装OpenCV 1
1.1 技术需求 2
1.2 OpenCV 4有哪些新特性 2
1.3 选择和使用合适的安装工具 3
1.3.1 在Windows上安装 3
1.3.2 在macOS上安装 7
1.3.3 在Debian、Ubuntu、Linux Mint以及类似系统上安装 8
1.3.4 在其他类UNIX系统上安装 11
1.4 运行示例 12
1.5 查找文档、帮助和更新 13
1.6 本章小结 13
第2章 处理文件、摄像头和GUI 14
2.1 技术需求 14
2.2 基本I/O脚本 14
2.2.1 读取/写入图像文件 15
2.2.2 在图像和原始字节之间进行转换 17
2.2.3 基于numpy.array访问图像数据 19
2.2.4 读取/写入视频文件 21
2.2.5 捕捉摄像头帧 22
2.2.6 在窗口中显示图像 23
2.2.7 在窗口中显示摄像头帧 24
2.3 项目Cameo(人脸跟踪和图像处理) 25
2.4 Cameo:面向对象的设计 26
2.4.1 基于managers.CaptureManager提取视频流 26
2.4.2 基于managers.WindowManager提取窗口和键盘 30
2.4.3 基于cameo.Cameo应用所有内容 31
2.5 本章小结 33
第3章 基于OpenCV的图像处理 34
3.1 技术需求 34
3.2 在不同颜色模型之间进行图像转换 34
3.3 探索傅里叶变换 35
3.4 创建模块 38
3.5 边缘检测 38
3.6 自定义核:获取卷积 39
3.7 修改应用程序 41
3.8 基于Canny的边缘检测 43
3.9 轮廓检测 43
3.9.1 边框、最小矩形区域以及最小外接圆 44
3.9.2 凸轮廓和Douglas-Peucker算法 46
3.10 检测线、圆以及其他形状 48
3.10.1 检测线 48
3.10.2 检测圆 49
3.10.3 检测其他形状 50
3.11 本章小结 50
第4章 深度估计和分割 51
4.1 技术需求 51
4.2 创建模块 52
4.3 从深度摄像头捕捉帧 52
4.4 将10位图像转换成8位图像 54
4.5 由视差图创建掩模 56
4.6 修改应用程序 57
4.7 基于普通摄像头的深度估计 59
4.8 基于GrabCut算法的前景检测 64
4.9 基于分水岭算法的图像分割 67
4.10 本章小结 69
第5章 人脸检测和识别 70
5.1 技术需求 71
5.2 Haar级联的概念化 71
5.3 获取Haar级联数据 72
5.4 使用OpenCV进行人脸检测 72
5.4.1 在静态图像上进行人脸检测 73
5.4.2 在视频上进行人脸检测 74
5.4.3 进行人脸识别 77
5.5 在红外线下换脸 83
5.5.1 修改应用程序的循环 84
5.5.2 掩模复制操作 86
5.6 本章小结 88
第6章 使用图像描述符检索和搜索图像 89
6.1 技术需求 89
6.2 理解特征检测和匹配的类型 90
6.3 检测Harris角点 90
6.4 检测DoG特征并提取SIFT描述符 92
6.5 检测快速Hessian特征并提取SURF描述符 95
6.6 使用基于FAST特征和BRIEF描述符的ORB 96
6.6.1 FAST 97
6.6.2 BRIEF 97
6.6.3 蛮力匹配 98
6.6.4 匹配两幅图像中的标识 98
6.7 使用K最近邻和比率检验过滤匹配 101
6.8 基于FLANN的匹配 104
6.9 基于FLANN进行单应性匹配 107
6.10 示例应用程序:文身取证 110
6.10.1 将图像描述符保存到文件 110
6.10.2 扫描匹配 111
6.11 本章小结 114
第7章 建立自定义物体检测器 115
7.1 技术需求 115
7.2 理解HOG描述符 116
7.2.1 HOG的可视化 116
7.2.2 使用HOG描述图像的区域 117
7.3 理解非极大值抑制 118
7.4 理解支持向量机 118
7.5 基于HOG描述符检测人 119
7.6 创建并训练物体检测器 122
7.6.1 理解BoW 122
7.6.2 将BoW应用于计算机视觉领域 123
7.6.3 k均值聚类 123
7.7 检测汽车 124
7.7.1 支持向量机和滑动窗口相结合 129
7.7.2 检测场景中的汽车 130
7.7.3 保存并加载经过训练的支持向量机 135
7.8 本章小结 135
第8章 物体跟踪 136
8.1 技术需求 136
8.2 基于背景差分检测运动物体 137
8.2.1 实现基本背景差分器 138
8.2.2 使用MOG背景差分器 140
8.2.3 使用KNN背景差分器 143
8.2.4 使用GMG和其他背景差分器 145
8.3 利用MeanShift和CamShift跟踪彩色物体 147
8.3.1 规划MeanShift示例 148
8.3.2 计算和反投影颜色直方图 148
8.3.3 实现MeanShift示例 152
8.3.4 使用CamShift 153
8.4 使用卡尔曼滤波器寻找运动趋势 155
8.4.1 理解预测和更新阶段 155
8.4.2 跟踪鼠标光标 156
8.5 跟踪行人 158
8.5.1 规划应用程序的流程 158
8.5.2 比较面向对象范式和函数范式 159
8.5.3 实现行人类 160
8.5.4 实现主函数 162
8.5.5 考虑接下来的步骤 165
8.6 本章小结 165
第9章 摄像头模型和增强现实 166
9.1 技术需求 166
9.2 理解3D图像跟踪和增强现实 167
9.2.1 理解摄像头和镜头参数 168
9.2.2 理解cv2.solvePnPRansac 172
9.3 实现demo应用程序 174
9.3.1 导入模块 174
9.3.2 执行灰度转换 175
9.3.3 执行2D到3D的空间转换 176
9.3.4 实现应用程序类 177
9.3.5 运行和测试应用程序 192
9.4 改进3D跟踪算法 195
9.5 本章小结 195
第10章 基于OpenCV的神经网络导论 197
10.1 技术需求 198
10.2 理解人工神经网络 198
10.2.1 理解神经元和感知器 199
10.2.2 理解神经网络的层 200
10.3 用OpenCV训练基本人工神经网络 202
10.4 训练多阶段人工神经网络分类器 203
10.5 基于人工神经网络识别手写数字 207
10.5.1 理解手写数字的MNIST数据库 207
10.5.2 为MNIST数据库选择训练参数 208
10.5.3 实现模块来训练人工神经网络 208
10.5.4 实现简单测试模块 212
10.5.5 实现主模块 212
10.5.6 试着提升人工神经网络训练性能 217
10.5.7 寻找其他潜在应用程序 218
10.6 在OpenCV中使用其他框架的深度神经网络 219
10.7 基于第三方深度神经网络的物体检测和分类 220
10.8 基于第三方深度神经网络的人脸检测和分类 223
10.9 本章小结 228
附录 基于曲线滤波器弯曲颜色空间 229



---------------------------8067389 - 深入理解OpenCV:实用计算机视觉项目解析(原书第3版)---------------------------


译者序
前言
作者简介
审阅者简介
第1章 树莓派上的卡通化和皮肤颜色分析 1
1.1 访问摄像头 2
1.2 桌面应用程序的相机处理主循环 4
1.2.1 生成黑白素描 4
1.2.2 生成彩色绘画和卡通 6
1.2.3 用边缘滤波器来生成邪恶模式 8
1.2.4 用皮肤检测来生成外星人造型 9
1.3 皮肤变色器的实现 12
1.4 从桌面移植到嵌入式设备 19
1.4.1 用于开发嵌入式设备代码的设备配置 21
1.4.2 在嵌入式设备上安装OpenCV 27
1.5 小结 39
第2章 使用SfM模块从运动中恢复结构 40
2.1 技术要求 40
2.2 SfM的核心概念 41
2.2.1 相机标定和对极几何 42
2.2.2 立体重建和SfM 45
2.3 在OpenCV中实现SfM 48
2.3.1 图像特征匹配 48
2.3.2 找到特征轨迹 52
2.3.3 3D重建和可视化 55
2.3.4 用于稠密重建的MVS 57
2.4 小结 60
第3章 使用人脸模块进行人脸特征点及姿态检测 61
3.1 技术要求 61
3.2 背景和理论 63
3.2.1 主动外观模型与受约束的局部模型 63
3.2.2 回归方法 64
3.3 OpenCV中的人脸特征点检测 65
3.4 基于特征点的人脸方向估计 68
3.4.1 估计姿态计算 69
3.4.2 将姿态投影到图像上 70
3.5 小结 71
第4章 基于深度卷积网络的车牌识别 72
4.1 ANPR简介 72
4.2 ANPR算法 74
4.3 车牌检测 77
4.3.1 分割 78
4.3.2 分类 84
4.4 车牌识别 87
4.4.1 OCR分割 88
4.4.2 基于卷积神经网络的字符分类 89
4.5 小结 105
第5章 通过DNN模块进行人脸检测和识别 106
5.1 介绍人脸检测和人脸识别 106
5.1.1 人脸检测 108
5.1.2 人脸预处理 116
5.1.3 收集人脸并从中学习 127
5.1.4 人脸识别 138
5.1.5 收尾工作——保存和加载文件 141
5.1.6 收尾工作——制作一个漂亮的、交互体验好的GUI 141
5.2 小结 153
5.3 参考文献 154
第6章 Web计算机视觉之初识OpenCV.js 155
6.1 什么是OpenCV.js 155
6.2 编译OpenCV.js 157
6.3 OpenCV.js开发基础 159
6.4 访问摄像头流 165
6.5 图像处理和基本用户界面 169
6.5.1 阈值滤波器 170
6.5.2 高斯滤波器 170
6.5.3 canny滤波器 170
6.6 浏览器中的光流 174
6.7 在浏览器中使用Haar级联分类器进行人脸检测 178
6.8 小结 180
第7章 使用ArUco模块的Android相机校准和AR 182
7.1 技术要求 182
7.2 增强现实和姿态估计 183
7.2.1 相机校准 184
7.2.2 用于平面重建的增强现实标记 186
7.3 Android系统中的相机访问 188
7.4 使用ArUco进行相机校准 191
7.5 使用jMonkeyEngine实现增强现实 195
7.6 小结 196
第8章 带有拼接模块的iOS全景图 198
8.1 技术要求 198
8.2 全景图像拼接方法 199
8.2.1 全景图的特征提取和鲁棒匹配 200
8.2.2 变形图像,以便全景创建 203
8.3 项目概况 204
8.4 用CocoaPods设置iOS OpenCV项目 204
8.5 用于全景捕捉的iOS UI 205
8.6 Objective-C++包装器中的OpenCV拼接 209
8.7 小结 212
8.8 进一步阅读 212
第9章 为项目找到最佳OpenCV算法 213
9.1 技术要求 213
9.2 方案是否包含在OpenCV中 214
9.3 OpenCV中的算法选项 215
9.4 哪种算法最好 217
9.5 算法性能比较的示例 218
9.6 小结 223
第10章 避免OpenCV中的常见陷阱 224
10.1 OpenCV从v1到v4的历史 224
10.2 OpenCV中的历史算法 228
10.3 常见陷阱和建议解决方案 231
10.4 小结 236
10.5 进一步阅读 236



---------------------------8061510 - OpenCV 4计算机视觉项目实战(原书第2版)---------------------------


前言
作者简介
审校者简介
第1章 OpenCV入门 1
1.1 了解人类视觉系统 1
1.2 人类如何理解图像内容 3
1.3 你能用OpenCV做什么 4
1.3.1 内置数据结构和输入/输出 4
1.3.2 图像处理操作 5
1.3.3 GUI 5
1.3.4 视频分析 6
1.3.5 3D重建 6
1.3.6 特征提取 7
1.3.7 对象检测 7
1.3.8 机器学习 8
1.3.9 计算摄影 8
1.3.10 形状分析 9
1.3.11 光流算法 9
1.3.12 人脸和对象识别 9
1.3.13 表面匹配 10
1.3.14 文本检测和识别 10
1.3.15 深度学习 10
1.4 安装OpenCV 10
1.4.1 Windows 11
1.4.2 Mac OS X 11
1.4.3 Linux 13
1.5 总结 14
第2章 OpenCV基础知识导论 15
2.1 技术要求 15
2.2 基本CMake配置文件 16
2.3 创建一个库 16
2.4 管理依赖项 17
2.5 让脚本更复杂 18
2.6 图像和矩阵 20
2.7 读/写图像 22
2.8 读取视频和摄像头 25
2.9 其他基本对象类型 27
2.9.1 Vec对象类型 27
2.9.2 Scalar对象类型 28
2.9.3 Point对象类型 28
2.9.4 Size对象类型 29
2.9.5 Rect对象类型 29
2.9.6 RotatedRect对象类型 29
2.10 基本矩阵运算 30
2.11 基本数据存储 32
2.12 总结 34
第3章 学习图形用户界面 35
3.1 技术要求 35
3.2 OpenCV用户界面介绍 36
3.3 OpenCV的基本图形用户界面 36
3.4 Qt图形用户界面 44
3.5 OpenGL支持 50
3.6 总结 54
第4章 深入研究直方图和滤波器 55
4.1 技术要求 56
4.2 生成CMake脚本文件 56
4.3 创建图形用户界面 57
4.4 绘制直方图 59
4.5 图像颜色均衡 62
4.6 Lomography效果 64
4.7 卡通效果 68
4.8 总结 72
第5章 自动光学检查、对象分割和检测 73
5.1 技术要求 73
5.2 隔离场景中的对象 74
5.3 为AOI创建应用程序 76
5.4 预处理输入图像 78
5.4.1 噪声消除 78
5.4.2 用光模式移除背景进行分割 79
5.4.3 阈值 84
5.5 分割输入图像 85
5.5.1 连通组件算法 85
5.5.2 findContours算法 90
5.6 总结 92
第6章 学习对象分类 94
6.1 技术要求 94
6.2 机器学习概念介绍 95
6.3 计算机视觉和机器学习工作流程 98
6.4 自动对象检查分类示例 100
6.4.1 特征提取 102
6.4.2 训练SVM模型 105
6.4.3 输入图像预测 109
6.5 总结 111
第7章 检测面部部位与覆盖面具 112
7.1 技术要求 112
7.2 了解Haar级联 112
7.3 什么是积分图像 114
7.4 在实时视频中覆盖面具 115
7.5 戴上太阳镜 118
7.6 跟踪鼻子、嘴巴和耳朵 121
7.7 总结 122
第8章 视频监控、背景建模和形态学操作 123
8.1 技术要求 123
8.2 理解背景减除 124
8.3 直接的背景减除 124
8.4 帧差分 128
8.5 高斯混合方法 131
8.6 形态学图像处理 133
8.7 使形状变细 134
8.8 使形状变粗 135
8.9 其他形态运算符 136
8.9.1 形态开口 136
8.9.2 形态闭合 137
8.9.3 绘制边界 138
8.9.4 礼帽变换 139
8.9.5 黑帽变换 140
8.10 总结 140
第9章 学习对象跟踪 141
9.1 技术要求 141
9.2 跟踪特定颜色的对象 141
9.3 构建交互式对象跟踪器 143
9.4 用Harris角点检测器检测点 148
9.5 用于跟踪的好特征 151
9.6 基于特征的跟踪 153
9.6.1 Lucas-Kanade方法 153
9.6.2 Farneback算法 157
9.7 总结 161
第10章 开发用于文本识别的分割算法 162
10.1 技术要求 162
10.2 光学字符识别介绍 162
10.3 预处理阶段 164
10.3.1 对图像进行阈值处理 164
10.3.2 文本分割 165
10.4 在你的操作系统上安装Tesseract OCR 172
10.4.1 在Windows上安装Tesseract 172
10.4.2 在Mac上安装Tesseract 173
10.5 使用Tesseract OCR库 173
10.6 总结 177
第11章 用Tesseract进行文本识别 178
11.1 技术要求 178
11.2 文本API的工作原理 179
11.2.1 场景检测问题 179
11.2.2 极值区域 180
11.2.3 极值区域过滤 181
11.3 使用文本API 182
11.3.1 文本检测 182
11.3.2 文本提取 187
11.3.3 文本识别 189
11.4 总结 193
第12章 使用OpenCV进行深度学习 194
12.1 技术要求 194
12.2 深度学习简介 195
12.2.1 什么是神经网络,我们如何从数据中学习 195
12.2.2 卷积神经网络 197
12.3 OpenCV中的深度学习 198
12.4 YOLO用于实时对象检测 199
12.4.1 YOLO v3深度学习模型架构 200
12.4.2 YOLO数据集、词汇表和模型 200
12.4.3 将YOLO导入OpenCV 201
12.5 用SSD进行人脸检测 204
12.5.1 SSD模型架构 204
12.5.2 将SSD人脸检测导入OpenCV 204
12.6 总结 208



---------------------------8075859 - 机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版)---------------------------


译者序
前言
作者简介
审校者简介
第一部分 机器学习与OpenCV的基础知识
第1章 机器学习体验 2
1.1 技术需求 3
1.2 开始机器学习 3
1.3 机器学习可以解决的问题 4
1.4 开始使用Python 5
1.5 开始使用OpenCV 6
1.6 安装 6
1.6.1 获取本书的最新代码 7
1.6.2 了解Python的Anaconda发行版 8
1.6.3 在conda环境中安装OpenCV 9
1.6.4 安装验证 10
1.6.5 OpenCV的ml模块概览 12
1.7 机器学习的应用 13
1.8 OpenCV 4.0的新功能 13
1.9 本章小结 14
第2章 用OpenCV处理数据 15
2.1 技术需求 15
2.2 理解机器学习的工作流程 16
2.3 使用OpenCV和Python处理数据 18
2.3.1 开始一个新的IPython或Jupyter会话 18
2.3.2 使用Python的NumPy包处理数据 20
2.3.3 用Python加载外部数据集 24
2.3.4 使用Matplotlib可视化数据 25
2.3.5 使用C++中的OpenCV TrainData容器处理数据 29
2.4 本章小结 30
第3章 监督学习的第一步 31
3.1 技术需求 31
3.2 理解监督学习 32
3.2.1 看看OpenCV中的监督学习 33
3.2.2 用评分函数度量模型性能 33
3.3 使用分类模型预测类标签 39
3.3.1 理解k-NN算法 40
3.3.2 用OpenCV实现k-NN 40
3.4 使用回归模型预测连续的结果 47
3.4.1 理解线性回归 47
3.4.2 OpenCV中的线性回归 48
3.4.3 使用线性回归预测波士顿房价 51
3.4.4 Lasso回归和岭回归的应用 54
3.5 使用逻辑回归分类鸢尾花的种类 55
3.5.1 理解逻辑回归 55
3.5.2 加载训练数据 56
3.5.3 使其成为一个二值分类问题 57
3.5.4 数据检查 57
3.5.5 将数据拆分成训练集和测试集 58
3.5.6 训练分类器 58
3.5.7 测试分类器 59
3.6 本章小结 59
第4章 数据表示和特征工程 60
4.1 技术需求 61
4.2 理解特征工程 61
4.3 数据预处理 62
4.3.1 特征标准化 62
4.3.2 特征归一化 63
4.3.3 将特征缩放到一个范围 64
4.3.4 特征二值化 64
4.3.5 缺失数据的处理 65
4.4 理解降维 66
4.4.1 用OpenCV实现主成分分析 67
4.4.2 实现独立成分分析 70
4.4.3 实现非负矩阵分解 71
4.4.4 使用t-分布随机邻域嵌入可视化降维 72
4.5 类别变量的表示 74
4.6 文本特征的表示 75
4.7 图像的表示 77
4.7.1 使用颜色空间 77
4.7.2 检测图像中的角点 79
4.7.3 使用star检测器和BRIEF描述符 82
4.7.4 使用面向FAST和可旋转的BRIEF 84
4.8 本章小结 85
第二部分 基于OpenCV的运算
第5章 基于决策树进行医疗诊断 88
5.1 技术需求 88
5.2 理解决策树 89
5.2.1 构建我们的第一棵决策树 91
5.2.2 可视化一棵经过训练的决策树 97
5.2.3 探究决策树的内部工作原理 99
5.2.4 评估特征的重要性 100
5.2.5 理解决策规则 101
5.2.6 控制决策树的复杂度 102
5.3 使用决策树诊断乳腺癌 102
5.3.1 加载数据集 103
5.3.2 构建决策树 104
5.4 使用决策树进行回归 108
5.5 本章小结 111
第6章 利用支持向量机进行行人检测 112
6.1 技术需求 113
6.2 理解线性SVM 113
6.2.1 学习最优决策边界 113
6.2.2 实现我们的第一个SVM 115
6.3 处理非线性决策边界 120
6.3.1 理解核技巧 121
6.3.2 了解我们的核 121
6.3.3 实现非线性SVM 122
6.4 检测自然场景中的行人 123
6.4.1 获取数据集 124
6.4.2 面向梯度的直方图概述 126
6.4.3 生成负样本 127
6.4.4 实现SVM 128
6.4.5 bootstrapping模型 129
6.4.6 检测更大图像中的行人 130
6.4.7 进一步完善模型 132
6.5 使用SVM的多类分类 133
6.5.1 关于数据 134
6.5.2 属性信息 134
6.6 本章小结 136
第7章 利用贝叶斯学习实现一个垃圾邮件过滤器 137
7.1 技术需求 138
7.2 理解贝叶斯推理 138
7.2.1 概率理论概述 138
7.2.2 理解贝叶斯定理 139
7.2.3 理解朴素贝叶斯分类器 142
7.3 实现第一个贝叶斯分类器 143
7.3.1 创建一个玩具数据集 143
7.3.2 使用普通贝叶斯分类器对数据进行分类 144
7.3.3 使用朴素贝叶斯分类器对数据进行分类 147
7.3.4 可视化条件概率 147
7.4 使用朴素贝叶斯分类器分类邮件 149
7.4.1 加载数据集 150
7.4.2 使用pandas建立一个数据矩阵 152
7.4.3 数据预处理 153
7.4.4 训练一个普通贝叶斯分类器 153
7.4.5 在完整数据集上训练 154
7.4.6 使用n-grams提升结果 154
7.4.7 使用TF-IDF提升结果 155
7.5 本章小结 156
第8章 利用无监督学习发现隐藏结构 157
8.1 技术需求 157
8.2 理解无监督学习 158
8.3 理解k-均值聚类 158
8.4 理解最大期望 161
8.4.1 实现最大期望解决方案 162
8.4.2 了解最大期望的局限性 164
8.5 使用k-均值压缩颜色空间 169
8.5.1 可视化真彩色调色板 170
8.5.2 使用k-均值减少调色板的颜色 172
8.6 使用k-均值分类手写数字 174
8.6.1 加载数据集 175
8.6.2 运行k-均值 175
8.7 将聚类组织为层次树 176
8.7.1 理解层次聚类 177
8.7.2 实现凝聚层次聚类 178
8.7.3 聚类算法比较 179
8.8 本章小结 180
第三部分 基于OpenCV的高级机器学习
第9章 使用深度学习分类手写数字 182
9.1 技术需求 182
9.2 理解McCulloch-Pitts神经元 183
9.3 理解感知器 185
9.4 实现第一个感知器 187
9.4.1 生成一个玩具数据集 188
9.4.2 拟合感知器和数据 189
9.4.3 评估感知器分类器 190
9.4.4 将感知器应用于非线性可分的数据 191
9.5 理解多层感知器 193
9.5.1 理解梯度下降 194
9.5.2 基于反向传播训练多层感知器 196
9.5.3 用OpenCV实现一个多层感知器 197
9.6 结识深度学习 202
9.7 分类手写数字 205
9.7.1 加载MNIST数据集 205
9.7.2 预处理MNIST数据集 206
9.7.3 使用OpenCV训练一个多层感知器 207
9.7.4 使用Keras训练深度神经网络 208
9.8 本章小结 211
第10章 集成分类方法 212
10.1 技术需求 213
10.2 理解集成方法 213
10.2.1 理解平均集成 214
10.2.2 理解boosting集成 217
10.2.3 理解叠加集成 219
10.3 将决策树组合成随机森林 220
10.3.1 理解决策树的缺点 220
10.3.2 实现第一个随机森林 224
10.3.3 用scikit-learn实现一个随机森林 225
10.3.4 实现超随机树 226
10.4 利用随机森林进行人脸识别 228
10.4.1 加载数据集 228
10.4.2 预处理数据集 229
10.4.3 随机森林的训练和测试 230
10.5 实现AdaBoost 232
10.5.1 用OpenCV实现AdaBoost 232
10.5.2 用scikit-learn实现AdaBoost 233
10.6 把各种模型组合成一个投票分类器 234
10.6.1 理解各种投票方案 234
10.6.2 实现一个投票分类器 235
10.6.3 简单多数 236
10.7 本章小结 237
第11章 选择正确的模型与超参数调优 238
11.1 技术需求 239
11.2 模型评估 239
11.2.1 模型评估的错误方式 239
11.2.2 模型评估的正确方式 240
11.2.3 选择最佳模型 241
11.3 理解交叉验证 244
11.3.1 用OpenCV手动实现交叉验证 246
11.3.2 用scikit-learn进行k折交叉验证 247
11.3.3 实现留一法交叉验证 247
11.4 利用bootstrapping评估鲁棒性 248
11.5 评估结果的显著性 250
11.5.1 实现Student t-检验 251
11.5.2 实现McNemar检验 252
11.6 基于网格搜索的超参数调优 253
11.6.1 实现一个简单的网格搜索 254
11.6.2 理解验证集的值 255
11.6.3 网格搜索与交叉验证结合 256
11.6.4 网格搜索与嵌套交叉验证结合 258
11.7 利用各种评估指标对模型评分 259
11.7.1 选择正确的分类器评估指标 259
11.7.2 选择正确的回归评估指标 260
11.8 将算法链接起来形成管道 260
11.8.1 用scikit-learn实现管道 261
11.8.2 在网格搜索中使用管道 262
11.9 本章小结 263
第12章 使用基于OpenCV的OpenVINO 264
12.1 技术需求 264
12.2 OpenVINO简介 265
12.3 OpenVINO工具包安装 265
12.4 交互式人脸检测演示 266
12.5 使用基于OpenCV的OpenVINO推理引擎 267
12.6 使用基于OpenCV的OpenVINO模型组 268
12.7 使用OpenCV和OpenVINO推理引擎进行图像分类 269
12.7.1 利用OpenVINO进行图像分类 270
12.7.2 利用OpenCV和OpenVINO进行图像分类 271
12.8 本章小结 273
第13章 尾声 274
13.1 技术需求 274
13.2 机器学习问题的解决方案 275
13.3 构建自己的估计器 276
13.3.1 用C++编写自己的基于OpenCV的分类器 276
13.3.2 用Python编写自己的基于scikit-learn的分类器 278
13.4 接下来要做的工作 280
13.5 本章小结 281

推荐

车牌查询
桂ICP备20004708号-3