资源详情

机器学习:使用OpenCV和Python进行智能图像处理

机器学习:使用OpenCV和Python进行智能图像处理-电子书下载


作者: 迈克尔·贝耶勒
出版社: 机械工业出版社
副标题: 使用OpenCV和Python进行智能图像处理
译者: 王磊
出版年: 2018-11-14
页数: 251
定价: 69
装帧: 平装
丛书: 智能系统与技术丛书
ISBN: 9787111611516

下载次数:9


本站推荐

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录

本书是一本基于OpenCV和Python的机器学习实战手册,既详细介绍机器学习及OpenCV相关的基础知识,又通过具体实例展示如何使用OpenCV和Python实现各种机器学习算法,并提供大量示列代码,可以帮助你掌握机器学习实用技巧,解决各种不同的机器学习和图像处理问题。
全书共12章,第1章简要介绍机器学习基础知识,并讲解如何安装OpenCV和Python工具;第2章展示经典的机器学习处理流程及OpenCV和Python工具的使用;第3章讨论监督学习算法,以及如何使用OpenCV实现这些算法;第4章讨论数据表示和特征工程,并介绍OpenCV中提供的用于处理图像数据的常见特征提取技术;第5章展示如何使用OpenCV构建决策树进行医疗诊断;第6章讨论如何使用OpenCV构建支持向量机检测行人;第7章介绍概率论,并展示如何使用贝叶斯学习实现垃圾邮件过滤;第8章讨论一些非监督学习算法;第9章详细讲解如何构建深度神经网络来识别手写数字;第10章讨论如何高效地集成多个算法来提升性能;第11章讨论如何比较不同分类器的结果,选择合适的工具;第12章给出一些处理实际机器学习问题的提示和技巧。

Michael Beyeler是华盛顿大学神经工程和数据科学专业的博士后,主攻仿生视觉计算模型,用以为盲人植入人工视网膜(仿生眼睛),改善盲人的视觉体验。 他的工作属于神经科学、计算机工程、计算机视觉和机器学习的交叉领域。他也是2015年Packt出版的《OpenCV with Python Blueprints》一书的作者,该书是构建高级计算机视觉项目的实用指南。同时他也是多个开源项目的积极贡献者,具有Python、C/C++、CUDA、MATLAB和Android的专业编程经验。
他还拥有加利福尼亚大学欧文分校计算机科学专业的博士学位、瑞士苏黎世联邦理工学院生物医学专业的硕士学位和电子工程专业的学士学位。当他不“呆头呆脑” 地研究大脑时,他会攀登雪山、参加现场音乐会或者弹钢琴。

译者序

前言
审校者简介
第1章品味机器学习1
1.1初步了解机器学习1
1.2机器学习可以解决的事情3
1.3初步了解Python4
1.4初步了解OpenCV4
1.5安装5
1.5.1获取本书最新的代码5
1.5.2掌握PythonAnaconda6
1.5.3在conda环境中安装OpenCV8
1.5.4验证安装结果9
1.5.5一睹OpenCVML模块11
1.6总结11
第2章使用OpenCV和Python处理数据12
2.1理解机器学习流程12
2.2使用OpenCV和Python处理数据14
2.2.1创建一个新的IPython或Jupyter会话15
2.2.2使用Python的NumPy包处理数据16
2.2.3在Python中载入外部数据集20
2.2.4使用Matplotlib进行数据可视化21
2.2.5使用C++中OpenCV的TrainData容器处理

据26
2.3总结27
第3章监督学习的第一步28
3.1理解监督学习28
3.1.1了解OpenCV中的监督学习29
3.1.2使用评分函数评估模型性能30
3.2使用分类模型预测类别35
3.2.1理解k-NN算法37
3.2.2使用OpenCV实现k-NN37
3.3使用回归模型预测连续结果43
3.3.1理解线性回归43
3.3.2使用线性回归预测波士顿房价44
3.3.3应用Lasso回归和ridge回归48
3.4使用逻辑回归对鸢尾花种类进行分类48
3.5总结53
第4数据表示与特征工程54
4.1理解特征工程54
4.2数据预处理55
4.2.1特征标准化56
4.2.2特征归一化57
4.2.3特征缩放到一定的范围57
4.2.4特征二值化58
4.2.5缺失数据处理58
4.3理解降维59
4.3.1在OpenCV中实现主成分分析61
4.3.2实现独立成分分析64
4.3.3实现非负矩阵分解65
4.4类别变量表示66
4.5文本特征表示68
4.6图像表示69
4.6.1使用色彩空间69
4.6.2图像角点检测71
4.6.3使用尺度不变特征变换72
4.6.4使用加速健壮特征74
4.7总结75
第5章使用决策树进行医疗诊断76
5.1理解决策树76
5.1.1构建第一个决策树79
5.1.2可视化训练得到的决策树85
5.1.3深入了解决策树的内部工作机制87
5.1.4特征重要性评分88
5.1.5理解决策规则89
5.1.6控制决策树的复杂度90
5.2使用决策树进行乳腺癌的诊断90
5.2.1载入数据集91
5.2.2构建决策树92
5.3使用决策树进行回归96
5.4总结99
第6章使用支持向量机检测行人100
6.1理解线性支持向量机100
6.1.1学习最优决策边界101
6.1.2实现我们的第一个支持向量机102
6.2处理非线性决策边界107
6.2.1理解核机制108
6.2.2认识我们的核109
6.2.3实现非线性支持向量机109
6.3自然环境下的行人检测110
6.3.1获取数据集111
6.3.2初窥方向梯度直方图113
6.3.3生成负样本114
6.3.4实现支持向量机116
6.3.5模型自举116
6.3.6在更大的图像中检测行人118
6.3.7进一步优化模型120
6.4总结121
第7章使用贝叶斯学习实现垃圾邮件过滤122
7.1理解贝叶斯推断122
7.1.1概率论的短暂之旅123
7.1.2理解贝叶斯定理124
7.1.3理解朴素贝叶斯分类器126
7.2实现第一个贝叶斯分类器127
7.2.1创建一个练习数据集127
7.2.2使用一个正态贝叶斯分类器对数据分类128
7.2.3使用一个朴素贝叶斯分类器对数据分类131
7.2.4条件概率的可视化132
7.3使用朴素贝叶斯分类器对邮件分类134
7.3.1载入数据集134
7.3.2使用Pandas构建数据矩阵136
7.3.3数据预处理137
7.3.4训练正态贝叶斯分类器138
7.3.5使用完整的数据集进行训练139
7.3.6使用n-gram提升结果139
7.3.7使用TD-IDF提升结果140
7.4总结141
第8章使用非监督学习发现隐藏结构142
8.1理解非监督学习142
8.2理解k均值聚类143
8.3理解期望最大化145
8.3.1实现期望最大化解决方案146
8.3.2了解期望最大化的局限148
8.4使用k均值压缩色彩空间154
8.4.1真彩色调色板的可视化154
8.4.2使用k均值减少调色板157
8.5使用k均值对手写数字分类159
8.5.1载入数据集159
8.5.2运行k均值159
8.6把聚类组织成层次树161
8.6.1理解层次聚类161
8.6.2实现凝聚层次聚类162
8.7总结163
第9章使用深度学习对手写数字分类164
9.1理解McCulloch-Pitts神经元164
9.2理解感知器167
9.3实现第一个感知器169
9.3.1生成练习数据集170
9.3.2使用数据拟合感知器171
9.3.3评估感知器分类器171
9.3.4把感知器应用到线性不可分的数据上173
9.4理解多层感知器174
9.4.1理解梯度下降175
9.4.2使用反向传播训练多层感知器178
9.4.3在OpenCV中实现多层感知器179
9.5了解深度学习183
9.6手写数字分类186
9.6.1载入MNIST数据集187
9.6.2MNIST数据集预处理188
9.6.3使用OpenCV训练一个MLP189
9.6.4使用Keras训练一个深度神经网络190
9.7总结192
第10章组合不同算法为一个整体193
10.1理解集成方法193
10.1.1理解平均集成195
10.1.2理解提升集成197
10.1.3理解堆叠集成200
10.2组合决策树为随机森林200
10.2.1理解决策树的不足200
10.2.2实现第一个随机森林204
10.2.3使用scikit-learn实现一个随机森林205
10.2.4实现极端随机树206
10.3使用随机森林进行人脸识别208
10.3.1载入数据集208
10.3.2预处理数据集209
10.3.3训练和测试随机森林210
10.4实现AdaBoost212
10.4.1使用OpenCV实现AdaBoost212
10.4.2使用scikit-learn实现AdaBoost213
10.5组合不同模型为一个投票分类器214
10.5.1理解不同的投票机制214
10.5.2实现一个投票分类器215
10.6总结217
第11章通过超参数调优选择合适的模型218
11.1评估一个模型218
11.1.1评估模型错误的方法219
11.1.2评估模型正确的方法220
11.1.3选择最好的模型221
11.2理解交叉验证223
11.2.1使用OpenCV手动实现交叉验证225
11.2.2使用scikit-learn进行k折交叉验证226
11.2.3实现留一法交叉验证227
11.3使用自举评估鲁棒性228
11.4评估结果的重要性230
11.4.1实现T检验230
11.4.2实现配对卡方检验232
11.5使用网格搜索进行超参数调优233
11.5.1实现一个简单的网格搜索234
11.5.2理解验证集的价值235
11.5.3网格搜索结合交叉验证236
11.5.4网格搜索结合嵌套交叉验证238
11.6使用不同评估指标来对模型评分239
11.6.1选择正确的分类指标239
11.6.2选择正确的回归指标240
11.7链接算法形成一个管道240
11.7.1用scikit-learn实现管道241
11.7.2在网格搜索中使用管道242
11.8总结243
第12章综合244
12.1着手处理一个机器学习问题244
12.2构建自己的估计器245
12.2.1使用C++编写自己的基于OpenCV的分类器245
12.2.2使用Python编写自己的基于scikit-learn的分类器247
12.3今后的方向249
12.4总结251