人们现在通常用机器学习来解决复杂的计算机视觉问题。机器学习是一个内容非常广泛的研
究领域,包含很多重要概念,写成一本书绝对不为过。本章将探讨几种主要的机器学习技术,并
说明如何在 OpenCV计算机视觉系统中加以应用。
机器学习的核心内容是建立一套计算机系统,使其能自己学会如何处理数据。向机器学习系
统输入带有明确结果的样本数据,它就能自动适应并不断改进,而不需要显式的编程。训练过程
完成后,系统就会对新的输入做出正确的响应。
机器学习可以解决很多类型的问题,这里将重点关注分类问题。理论上,要构建一个分类
器,使其能识别带有某些特性的事物,就必须用大量带有标注的样本数据对其进行训练。对于
二类分类问题,这些训练数据包括正样本和负样本,其中正样本代表属于该类别的实例,而负
样本代表不属于该类型的反例。通过这些样本,分类器将产生一个能对任何实例做出正确判断
的决策函数。
在计算机视觉领域,样本就是图像(或视频片段)。机器学习的第一步是要找到一种模型,
可以用简洁又有差异性的方式准确地反映每幅图像的内容。最简单的模型就是采用固定大小的
缩略图;把缩略图的像素逐行列出,组成一个向量,作为机器学习算法的训练样本。此外还可
以使用其他效果更好的模型。本章将分析几种不同的图像模型,并介绍几种常用的机器学习算
法。需要强调的是,本章不会涉及各种机器学习技术的细节,而是着重关注实现相关功能的基
本原理。