本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
图书基本信息 | |
图书名称 | 机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版) |
作者 | 阿迪蒂亚·夏尔马(AdityaSharma),维什韦什·拉维 |
定价 | 99元 |
出版社 | 机械工业出版社 |
ISBN | 9787111668268 |
出版日期 | 2020-11-01 |
字数 | |
页码 | 296 |
版次 | |
装帧 | 其他 |
开本 | 16开 |
商品重量 |
内容提要 | |
本书通过具体的编程实践案例,全面系统地讲述了机器学习涉及的核心内容。首先介绍新特性以及安装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 |
作者介绍 | |
阿迪蒂亚·夏尔马(Aditya Sharma),罗伯特·博世(Robert Bosch)公司的一名高级工程师,致力于解决真实世界的自动计算机视觉问题。曾获得罗伯特·博世公司2019年人工智能编程马拉松的首名。在印度理工学院,他于2019年的ICIP和2019年的MICCAI上发表了有关深度学习医学成像的论文。在国际信息技术学院,他的工作主要是文档图像超分辨。 他还是一个积极进取的作家,曾为DataCamp和LearnOpenCV撰写过很多有关机器学习和深度学习的文章。他不仅经营着自己的YouTube频道,还在NCVPRIPG会议(2017)以及阿里格尔穆斯林大学(Aligarh Muslim University)的深度学习研讨会上做过演讲。 维什韦什·拉维·什里马利(Vishwesh Ravi Shrimali),于2018年毕业于彼拉尼博拉理工学院(BITS Pilani)机械工程专业。此后一直在BigVision LLC从事深度学习和计算机视觉方面的工作,还参与了官方OpenCV课程的创建。他对编程和人工智能有着浓厚的兴趣,并将其应用到机械工程项目中。他还在LearnOpenCV上写了多篇有关OpenCV和深度学习的博客。除了撰写博客和做项目,他喜欢散步和弹奏木吉他。 迈克尔·贝耶勒(Michael Beyeler),是华盛顿大学神经工程和数据科学的博士后研究员,致力于仿生视觉的计算模型研究,以为盲人植入人工视网膜(仿生眼睛),改善盲人的感知体验。他的工作属于神经科学、计算机工程、计算机视觉和机器学习的交叉领域。他还是几个开源软件项目的主要贡献者,并在Python、C/C 、CUDA、MATLAB和Android等方面拥有专业的编程经验。迈克尔在加州大学欧文分校获得计算机科学博士学位,在瑞士苏黎世联邦理工学院获得生物医学工程硕士学位和电子工程学士学位。 |