本节简要介绍人脸检测的基本原理;OpenCV提供的三种不同的训练好的级联分类器,本文简单介绍其中涉及的一些概念。

人脸检测简介

人脸识别是指程序对输入的人脸图像进行判断,并识别出对应的人的过程。人脸检测是人脸识别的基础。

在人脸检测中,主要任务是构造能够区分包含人脸不包含人脸的分类器。这些实例被分为“正类”(包含人脸图像)以及“负类”(不包含人脸图像)。

级联分类器

正常情况下,分类器需要对多个图像特征进行识别。例如,识别一种动物为狗(正类)还是其他动物(负类)。我们需要根据多个条件进行判断,这样比较下来是比较烦琐的。但是可以先比较有几个腿:

  • 有四条腿的判断为“可能是狗”。并在这个分类下进行分析和判断
  • “没有四条腿”直接被否定

这样可以排除大量的“负类”

级联分类器就是基于这样的思想。相当于一个电路的串联。

级联分类器的流程示意

OpenCV提供了用于训练级轴分类器的工具,也提供了训练好的用于人脸定位的级联分类器。都可以作为现成的资源使用。

Haar级联分类器

OpenCV提供了已经训练好的Haar级联分类器用于人脸定位。

Haar特征反应的是图像的灰度变化,他将像素划分为模块后求差值。Haar特征用黑白两种矩形框组合成特征模板,在特征模板中,用白色矩形像素块的像素和减去黑色矩形像素块的像素和来表示该模板的特征。经过处理,人脸部的一些特征就可以使用矩形框的差值简单地表示了。比如,眼睛的颜色要比脸颊的颜色要深。

关于Haar特征中的矩形框,有三个变量:

  • 矩形位置:矩形框要逐个像素地遍历整个图像,获得每个位置的差值
  • 矩形大小:矩形地大小可以根据需要做出调整
  • 矩形类型:包含垂直、水平、对角等不同类型

这三个变量能够细致全面得获取图像的特征信息。但是,变量的个数越多,特征的数量也会越多。例如一个24X24的窗口的特征数量就接近20万个,因此,该方案并不是很实用。

为了进一步提高效率,将Haar特征划分为以下4类:

  • 4个边特征
  • 8个线特征
  • 2个中心点特征
  • 1个对角特征

Haar分类器拓展特征

有的学者认为,对角特征和线特征的e和g是相近的,所以通常情况下无须重复计算。

经过一系列更新,实现了将Haar级联分类器用于人脸部特征的定位,可以直接调用OpenCV自带的Haar级联分类器来实现人脸定位。


博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/CVFace1.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 05 月 25 日
如果觉得我的文章对你有用,请随意赞赏