当前位置: 首页 > article >正文

《OpenCV计算机视觉》——人脸检测__Haar特征、级联分类器

文章目录

  • Haar特征
    • 一、定义与原理
    • 二、分类
    • 三、计算方法
    • 四、应用
    • 五、优缺点
  • 级联分类器
    • 一、定义与原理
    • 二、结构与组成
    • 三、举例说明

Haar特征

Haar特征是一种在计算机视觉和图像处理中常用的特征描述方法,特别适用于物体识别,尤其是人脸检测。以下是对Haar特征的详细解释:

一、定义与原理

Haar特征是一种反映图像灰度变化的特征,通过计算图像中不同位置和大小的矩形框内像素值的差异来提取图像的特征。具体来说,它使用黑白两种矩形框组合成特征模板,在特征模板内计算黑色矩形像素和与白色矩形像素和的差值来表示这个模板的特征值。

二、分类

Haar特征可以分为多种类型,包括但不限于:

  1. 边缘特征:用于检测图像中的边缘信息。
  2. 线性特征:用于检测图像中的线性结构。
  3. 中心特征:通常用于检测图像中的中心区域或对称结构。
  4. 对角线特征:用于检测图像中的对角线结构。
  • 各特征的矩形框如下图所示:
    在这里插入图片描述

三、计算方法

  • 步骤如下:
      1. 选定一个矩形框。
      1. 将矩形框分成两个或四个相等的小矩形。
      1. 分别计算两个小矩形内像素值的和。
      1. 计算两个小矩形之间像素值的差异,得到一个Haar特征值。
      1. 通过在图像上移动矩形框,并对每个矩形框都计算Haar特征值,最终得到图像的Haar特征向量。
  • 注意
    • 矩形框要逐像素点地划过(遍历) 整个图像获取每个位置的特征值
    • 矩形的大小可以根据需要进行任意调整
  • 如下图理解:
    在这里插入图片描述

四、应用

Haar特征在人脸检测、物体识别等领域有着广泛的应用。例如,在人脸检测中,Haar特征可以用来提取人脸的局部特征,如眼睛、嘴巴、鼻子等部位的形状、大小、位置等信息。通过对这些特征进行组合和比较,可以实现对人脸的识别。

五、优缺点

优点

  1. 计算速度快,能够在实时性要求较高的场景中使用。
  2. 对于光照、旋转和尺度变化等影响较小,具有一定的鲁棒性。

缺点

  1. 对于图像的复杂度不够敏感,不能很好地描述图像的纹理和形状特征。
  2. 对于噪声和干扰较为敏感,需要采取一些方法进行降噪和去除干扰。
  3. 只能提取图像的局部特征,无法很好地捕捉全局特征。

级联分类器

一、定义与原理

  • 级联分类器通过将多个分类器级联起来,对输入的样本进行多次分类。每次分类器对样本分类的结果会影响到后续分类器对该样本的分类决策。
  • 具体来说,第一个分类器对输入的样本进行分类,如果认为是负样本,则直接返回结果并结束分类过程;如果认为是正样本,则将该样本传递给下一个分类器进行分类。以此类推,直到所有分类器都已经对该样本进行了分类决策。如果经过多次分类器的分类决策之后,该样本仍旧被判断为正样本,则最终的结果将该样本判定为正样本;如果被判断为负样本,则最终的结果将该样本判定为负样本。

二、结构与组成

  • 级联分类器通常由多个强分类器串联而成,每个强分类器又包含若干个弱分类器。
  • 这些弱分类器通过AdaBoost等算法进行训练,以提高其分类能力。在级联分类器中,靠前的强分类器相较于靠后的强分类器包含的特征相对较少。这是因为当非人脸与人脸差异过大时,分类器仅需要很少的特征就可以将其检测出来。

三、举例说明

  • 分类器需要对图像的多个特征进行识别
  • 例如:
    • 在识别一个动物是狗(正类)还是其他动物(负类)时,直接根据多个条件进行判断,流程是非常烦琐的。如果先判断该动物有几条腿。有四条腿的动物被判断为可能为狗,并对此范围内的对象继续进行分析和判断。没有四条腿的动物直接被否决,即不可能是狗。只通过比较腿的数目就能排除样本集中大量的负类(如鸡、鸭、鹅等不是狗的动物的实例)。
    • 级联分类器就是基于这种思路将多个简单的分类器按照一定的顺序级联而成的。
    • 如下图结构理解:
      在这里插入图片描述

http://www.kler.cn/news/356136.html

相关文章:

  • nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理
  • Java项目-基于Springboot的招生管理系统项目(源码+说明).zip
  • 网络变压器在PCIe网口应用的案例
  • 《师兄啊师兄》:家国大义,不忘初心
  • Java项目-基于springboot框架的智能热度分析和自媒体推送平台项目实战(附源码+文档)
  • C++:priority_queue优先队列
  • Spring Boot视频网站:构建高性能的视频服务
  • ASO优化手机游戏的秘密功能
  • Ubuntu安装运行 xx.AppImage 文件
  • KCC@广州活动预告:开源共融,粤创未来
  • 基于SpringBoot+Vue+uniapp的涪陵区特色农产品交易系统的详细设计和实现(源码+lw+部署文档+讲解等)
  • Linux 系统常用命令
  • 鸿蒙-键盘弹出时 promptAction.showToast 被遮盖
  • KubeSphere部署Elasticsearch+Kibana
  • vulnhub(15):lemonsqueezy(hydra爆破、计划任务提权)
  • Vue是一套构建用户界面的渐进式框架,常用于构建单页面应用
  • OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用
  • 十二、结构型(代理模式)
  • 雷达液位计在污水测量中的应用与优势
  • sentinel原理源码分析系列(四)-ContextEntry