opencv机器学习线性回归_机器学习:使用OpenCV.Python和scikit-learn进行智能图像处理(原书第2版)...

OpenCV是用于构建计算机视觉应用程序的一个开源库。本书将全面介绍新发布的OpenCV 4版本所提供的大量新特性和平台改进。

首先,你将了解OpenCV 4的新特性并安装OpenCV 4来构建计算机视觉应用程序。然后,你将探索机器学习的基础知识,学习设计用于图像处理的各种算法,循序渐进地掌握监督学习和无监督学习,并将获得使用Python中的scikit-learn开发各种机器学习应用程序的实践经验。接着,你将学习决策树、支持向量机(SVM)、贝叶斯学习等各种机器学习算法,以及如何将这些算法应用于目标检测等计算机视觉操作。之后,你将深入研究深度学习和集成学习,并探索它们在现实世界中的应用,如手写数字分类和手势识别等。*后,你将学习用于构建图像处理系统的英特尔OpenVINO工具包。

学习完本书,你将掌握使用OpenCV 4构建智能计算机视觉应用程序所需要的机器学习技能。

本书通过具体的编程实践案例,全面系统地讲述了机器学习涉及的核心内容。首先介绍新特性以及安装OpenCV 4构建计算机视觉应用程序。你将探索机器学习的基础知识,学习设计用于图像处理的各种算法。本书将逐步介绍有监督学习和无监督学习。你将获得使用Python中的scikit-learn开发各种机器学习应用程序的实践经验。后续章节将重点介绍决策树、支持向量机、贝叶斯学习等各种机器学习算法,以及如何将这些算法应用于目标检测等计算机视觉操作。然后,你将深入研究深度学习和集成学习,并探索它们在现实世界中的应用。*后,你将学习用于构建图像处理系统的*新的Intel OpenVINO。

译者序

前言

作者简介

审校者简介

部分  机器学习与OpenCV的基础知识

章  机器学习体验2

1.1  技术需求3

1.2  开始机器学习3

1.3  机器学习可以解决的问题4

1.4  开始使用Python5

1.5  开始使用OpenCV6

1.6  安装6

1.6.1  获取本书的最新代码7

1.6.2  了解Python的Anaconda发行版8

1.6.3  在conda环境中安装OpenCV9

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-NN40

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和可旋转的BRIEF84

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  理解线性SVM113

6.2.1  学习最优决策边界113

6.2.2  实现我们的个SVM115

6.3  处理非线性决策边界120

6.3.1  理解核技巧121

6.3.2  了解我们的核121

6.3.3  实现非线性SVM122

6.4  检测自然场景中的行人123

6.4.1  获取数据集124

6.4.2  面向梯度的直方图概述126

6.4.3  生成负样本127

6.4.4  实现SVM128

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

0章  集成分类方法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  实现AdaBoost232

10.5.1  用OpenCV实现AdaBoost232

10.5.2  用scikit-learn实现AdaBoost233

10.6  把各种模型组合成一个投票分类器234

10.6.1  理解各种投票方案234

10.6.2  实现一个投票分类器235

10.6.3  简单多数236

10.7  本章小结237

1章  选择正确的模型与超参数调优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

2章  使用基于OpenCV的OpenVINO264

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

3章  尾声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

你可能感兴趣的:(opencv机器学习线性回归)