|
发布时间: 2021-02-25 |
计算机与信息科学 |
|
|
收稿日期: 2020-02-28
基金项目: 国家自然科学基金(11804263,11747119)
中图法分类号: TP391.4
文献标识码: A
文章编号: 2096-8299(2021)01-0083-06
|
摘要
在对运动物体的实际追踪过程中,由于目标运动方向不确定、背景环境复杂多变等因素,增加了动态目标跟踪的难度,所以用普通识别方法较难提取出目标特征,从而无法准确跟踪动态目标。提出了基于模板匹配的人脸识别算法,分析了基于方向梯度直方图(HOG)的人脸特征提取算法和基于欧氏距离的人脸识别算法,设计出了人脸识别跟踪系统。实验结果表明,通过动态目标视觉检测以及PID控制的角度输出,该系统实现了对特定目标的人脸识别和跟踪。
关键词
模板匹配; 人脸识别; 目标追踪
Abstract
In the actual tracking process of moving objects in daily life, due to the uncertain movement direction of the target and the complex and changeable background environment, it is more difficult to track the dynamic target.Therefore, it is difficult to extract the characteristics of the target with the common recognition method, so the dynamic target cannot be tracked accurately.Face recognition algorithm research based on template matching is presented, face feature extraction algorithm based on HOG and face matching algorithm based on Euclidean distance are analyzed, and face recognition and tracking system is designed.The experimental results show that through dynamic target vision detection and PID control Angle output, face recognition tracking of specific targets is realized.
Key words
template matching; face recognition; target tracking
在目标识别跟踪系统中, 运动目标在图像中的像素位置是非常重要的数据信息[1-3]。随着科学技术的快速进步, 跟踪目标的瞬时变化特征和参数信息已经成为跟踪系统的性能评价和验收指标。但是在实际追踪过程中, 由于运动目标方向不确定, 且背景复杂多变, 很难提取目标特征, 所以大大增加了动态目标跟踪的难度。目标跟踪方法和目标识别技术为跟踪路径上运动目标的位置获取和准确识别提供了极大的理论知识与技术支持, 因此研究目标识别和跟踪技术, 具有较高的理论价值和实践意义[4-6]。
基于图像的目标检测与跟踪是指对获取的运动目标图像序列进行图像处理, 检测和识别到运动目标后对其进行定位和跟踪。目标检测和识别的主要依据是目标的特征, 如颜色、形状、空间关系等[7-9]。其中, 基于颜色特征的目标检测是最直观、应用最广泛的实现方式。本文中待检测的目标为人脸, 不宜选择复杂度太高的算法[10]。
本文提出了一种基于模板匹配的人脸识别算法, 分析了基于方向梯度直方图(Histogram of Oriented Gradient, HOG)的人脸特征提取算法和基于欧氏距离的人脸匹配算法, 并阐述了人脸识别与跟踪的原理和算法。
1 基于模板匹配的人脸识别算法
1.1 人脸识别算法
1.1.1 基于几何特征的方法
基于几何特征的方法是利用人脸上眼睛、眉毛、鼻子、下巴等器官的几何特征信息进行识别的方法, 是最早用于人脸识别的方法之一。1973年, KANADE T[10]首先使用基于几何特征的方法构建了人脸识别系统, 在20个人的人脸库中, 该系统识别率达到了75%。该系统的优点是理论性不强, 容易理解, 实现过程比较简单; 缺点是适用性不强, 容易受到环境变化的影响, 且识别率不高。
1.1.2 基于子空间的方法
人脸图像一般比较复杂, 往往受到光照、表情、姿态等因素的影响, 因此很难用几何特征来表示。人脸图像中包含着丰富的信息, 但数据维数较高, 且高维空间不利于样本的分类。子空间方法就是将这些高维数据映射到低维子空间, 映射后每类样本的分布更加有规律, 也更有利于样本的分类。
该方法将人脸图像设为一个随机向量, 通过K-L变换得到正交的K-L基底。这些特征基底有着人脸的形状, 所以该方法又称为特征脸方法。特征脸示意如图 1所示。
1.1.3 基于模板匹配的方法
模板匹配是图像识别中最具代表性的方法之一。它是从待识别的图像中提取若干特征向量, 并与模板对应的特征向量进行比较, 同时计算图像与模板特征向量之间的距离, 用最小距离法判定所属类别。基于模板匹配的方法通常需要建立标准模板库。基于模板匹配的人脸识别算法的流程如图 2所示。
从摄像头采集的图像中检测人脸, 然后提取人脸的128维特征值, 并计算欧氏距离, 根据设定的阈值判定是否为同一个人。由于人脸识别没有对应的人脸数据库, 因此不能用最小距离法, 只能用阈值作为判别依据。阈值的选取应兼顾识别率和识别的准确性, 实验中取训练样本与平均脸的欧氏距离平均值作为分类阈值。其公式为
$ {d_{12}} = \sqrt {{{\left( {{x_1} - {x_2}} \right)}^2} + {{\left( {{y_1} - {y_2}} \right)}^2}} $ | (5) |
式中: d12——两点间的欧氏距离;
(x1, y1), (x2, y2)——二维空间中两点的坐标。
根据给定的人脸图像建立模板库, 提取模板库中的人脸特征并存储, 在跟踪识别时采集图像并获取当前图像中的人脸部分, 通过计算128维特征值之间的欧氏距离, 与预存的人脸特征模板库值进行比对, 以判断特征是否匹配, 并进而识别人脸。
1.2 基于HOG的人脸特征提取算法
本文采用的模板匹配算法是基于HOG的人脸特征提取算法。预先采集由不同角度拍摄的同一个跟踪人员的8幅面部图像, 然后基于HOG算法获取每幅图像的人脸轮廓和特征点, 由每张照片提取出128维特征值, 并将这些特征值存储在文件中。
在图像中, 梯度可以很好地表示目标的形状和表象, 主要存在于轮廓的边缘位置。HOG通过计算在图像目标区域的方向梯度, 并使用直方图统计, 从而得到目标特征。具体方法为: 首先将图像划分为最小单元cell, 然后统计cell中像素点的HOG, 并将cell整合为一个较大的单位区域, 最后就构成了直方图类型的特征。
物体的局部外观和形状能够通过其局部梯度或边缘信息来表征和描述。HOG就是对图像指定区域内梯度方向分布的统计直方图。物体HOG特征的提取, 首先需要取得每个位置的梯度信息, 具体步骤如下。
步骤1 选取特征区域。
步骤2 在水平和垂直方向, 使用梯度算子[-1, 0, 1]对所选区域进行卷积运算, 得到该像素点在水平方向的梯度分量Gx(x, y)和垂直方向的梯度分量Gy(x, y)分别为
$ \left\{ \begin{array}{l} {G_x}(x, y) = H\left( {x + 1, y} \right) - H\left( {x - 1, y} \right)\\ {G_y}(x, y) = H(x, y + 1) - H(x, y - 1) \end{array} \right. $ | (1) |
式中: H(x, y)——像素点(x, y)的像素值。
步骤3 利用步骤2得到的梯度分量可得
$ \left\{ \begin{array}{l} G(x, y) = \sqrt {{G_x}{{(x, y)}^2} + {G_y}{{(x, y)}^2}} \\ \alpha (x, y) = {\rm{arctan}}\frac{{{G_x}(x, y)}}{{{G_y}(x, y)}} \end{array} \right. $ | (2) |
式中: G(x, y)——像素点(x, y)的梯度幅值;
α(x, y)——像素点(x, y)的梯度方向角度。
步骤4 设定统计HOG特征的单位为cell。每个cell为一个正方形, 在HOG特征中, 边长需要满足2的倍数关系。设每个cell为8×8像素块, 梯度方向范围为360°, 将该范围分为9个区间, 分别是0~40°, 40°~80°, …, 320°~360°。分别统计所有cell单位中梯度方向角度值落入这9个区间的像素点个数, 该梯度向量C(i, j)表示为
$ \mathit{\boldsymbol{C}}(i, j) = \{ {x_1}, {x_2}, {x_3}, \cdots , {x_9}\} $ | (3) |
式中: xi——第i个区间中的梯度角度个数, i=1, 2, 3, …, 9。
步骤5 为了更好地表述局部区域特征, 选取相邻cell的特征向量组成新的特征向量, 选取范围块称为区域。本文设定每个区域单位由2×2个cell单位组成, 区域的梯度直方图就是将4个cell单位的直方图组合, 区域的向量单位B(i, j)为
$ \begin{array}{l} \mathit{\boldsymbol{B}}(i, j) = \{ \mathit{\boldsymbol{C}}\left( {i - 1, j - 1} \right), \mathit{\boldsymbol{C}}(i, j - 1), \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\mathit{\boldsymbol{C}}\left( {i - 1, j} \right), \mathit{\boldsymbol{C}}(i, j)\} \end{array} $ | (4) |
此时, 梯度直方图信息由9维变为36维, HOG的特征选择完毕。利用HOG计算每个区域范围内的梯度信息, 存储时表示为一个cell的梯度信息。
根据HOG方法拍摄人脸照片, 并进行特征提取, 结果如图 3所示。
2 人脸识别跟踪系统的原理和实现方法
在本文设计的人脸识别跟踪系统中, 成像系统和跟踪转台是重要的组成部分。该系统将跟踪路径中的开始点、终止点与摄像头根据光学成像原理相互结合起来, 通过发送串口指令让跟踪转台开始工作, 建立路径上的跟踪模型。由于运动目标具有加速、匀速和减速的过程, 将根据理论得到的图像中心坐标和图像中识别到的目标位置进行对比, 所以可以检测模型是否实现了准确跟踪。在跟踪路径中, 当运动目标始终位于成像视场中心范围之内时, 速度变化较小, 这时的转台跟踪控制策略是可行的[8]。
2.1 人脸识别跟踪系统原理
令M为跟踪的开始点, 跟踪转台与开始点之间的距离为l1; N为跟踪的终止点, 跟踪终止点与转台之间的距离为l2; P为跟踪系统的观测点, P点与跟踪路径的垂直距离为lPH。按照跟踪路径中目标载体的特点, 建立跟踪原理示意图如图 4所示。
从图 4可以看出, M点、N点和P点之间的区域为跟踪区域。通常, M点与N点相距较远, 垂直距离lPH较小, 成像视场受到一定的限制, 且不能覆盖全部的跟踪范围。跟踪系统中, 成像视场的扩大是借助跟踪转台完成的, 跟踪转台能够辅助完成对跟踪路径上每一位置的变化状态的实时跟踪。通过确定合理的方位轴和俯仰轴旋转角度, 能够扩大跟踪视场范围, 使跟踪更加准确[9]。
采用相等的单位时间将跟踪路径划分为一系列的水平位移量, 并按照水平位移量分析跟踪路径上每一位置的状态信息, 则跟踪路径上各位置的位移量Si与跟踪路径总长度lMN之间的关系式为
$ {{l_{{\rm{MN}}}} = \sum\limits_{i = 1}^n {{S_i}} } $ | (6) |
跟踪转台旋转的总角度θd可以用水平位移量对应的旋转角度之和来表示, 即为
$ {{\theta _{\rm{d}}} = \sum\limits_{i = 1}^n {{\theta _i}} } $ | (7) |
为了对整个跟踪路径上运动目标的每一位置进行实时跟踪, 只需让二维跟踪转台转动一定的角度就能够实现。该角度为每一位置的时域内旋转的对应理论角度。检测到跟踪路径上对应时刻的目标图像后, 借助图像处理方法提取运动目标的参数特征[11-13]。
2.2 目标跟踪方法
在跟踪系统中, 通过跟踪转台的控制与目标图像的跟踪算法相结合的方式对运动目标进行实时跟踪。目标跟踪控制判断阈值框如图 5所示。
图 5中矩形abcd为相机成像平面, 图像中心为点O, 跟踪算法得到的目标位置为点O′, 矩形mnpq为发出控制指令的判断阈值框。当跟踪算法得到的目标图像的位置与图像中心位置之间的偏差即Δux和Δuy超出阈值框设定的值Δuxmax和Δuymax时, 表示运动目标偏离了图像中心一定范围。基于这个像素偏差, 首先使用PID算法计算输出角度, 再通过串口发送相应的转动角度, 二维跟踪转台得到转动角度后向目标图像阈值框方向转动, 减小运动目标的跟踪偏差, 使运动目标始终在相机的成像视场范围内。
由图 5可以看出, 当前目标位置已经超出了设定的阈值框, 即Δux>Δuxmax, Δuy>Δuymax。根据图像像素偏差可以得出转台的旋转角度偏差, 上位机通过串口发送对应的角度数据, 下位机接收到数据后控制跟踪转台方位轴和俯仰轴方向的舵机做相应的转动调整, 减小像素偏差, 以保证目标跟踪的准确性, 提高跟踪精度。
图像坐标系和运动坐标系如图 6所示。
在图像坐标系中, θ为方位视角范围, ϕ为俯仰视角范围, 成像平面中水平方向的像素为H, 垂直方向的像素为V, 像素方位偏差为ΔH, 像素俯仰偏差为ΔV; 在运动坐标系中, 位置方位偏差为Δx, 位置俯仰偏差为Δy。一个像素在水平方向上的物理尺寸为dx, 在垂直方向上的物理尺寸为dy, 单位均为mm/像素。
当图像像素方位偏差为ΔH时, 相机方位视场角度刚好旋转Δθ; 图像像素俯仰偏差为ΔV时, 相机俯仰视场角度刚好旋转Δϕ。焦距与视场成像关系如图 7所示。
令f为相机焦距(单位为mm), 则有
$ \left\{ \begin{array}{l} f \times {\rm{tan}}\left( {\frac{\theta }{2}} \right) = \frac{{H \times {d_x}}}{2}\\ f \times {\rm{tan}}\left( {\frac{\phi }{2}} \right) = \frac{{V \times {d_y}}}{2} \end{array} \right. $ | (8) |
$ {\left\{ \begin{array}{l} f \times {\rm{tan}}(\Delta \theta ) = \Delta H \times {d_x}\\ f \times {\rm{tan}}(\Delta \phi ) = \Delta V \times {d_y} \end{array} \right.} $ | (9) |
进一步可得
$ {\left\{ \begin{array}{l} \Delta \theta = {\rm{arctan}}\left[ {\frac{{2\Delta H}}{H}{\rm{tan}}\left( {\frac{\theta }{2}} \right)} \right]\\ \Delta \phi = {\rm{arctan}}\left[ {\frac{{2\Delta V}}{V}{\rm{tan}}\left( {\frac{\phi }{2}} \right)} \right] \end{array} \right.} $ | (10) |
一般情况下, 相机方位视角范围和俯仰视角范围都较小, 可认为tanθ/2=θ/2, tanϕ/2=ϕ/2, 则式(10)可转化为
$ {\left\{ \begin{array}{l} \Delta \theta = {\rm{arctan}}\left( {\frac{\theta }{H} \times \Delta H} \right)\\ \Delta \phi = {\rm{arctan}}\left( {\frac{\phi }{V} \times \Delta V} \right) \end{array} \right.} $ | (11) |
式(11)为由跟踪算法得到的图像像素偏差与二维跟踪转台相应的旋转角度之间对应关系的计算公式。
基于图像像素偏差与二维跟踪转台相应旋转角度间的对应关系, 在实际的跟踪过程中, 具体的跟踪方法如图 8所示。
3 实验结果及分析
本文搭建的人脸识别跟踪系统包括上位机图像采集、云台控制器和跟踪转台3个模块, 如图 9所示。
具体实验方法为: 上位机软件采集图像, 通过前文所述的人脸识别算法获取人脸坐标; 根据跟踪算法计算出需要移动的数据, 通过串口与下位机之间进行通信; 下位机软件接收上位机发送的指令和角度数据, 并通过云台控制器控制跟踪转台做出相应的运动。实验结果如图 10所示。
实验测试数据及角度和目标中心图像像素位置(x, y)数据分别如表 1和表 2所示。
表 1
测试数据
x轴偏移量 | y轴偏移量 | 方位舵机角度 | 俯仰舵机角度 | |
mm | (°) | |||
-241 | 54 | 91 | 89 | |
-112 | 83 | 94 | 87 | |
283 | 223 | 101 | 108 | |
-83 | -32 | 98 | 86 | |
-26 | -3 | 100 | 87 | |
-55 | 25 | 102 | 87 | |
31 | 54 | 110 | 89 | |
60 | 25 | 108 | 91 | |
175 | -61 | 95 | 92 |
表 2
角度和目标中心图像像素位置数据
θi/(°) | x/像素 | y/像素 |
10.007 | 340 | 560 |
10.821 | 302 | 507 |
12.023 | 778 | 556 |
12.871 | 934 | 532 |
13.674 | 456 | 545 |
14.088 | 557 | 598 |
14.727 | 308 | 565 |
15.063 | 312 | 543 |
15.672 | 368 | 587 |
由表 2中目标中心图像的像素位置变化结果可以看出, 在水平方向上中心位置有明显变化, 而在垂直方向上中心位置的变化较小。这说明在均匀单位时间内, 跟踪系统存在结构上的设计误差和控制误差, 使得目标中心并不是固定在一定区域内, 而是随着目标与光学跟踪系统之间距离的变化, 中心位置也在发生变化。但是, 整个系统跟踪锁定的中心点基本在有效视场内。经过多轮测试, 图形识别跟踪系统已经基本完成。
4 结语
本文研究了基于模板匹配的人脸识别算法, 分析了基于HOG的人脸特征提取算法和基于欧氏距离的人脸匹配算法, 给出人脸识别跟踪原理和算法。目标图像通过摄像头读入, 在上位机软件中, 借助图像处理库识别图像中的人脸, 并根据预存特征判断是否为特定目标, 进而提取出目标的位置信息, 通过串口发送给下位机, 下位机接收指令并控制跟踪转台转动, 从而实现了人脸识别跟踪。将人脸识别算法植入上位机软件中, 通过动态目标视觉检测以及PID控制的角度输出, 经实验结果表明, 跟踪转台实现了不错的控制效果, 可以在有效视场内对特定目标的人脸进行识别和跟踪。
参考文献
-
[1]CÉSAR D, JÓNATHAN H, VICO P. IJ-OpenCV: combining ImageJ and OpenCV for processing images in biomedicine[J]. Computers in Biology and Medicine, 2017, 84: 189. DOI:10.1016/j.compbiomed.2017.03.027
-
[2]ZHANG Q R, PENG P, JIN Y M. Cherry picking robot vision recognition system based on OpenCV[J]. MATEC Web of Conferences, 2016, 63: 01005. DOI:10.1051/matecconf/20166301005
-
[3]史高峰, 李小勇. SSD数据结构与算法综述[J]. 微型电脑应用, 2012, 28(4): 56-61. DOI:10.3969/j.issn.1007-757X.2012.04.015
-
[4]蔡友杰, 陈秀宏. 基于视频图像的运动目标检测与识别[J]. 微计算机信息, 2009, 25(9): 280-281. DOI:10.3969/j.issn.1008-0570.2009.09.117
-
[5]陆彬, 王敏. 单高斯与混合高斯相结合的运动目标检测[J]. 计算机与数字工程, 2014, 42(5): 791-795. DOI:10.3969/j.issn1672-9722.2014.05.013
-
[6]尹宏鹏, 刘兆栋, 罗显科, 等. 一种基于粒子群优化的目标跟踪特征选择算法[J]. 计算机工程与应用, 2013, 49(17): 164-168. DOI:10.3778/j.issn.1002-8331.1112-0099
-
[7]周鑫, 钱秋朦, 叶永强, 等. 改进后的TLD视频目标跟踪方法[J]. 中国图象图形学报, 2013, 18(9): 1115-1123.
-
[8]杨阳. 基于特定特征识别的运动视觉跟踪系统设计[J]. 现代电子技术, 2017, 40(2): 94-98.
-
[9]侯志强, 韩崇昭. 视觉跟踪技术综述[J]. 自动化学报, 2006(4): 603-617.
-
[10]KANADE T. Picture processing system by computer complex and recognition of human faces[J]. Doctoral Dissentution, 1973, 3952: 83-97.
-
[11]MCILHAGGA W. The Canny edge detector revisited[J]. International Journal of Computer Vision, 2011, 91(3): 251-261. DOI:10.1007/s11263-010-0392-0
-
[12]王道累, 陈军, 吴懋亮. 计算机视觉原理分析及其应用[J]. 上海电力学院学报, 2016, 32(3): 283-287. DOI:10.3969/j.issn.1006-4729.2016.03.016
-
[13]邵洁, 董楠. 基于三维特征点模型的人脸表情识别算法[J]. 上海电力学院学报, 2014, 30(4): 352-356. DOI:10.3969/j.issn.1006-4729.2014.04.012