计算机视觉中的机器学习:从示例中学习
1. 机器学习概述
机器学习在解决复杂的计算机视觉问题中应用广泛。其核心是开发能自动学习对数据输入做出反应的计算机系统,而非通过显式编程。当呈现所需行为的示例时,机器学习系统会自动适应和进化。训练完成后,期望系统能对新的未知查询输出正确响应。
我们主要关注分类问题。为构建能识别特定概念类实例的分类器,需用大量带注释的样本进行训练。在二分类问题中,样本集由代表要学习类的正样本和不属于该类的负样本组成。基于这些观察,需学习一个决策函数来预测任何输入实例的正确类别。
在计算机视觉中,样本通常是图像或视频片段。首先要找到一种能简洁且独特描述图像内容的表示方法。简单的表示可以是固定大小的缩略图,其像素按行排列形成的向量可作为训练样本。当然,也有其他更有效的表示方法。
2. 使用局部二值模式的最近邻方法进行人脸识别
2.1 方法简介
我们从最简单的机器学习方法——最近邻分类开始,同时介绍局部二值模式(LBP)特征,它能以与对比度无关的方式编码图像的纹理模式和轮廓。
人脸识别是一个具有挑战性的问题,这里介绍的是OpenCV中实现的一种人脸识别方法,虽不太鲁棒,仅在有利条件下有效,但却是机器学习和人脸识别问题的良好入门。
2.2 实现步骤
2.2.1 创建识别器实例
cv::Ptr<cv::face::FaceRecognizer> recognizer =
cv::face::createLBPHFaceRecognizer(1