基于HOG+SVM的人脸识别

HOG,是常用的一种目标检测的特征描述子。HOG的计算基于一致空间的密度矩阵来提高准确率,其主要思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述,且它得到的描述子保持了几何和光学转化不变性除非物体方向改变。HOG特征是图像的一种特征可以是一个具体的数值、向量、矩阵,以及一个n维的数组。HOG的算法通过归一化图像、计算梯度、统计直方图、梯度直方图归一化、得到HOG特征向量。人脸检测的流程为构建负例数据集、提取图像HOG特征、训练SVM分类器、人脸检测

关键词:HOG特征归一化NMS

  1. HOG原理

1.1背景

方向梯度直方图(Histogram of Oriented Gradient,HOG)是用于在计算机视觉和图像处理领域,目标检测的特征描述子,是用来计算图像局部出现的方向梯度次数或信息进行计数。此方法跟边缘方向直方图、尺度不变特征变换以及形状上下文方法有很多相似。但与它们的不同点是:HOG的计算基于一致空间的密度矩阵来提高准确率。即:在一个网格密集的大小统一的细胞单元上计算,而且为了提高性能,还采用了重叠的局部对比度归一化技术。HoG特征与SVM分类器结合,已经被广泛应用于图像识别中,尤其在行人检测。

1.2基本介绍

HOG的核心思想是所检测的局部物体外形能够被光强梯度或边缘方向的分布所描述。通过将整幅图像分割成小的连接区域称为cells,每个cell生成一个方向梯度直方图或者cell中pixel的边缘方向,这些直方图的组合可表示出所检测目标的目标)描述子。为改善准确率,局部直方图可以通过计算图像中一个较大区域称为block的光强作为measure被对比标准化,然后用这个measure归一化这个block中的所有cells.这个归一化过程完成了更好的照射/阴影不变性。与其他描述子相比,HOG得到的描述子保持了几何和光学转化不变性除非物体方向改变。而Block与Cells关系如下图所示:

  1. HOG特征

HOG特征是图像的一种特征,它可以是一个具体的数值,可以是一个向量,可以是一个矩阵,还可以是一个n维的数组。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成特征。其主要思想是,在一副图像中,局部目标的表象和形状能够被梯度或边缘的方向密度分布很好地描述。其本质为:梯度的统计信息,而梯度主要存在于边缘的地方。

  1. 算法实现

  1. HOG特征提取方法

首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。如下图所示:即:将一个图像:第一步,灰度化即:将图像看做一个x,y,z(灰度)的三维图像;第二步:划分成小cells(2*2);第三步,计算每个cell中每个pixel的gradient(即orientation);最后,统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor。

  1. 色彩和伽马归一化

为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化)。在图像的纹理强度中,局部的表层曝光贡献的比重较大,所以,这种压缩处理能够有效地降低图像局部的阴影和光照变化。

首先判断输入的图像是否为灰度图像,如果不是灰度图像,需要进行图像的转化,具体的公式为:

将转化后的图像进行gama校正与压缩,目的是要改善图像的灰度。在图像照度不均匀的情况下,可以通过Gamma校正,将图像整体亮度提高或降低。

  1. 梯度计算

模拟图像f(x,y)中任一像素点(x,y)的梯度是一个矢量:

其中,Gx是沿x方向上的梯度,Gy是沿y方向上的梯度,梯度的幅值及方向角可表示如下:

一维离散微分模板在将图像的梯度信息简单、快速且有效地计算出来,其公式如下:

其中,Gx,Gy,H(x,y)分别表示的是像素点(x,y)在水平方向上及垂直方向上的梯度以及像素的灰度值,其梯度的幅值及方向计算公式如下:

简单地使用一个一维的离散微分模板在一个方向上或者同时在水平和垂直两个方向上对图像进行处理,但这个方法需要使用滤波器核滤除图像中的色彩或变化剧烈的数据。同时尝试了其他一些更复杂的模板,如3×3 Sobel 模板,或diagonal masks,但这些复杂模板的表现都较差。于是尝试了在使用微分模板前加入一个高斯平滑滤波,但是这个高斯平滑滤波的加入使得检测效果更差,因为许多有用的图像信息是来自变化剧烈的边缘,而在计算梯度之前加入高斯滤波会把这些边缘滤除掉。

  1. 构建方向的直方图

细胞单元中的每一个像素点都为某个基于方向的直方图通道投票。投票是采取加权投票的方式,即每一票都是带有权值的,这个权值是根据该像素点的梯度幅度计算出来。可以采用幅值本身或者它的函数来表示这个权值,也可以选择幅值的函数来表示,比如幅值的平方根、幅值的平方、幅值的截断形式等。细胞单元可以是矩形的,也可以是星形的。直方图通道是平均分布在0-1800(无向)或0-3600(有向)范围内。

  1. 区间归一化

梯度幅值绝对值容易受到前景与背景对比度及局部光照的影响,要减少这种影响得到较准确的检测效果就必须对局部细胞单元进行归一化处理。归一化方法多种多样,但整体思想基本一致:将几个细胞单元(cell)组合成更大的块(block),这时整幅图像可看成是待检测窗口,将更大的块看成是滑动窗口,依次从左到右从上到下进行滑动,得到一些有重复细胞单元的块及一些相同细胞单元(cell)在不同块(block)中的梯度信息,再对这些块(block)信息分别作归一化处理,不同的细胞单元尺寸大小及不同块的尺寸大小会影响最终的检测效果。

下式是定义的范数的函数表达式:

L1范数:

L2范数:

规范化的方法有多种可选包括以下几种:

(a)L1-norm:

(b)L1-sprt:

(c)L2-norm:

(d)L2-Hys: L2-norm:

(

)

3.6 非极大值抑制

NMS,非极大值抑制,原理是找到所有局部最大值,并抑制非局部最大值。目标检测推理的过程中会产生很多的候选检测框,很多检测框都是检测同一个目标,导致候选框之间的重叠部分过多,使用非极大值抑制可以找出局部最优的框,去掉重复部分。

  1. 实验结果分析

下图是负例数据集的构建:

本次实验在人脸检测部分使用了两种策略。

首先,在滑窗过后,候选框数目较多,并且有许多不符合最终要求。当IoU阈值设置足够低时,可以将大部分重叠的候选框去除,保留某一区域的最大值。但是,非极大值抑制并不能将错误的候选框筛除,只能将每个部分多余的候选框剔除,所以单从人脸识别的角度来看,最终的结果并不尽如人意。不过,由于保留了多个可能为人脸的区域,所以从多人脸识别角度来看,结果较好。本实验非极大值抑制结果如下:

在使用置信度最大值最为边界框的选取策略时,只会保留SVM得分最高的候选框,但是,由于只能保留得分最大的边界框,所以针对多人脸图片时,会出现遗漏检测的问题,只能检测到更完整、更符合正例、角度最正的人脸。置信度最大结果如下:

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_57788887

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值