AI自动化测试:技术原理、平台搭建与工程实践
上QQ阅读APP看书,第一时间看更新

2.2.3 梯度特征匹配算法

除了灰度值、特征点,我们还可以提取图像的其他特征,如边缘特征、梯度特征和方向梯度直方图等。方向梯度直方图[1](Histogram of Oriented Gradient,HOG)是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。HOG特征通过计算和统计图像局部区域的梯度方向直方图来构成。此外,HOG特征结合SVM分类器的技术已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。HOG特征提取流程如图2-4所示,主要步骤介绍如下。

图2-4 HOG提取特征的流程

Step1:归一化处理。为了减小光照因素的影响,首先需要将整个图像进行规范化(归一化)。归一化处理能够有效地降低图像局部的阴影和光照变化。

Step2:计算图像梯度。计算图像横坐标和纵坐标方向的梯度,并据此计算每个像素位置的梯度方向值。求导操作不仅能够捕获轮廓、人影和一些纹理信息,还能进一步弱化光照的影响。

最常用的方法是:简单地使用一个一维的离散微分模板在一个方向或者同时在水平和垂直两个方向上对图像进行处理。计算公式如下所示,其中Gx(x,y)表示像素点(x,y)处的水平方向梯度,Gy(x,y)表示像素点(x,y)处的垂直方向梯度,H(x,y)表示像素点(x,y)处的像素值,G(x,y)表示在像素点(x,y)处的梯度幅度值,α(x,y)表示梯度方向。

Step3:构建方向直方图。细胞单元中的每一个像素点都为基于某个方向的直方图通道投票。投票采取的是加权投票的方式,即每一票都是带有权值的,这个权值是根据该像素点的梯度幅值计算出来的。我们可以采用幅值本身或者幅值函数来表示权值。实际测试表明:使用幅值本身来表示权值能获得更佳的效果。当然,我们也可以选择幅值函数来表示,比如幅值的平方根、幅值的平方、幅值的截断形式等。细胞单元可以是矩形的,也可以是星形的。直方图通道平均分布在0~180°(无向)或0~360°(有向)范围内。研究发现,采用无向的梯度和9个直方图通道,能在行人检测试验中取得最佳的效果。

Step4:将细胞单元组合成大的区间。由于局部光照的变化以及前景和背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步对光照、阴影和边缘进行压缩。采取的方法是:把各个细胞单元组合成大的、空间上连通的区间。这样,HOG描述符就变成了由各区间所有细胞单元的直方图所组成的一个向量。这些区间是互有重叠的,这就意味着每一个细胞单元的输出会多次作用于最终的描述器。

区间有两个主要的几何形状——矩形区间(R-HOG)和环形区间(C-HOG)。R-HOG区间大体上是一些方形的格子,可以由三个参数来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目。

Step5:收集HOG特征。把提取的HOG特征输入SVM分类器,寻找一个最优超平面作为决策函数。

2.2节主要介绍了传统的图像识别算法,如基于像素值的方法、特征点方法、HOG特征的方法等。这些方法一般采用滑动窗口的方法在全图像内提取窗口内的特征。为了适应不同大小物体的检测,需要对原图像进行缩放,在缩放后的图像上滑动子窗口提取特征。子窗口的方式使得计算量增大。此外,这些方法都需要人工设计和提取特征,所以算法的选取很重要。如HOG特征比较适用于轮廓明显的物体检测,如果整张图像没有明显的轮廓特征,那么HOG算法就不是很适用了。有没有可以自动提取图像特征且通用性更强的算法呢?下一节中我们将介绍基于深度学习自动提取图像特征的算法。

[1] Dalal N,Triggs B.Histograms of Oriented Gradients for Human Detection[C].IEEE Computer Society Conference on Computer Vision & Pattern Recognition,2015.