OpenCV级联分类器

OpenCV级联分类器

概览

  • OpenCV: 一个计算机视觉库, 提供了一种称级联分类器的方法检测对象
  • 级联分类器:一种基于AdaBoost算法的多级分类器, 用于在图像中检测目标对象. 它通过不断学习组合多个特征来识别目标对象. 每一级中, 级联分类器先检测出可能是目标对象的部分, 然后再这些部分进行更细粒度的检测, 有效减少检测所需计算量, 提高检测速度.

概念

样本

  • 正样本: 要检测的目标对象的样本(人脸图像, 车辆图像等)
    • 学习目标对象的特征
  • 负样本: 不要检测的目标对象样本(背景图像)
    • 学习非目标对象的特征
  • 通过对比正样本和负样本的特征, 分类器可以学习如何识别目标对象
  • 正负样本比例影响训练效果, 通常正样本比负样本少

AdaBoost

  • Adaptive Boosting, 自适应增强算法, 集成学习算法, 通过构建一系列弱分类器, 组合起来形成一个强分类器
  • 原理: 对训练集中的每一个样本, 根据分类错误率来调整权值, 对权值大的样本施加更大影响, 每轮迭代中, AdaBoost会选择一个弱分类器最小化分类错误率, 加入强分类器中
  • 优点: 简单, 易于理解, 实现, 容易并行化, 在大量机器学习问题中表现良好, 可与各种分类器配合使用
  • 缺点: 对异常值敏感, 容易过拟合, 使用时需要调参与结合其他算法才能得到较好结果

训练方法

  1. 准备训练数据, 需要大量正样本图像和对应标注信息, 负样本图像
  2. 提取特征, 使用Haar-like特征, LBP等特征提取器提取图像特征
  3. 训练第一级分类器, 使用AdaBoost算法训练, 得到第一级分类器权值和特征
  4. 第一级基础上继续训练下一级分类器, 直到满足训练精度要求为止
  5. 测试集上评估, 检查检测率和误报率来评估训练出来的分类器
  6. 重复3-5, 优化模型

项目实例

OpenCV人脸识别

你可能感兴趣的:(python,OpenCV,opencv)