Adaboost 人脸检测原理剖析

本文涉及的产品
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 【1月更文挑战第6天】

Adaboost 人脸检测原理剖析

Haar-like 特征可以分为边缘特征、中心特征、对角线特征以及线性特征。

(a)即为边缘特征,其用于检测目标图像在边缘上的变化信息,如人脸边缘与背景的灰度变化,人头发与人脸额头之间的灰度变化等;

(b)即为线性特征,其用于检测目标图像在水平以及垂直方向上的变化信息,如人的鼻梁两侧肤色要比鼻梁上的颜色深等;
image.png

(c)即为中心特征和对角线特征,其用于检测对角线上以及矩形模板外围和中心之间的变化信息,如人的眼睛比人脸的其他部分颜色要深,嘴巴要比其周围肤色颜色要深等。并且在这些水平垂直的基础上,又添加了 45°方向的矩形模板。通过采用这三种不同形式的矩形模板来表示人脸区域的特征,达到区分人脸部分与背景部分并将两者分割的目的。

image.png

在OpenCV接口中,实现了Haar/LBP/HOG等多种特征,以Haar特征为例介绍,Haar特征最先由Paul Viola等人提出,后经过Rainer Lienhart等扩展引入45°倾斜特征,成为现在OpenCV所使用的的样子共计14种Haar特征,包括5种Basic特征、3种Core特征和6种Titled(即45°旋转)特征。

人脸检测分类器=haar-like (特征)+CART(弱)+ Adaboost(强) + Cascade(级联)

Haar特征可以在检测窗口中由放大+平移产生一系列子特征,但是白:黑区域面积比始终保持不变。
image.png

以x3特征为例,在放大+平移过程中白:黑:白面积比始终是1:1:1。
首先在红框所示的检测窗口中生成大小为3个像素的最小x3特征;之后分别沿着x和y平移产生了在检测窗口中不同位置的大量最小3像素x3特征;然后把最小x3特征分别沿着x和y放大,再平移,又产生了一系列大一点x3特征;然后继续放大+平移,重复此过程,直到放大后的x3和检测窗口一样大。这样x3就产生了完整的x3系列特征。

将矩形作为人脸检测的特征向量,称为矩形特征。本算法选取了最简单的5个矩形特征模板进行训练,以得到一套用于人脸检测的最适合的矩形特征,事实证明,虽然这种特征选取方法的训练速度时间较长,但是检测效率很高。
矩形特征在人脸图像上的特征匹配:
上行是 24×24 像素窗口内选出的矩形特征,
下行是 24×24 像素分辨率的人脸图像与上行选出的矩形特征的匹配!

矩形特征对一些简单的图形结构,比如边缘、线段,比较敏感,但是其只能描述特定走向(水平、垂直、对角)的结构,因此比较粗略。如图,脸部一些 特征能够由矩形特征简单地描绘,例如,通常,眼睛要比脸颊颜色更深;鼻梁两 侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。

image.png

目录
打赏
0
0
0
0
142
分享
相关文章
5.3 目标检测YOLOv3实战:叶病虫害检测——损失函数、模型训练
这篇文章详细介绍了使用YOLOv3模型进行叶病虫害检测时的损失函数配置、模型训练过程、评估方法以及模型预测步骤,并提供了相应的代码实现和可能的改进方案。
心得经验总结:浅析人脸检测之Haar分类器方法
心得经验总结:浅析人脸检测之Haar分类器方法
69 0
使用MeanShift算法进行图像分割的实现
使用MeanShift算法进行图像分割的实现
使用Python实现图像处理中的边缘检测算法
图像处理中的边缘检测是计算机视觉和图像识别领域的重要技术之一。本文将介绍如何利用Python语言实现常见的边缘检测算法,包括Sobel、Canny等,并结合实例演示其在图像处理中的应用。
307 16
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
PyTorch使用神经网络进行手写数字识别实战(附源码,包括损失图像和准确率图像)
254 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等