随着世界的不断变化,人们构建的机器越来越智能,对机器学习和计算机视觉专家的需求也在日益增长。顾名思义,机器学习就是机器进行学习的过程,即通过给定一组特定参数并将其作为输入进行预测。另一方面,计算机视觉提供了机器视觉,即计算机视觉使机器能够感知信息。当把这些技术组合在一起时,你就得到了一台可以使用视觉数据进行预测的机器,这使得机器拥有的能力更接近人类。当深度学习被加入时,机器的预测能力甚至可以超过人类。这似乎有些牵强,但是随着人工智能系统逐步取代基于决策的系统,这实际上已经成为现实。你拥有人工智能相机、人工智能监控器、人工智能音响系统、人工智能驱动处理器等。虽然不能保证你在读完本书之后就能够构建出一台人工智能相机,但是我们确实打算为你提供实现这些任务必需的工具。我们将要介绍的工具是功能最强大的OpenCV库,它是世界上规模最大的计算机视觉库。尽管OpenCV库在机器学习中的使用不是很普遍,但我们还是提供了一些有关如何将其应用于机器学习的例子和概念。在本书中,我们采用动手实践的方法,建议你尝试本书中提供的每一段代码,以构建一个应用程序来展示学到的知识。世界在变化,而本书就是我们帮助年轻人把世界变得更美好的方式之一。
我们试图从头开始解释所有的概念,以使本书既适合初学者又适合高层次读者。读者需具备一些Python编程方面的基本知识,但这不是强制要求。当你遇到不能理解的Python语法时,请一定去网上查找。 天助自助者 。
第1章介绍安装本书所需的软件及Python模块。
第2章带你了解一些基本的OpenCV函数。
第3章涵盖机器学习中监督学习方法的基础知识,并将通过OpenCV以及Python中的scikit-learn库带你了解一些监督学习方法示例。
第4章介绍使用OpenCV中的ORB进行特征检测和特征识别,还将试着帮大家理解维数灾难等重要概念。
第5章介绍决策树及其相关的重要概念,包括树的深度和剪枝等技术。还将介绍利用决策树预测乳腺癌诊断的一个实际应用。
第6章介绍支持向量机及如何用OpenCV实现它,还将介绍一个使用OpenCV进行行人检测的应用。
第7章将讨论朴素贝叶斯算法、多项式朴素贝叶斯等技术及其实现。最后构建一个机器学习应用程序,把数据分类成垃圾邮件和非垃圾邮件。
第8章首次介绍第二类机器学习算法——无监督学习。还将讨论k近邻、k均值等聚类技术。
第9章介绍深度学习技术,我们可以看到如何使用深度神经网络对MNIST数据集的图像进行分类。
第10章介绍用于分类的随机森林、bagging方法以及boosting方法等。
第11章回顾在各种机器学习方法中选择最优参数集的过程,以提升模型的性能。
第12章介绍在OpenCV 4.0中引入的OpenVINO工具包,并以图像分类为例介绍如何使用OpenCV中的OpenVINO工具包。
第13章对本书的重要主题进行总结,并谈谈接下来可以做些什么。
如果你是Python的初学者,建议阅读任意一本优秀的Python编程书籍、在线教程或观看视频。你还可以研究一下DataCamp(http://www.datacamp.com),利用交互式课程学习Python。
同时建议学习有关Python中Matplotlib库的一些基本概念。你可以试试这个教程:https://www.datacamp.com/community/tutorials/matplotlib-tutorial-python。
在开始阅读本书之前,你不需要在系统上安装任何内容。我们将在第1章中介绍所有的安装步骤。
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
本书的代码包也在GitHub上托管,网址为:https://github.com/PacktPublishing/Machine-Learning-for-OpenCV-Second-Edition。如果代码有更新,将在现有的GitHub库上进行更新。