亢衡 邵淑颖* 王济舟 武晓勇
北方工业大学
摘要
眼睛是人的重要面部特征,通过对人眼信息的提取,能够得到很多有用信息。一方面,眼睛形状是人相貌特征的关键信息;另一方面,通过瞳孔位置,配合相关算法,可以对人的视线进行追踪,锁定人的关注点。本文旨在设计一个完整系统,利用卷积神经网络,并基于关键点检测的方法,通过提取图像中的眼周关键点以及瞳孔位置等关键信息,来确定眼睛形状类型;同时借助主动轮廓线法进一步锁定视线关注点,实现眼型分类以及视线跟踪的同步实现。
关键词:关键点检测;眼睛形状聚类;视线跟踪;卷积神经网络
Research on Visual Tracking Algorithm Based on Active Contour Method
Abstract
Eyes are an important facial feature of human beings, and many useful information can be obtained by extracting human eye information.On the one hand, the shape of the eyes is the key information of a person's appearance;On the other hand, through the pupil position and relevant algorithms, people's sight can be tracked and their attention can be locked.This paper aims to design a complete system by using convolutional neural network, and based on the method of key points detection to determine the eyes by extracting key points of eye circumference and pupil position in the image.At the same time, the active contour method is used to further lock the focus and realize the synchronization of eye type classification and visual tracking.
Keywords: keypoint detection, eye shape clustering, visual tracking,convolutional neural network
1.引言
人眼作为人像辨识技术里的一项主要的供特征提取的器官,能够为缩小身份搜寻范围提供极其有效的信息,而且这是与生俱来的生物身份特征,不会出现像身份证丢失那样的问题,也不用像身份证系统那样到一定时间需要更换。基于眼睛此项利用价值,可以将人的面部根据眼睛形状的差异进行分类,大型的人面部特征数据库能够根据人眼形状划分为多个子面部特征数据库。在此基础上进行人脸识别将会成倍的提高识别率和识别速度。可以解决由于人口激增带来的公共环境下人员信息辨别速度慢,辨别流程复杂的问题,也可以很好地解放人员劳动力。到目前为止,人眼的检测与特征提取分类技术已经延伸到了生活娱乐、穿戴式设备、虹膜识别、医疗健康、安全领域、智能驾驶系统、人口数据库等多个各个前沿领域。为人类日益方便的生产生活保驾护航。
信息处理主要依靠于视觉,人类对与外界信息的大量获取基本上都是通过眼睛。在获取信息的同时,眼睛的视线方向也彰显了人类的意图,因此人类一直对视线追踪有着浓厚的兴
趣。近年来,视觉追踪技术作为VR设备的关键技术,已经逐步成熟,而且广泛应用。视觉追踪可以应用于图片、广告研究等多种现实场景,了解用户视线浏览轨迹,为界面优化提供科学依据;在刑事审讯中,可以通过检测一个人的瞳孔变化来辨别是否在说谎;在具有交互功能的家用电器、虚拟现实和游戏等领域也有很好的应用前景。
2.视线跟踪算法
2.1 系统总体流程
基于主动轮廓线法的视线跟踪算法研究系统总流程图如图1所示。
图2 本系统AlexNet神经网络架构
CNN卷积神经网络
卷积神经网络(Convolutional Neural Network),是一种前馈神经网络,包含卷积运算,而且具有深度的网络结构。由于对于图像处理具有很好的效果,所以被推广为一种深度学习的代表算法。CNN在使用中,较好的规避了对原始图像预处理环节的繁杂,每个神经元都是在有序的排布下,连接前一层神经元的神经网络,上一个卷积层的输出只会传送到本层神经元卷积层的输入端口,特别要说明的是各层之间不存在反馈,实现直接输入原始图像,而且能够按照其阶层结构对输入信息进行平移不变分类,高效地运用于模式识别、图像分析、信息提取等领域内。
卷积神经网络一般结构为:
Input->Conv->ReLU->Conv->ReLU->Pool->ReLU->Conv->ReLU->Pool->FullyConnected
2.3系统模型搭建
2.3.1搭建系统卷积神经网络
此系统在设计是采用的是AlexNet模型。AlexNet有60M个参数,650,000个神经元,8层神经网络:5个卷积层和3个全连接层。如图2所示。
2.3.2搭建卷积层
为了实现图像数据的精确处理以及系统的快速运行,系统共设计了5个卷积层。
1)第一卷积层
第一层由输入端接收人眼图片,图片设定为100*100*3。用卷积核进行卷积运算,其设定步长为3,维度为10*10*3。第一层包含96个卷积核,得到96个特征图,每一个特征图尺寸为31*31。将特征图等分成2组,即每组维度均为31*31*48。经过激活操作后,维度不变。
将输出特征图进行池化运算,其步长为2,维度为3*3,得到的数据维度为15*15*96,将结果进行归一化处理。进行卷积操作后,将数据等分为两组,维度均为15*15*48。以下每一卷积层均有两组,本文不再赘述。
2)第二卷积层
第二层输入的图片就是第一层输出的15*15*96的像素层,为了后面的操作方便,在每幅像素层的上下左右边缘都要填充2个像素;15*15*96的像素数据分成15*15*48两组数据,每组像素数据被5*5*48的卷积核进行卷积运算,卷积核对每组数据的每次卷积都生成一个新的像素。 本层共有256个卷积核,这256个卷积核同样被分成两组,每组128个,分别针对15*15*48的像素进行卷积运算,会生成两组15*15*128个卷积后的像素层。
本文选用ReLU函数为激活函数,以下简称R函数。
经池化处理,池化操作后特征图的规模为7。每组图的尺寸为7*7*128;两个图形处理器分别处理两组图。
3)第三至第五卷积层
经第三层卷积,输出的每组数据维度为7*7*192,经过R函数输出。第四、五层运算类似,只因选用卷积核数量不同,输出数据维度有所差别:第四层选用384个卷积核,每组输出维度为7*7*192;第五层选用256个卷积核,每组输出维度为7*7*128。将输出进行池化处理,池化规模为3,每组输出维度为3*3*128。用两个图像处理器分别对两组数据进行处理。
2.3.3搭建全连接层
将卷积层输出数据输入全连接层,此部分共有3层。
第一层的输入是第五层的输出,尺寸为 3*3*256。对此层的输入进行全连接并进行卷积运算,卷积后经过R函数生成8192个值,然后再通过Dropout运算,输出8192个值。
第二层与第一层遵循相同的运算,进行全连接,然后经由R函数进行处理后,再通过dropout运算后输出8192个数值。
第三层的24个神经元与第二层输出的8192个数值与进行全连接,经过训练后输出被训练的数值。最终可获得眼周12个关键点二维坐标值,共24个数。通过重叠池化,可以提高精度,不容易产生过拟合。此外,同时使用R函数与双GPU,可以提高训练速度。使用dropout运算,有减少过拟合的作用。
2.4系统损失以及优化
2.4.1 构建损失函数
交叉熵(Cross Entropy)经常被看作是神经网络中损失函数的一种表达,用来表示模型预测值与真实值的差距大小。交叉熵涉及到计算每个类别的概率,而且每次都和sigmoid(或softmax)函数一起出现。交叉熵作为损失函数可以在sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。在特征工程中,可以用来衡量两个随机变量之间的相似度。交叉熵函数计算公式如公式(1)所示:
.png)
(1)
其中,x代表训练集里的所有元素,y为预计输出,n为训练数据个数,a为实际输出。
本系统在构建损失函数时,将损失函数定义为利用交叉熵计算期望与实际结果之间的误差,利用 L2 范数来计算的张量的误差二者的平均值,避免损失函数陷入局部优点。使用交叉熵损失函数,不仅可以很好的衡量模型的效果,又可以很容易的的进行求导计算。
但是sigmoid(softmax)+cross-entropy loss 擅长于学习类间的信息,它采用了类间竞争机制,只关心对于正确标签预测概率的准确性,忽略了其他非正确标签的差异,导致学习到的特征比较散。
2.4.2优化算法
在优化本神经网络时,为了较为合理的控制学习速度,提高对于样本学习的精确度,选用了tf.train.AdamOptimizer优化器。AdamOptimizer,是附带动量项的RMSprop。tf.train.AdamOptimizer优化器通过引入二次梯度校正,采用梯度的一阶矩估计和二阶矩估计实时动态地调节网络每个参数的学习率。使用Adam的益处是通过偏置校正操作后,不断更新的学习率可以被限制在一定限度内,这样能够让优化的参数相对稳定。Adam的优点主要是集中在经过编置校正后,每一次迭代学习率都有一个确定的范围,使得参数比较平稳,学习效果比较稳定,对于结果的判定不会出现较大偏差。
tf.train.AdamOptimizer优化器,利用了反向传播算法对权重和偏置项进行修正,在运行中也不断修正学习率。系统会根据其损失量学习自适应,损失量大则学习率大,进行修正的角度越大,损失量小,修正的幅度也小,学习率就小,但是不会超过自己所设定的学习率。
常用的优化算法还有SGD算法。但是tf.train.AdamOptimizer相比于SGD,它不容易陷于局部优点;此外速度更快,学习效果更为有效;还可以纠正其他优化技术中存在的问题,如学习率消失或是高方差的参数更新导致损失函数波动较大等问题。更重要的是,Adam 的调参相对简单,默认参数就可以处理绝大部分的问题。
经过机器学习后,测试集测试结果及关键点坐标标注如图3所示。计算机在一幅人眼特写图片上标注出12个眼周关键点。从内眦角开始为12个关键点顺时针排序分别为0号关键点(对应坐标为(x0,y0))、1号关键点……11号关键点。
2.5人眼特征提取及分类
2.5.1人眼形状相关特征提取
本系统所提取人眼形状相关特征有宽高比指数×1,内眦睑裂角×1,外眦睑裂角×1,眼周关键点斜率×10。共13维数据信息。
2.5.2人眼形状特征分类
利用K-means聚类法得到人眼形状分类数
1).K-means聚类
K-means聚类算法,一种迭代求解的聚类分析算法。随机选取K个初始质心,K为聚类类别数,计算得到的诸个样本与K个质心之间的欧式距离,然后将样本归类到距离其最近的质心,聚类的中心以及分配给它们的对象一起构成了一个聚类。每一次样本数目变动,都会引起整个算法过程的再分配,这个过程将不断重复直到没有对象需要重新分配。
2).用于聚类的训练集容量为120,描述样本的数据有15维。通过标准化算法,将每个维度的数据数量级调整到一致状态,标准化算法如公式(2)所示:
.png)
(2)
这样便于之后的数据分析以及眼睛分类。原始得到的内眦睑裂角、外眦睑裂角、眼周宽高比指数我们用leftangle、rightangle、lengthwr表示。经过标准化后,得到的leftangle’、rightangle’、lengthwr’分别为内眦睑裂角、外眦睑裂角、眼周宽高比指数。这里的a和b设为24,g设为1/3。
结合人体眼部形状标准,通过多次重复聚类之后,发现可以对眼睛进行以下7种的形状分类,上斜眼、标准眼、细长眼、半月眼、眯缝眼、梭形眼、杏眼。
2.6基于主动轮廓线法的视线跟踪算法
主动轮廓线,通过不断地极小化自身的能量函数来达到物体的边界。最大的优点是方便、快捷。此方法一般划分为四个步骤:
1).瞳孔伪圆心的粗定位。找到瞳孔内的一点作为瞳孔的伪圆心。根据灰度投影法原理,瞳孔的灰度值比虹膜的其他部分小,灰度累加和最小的地方就是瞳孔的圆心。
2).虹膜内边界的粗定位。采用主动轮廓线法,其运行轨迹与蛇的形态十分相似,也成为snake模型。以步骤(1)瞳孔内部的伪圆心作为圆心,在其周边等间隔地取点,作为初始的snake,按照snake的运行机制不断进化,直到瞳孔边界,即虹膜的内边界。
3).虹膜内边界的精定位。 经过第二步,大部分点都可以进入虹膜的内边界,一小部分受噪声等影响没有进入,就不能进行虹膜内边界的精定位,需要更多的条件才能达到更高精度的定位。用snake的形心和其上的控制点,以形心为圆心,取各控制点与该形心距离的平均值作为瞳孔半径,准确定位虹膜内边界。
4).虹膜外边界的定位。把瞳孔的圆心近似认为成虹膜外边界的圆心 , 以一个参数 r 进行搜索,如公式(3)所示:
.png)
(3)
R' 为虹膜外圆半径,*为卷积,r为搜索半径,初值为瞳孔的半径R,G0 是均值为0、方差为σ 的 高斯函数。该式通过不断增大半径作用于图像,沿以圆心C和半径r的圆弧d S进行轮廓积分 ,绝对值取得最大值时对应的r就是虹膜的外圆半径 R ’ 。
主动轮廓线法对伪圆心的要求不高,只要求在瞳孔内部,因为后面的步骤有一个重新计算瞳孔圆心的过程,这使得算法的鲁棒性更强。
3.结果概述
本文提出了一种基于关键点的眼睛形状分类算法,对目标眼睛形状进行分类,同时使用主动轮廓线法进行视觉追踪。采用卷积神经网络训练模型对人眼关键点进行检测,提取出对人眼周能够描述形状的相关特征,通过K-means聚类法得到7种划分的眼睛形状,配合主动轮廓线法进行视觉跟踪。视觉跟踪瞳孔定位有很多方法,比较常见的有Hough变换法、主动轮廓线法、可变形模板法。具体使用哪种方法还得具体情况具体分析,要根据实践中的需求和当时所具备的条件来进行选择。对于当前的视线追踪系统而言,由于人眼生理结构的复杂性,其当前研究目标主要围绕精度和提高系统的鲁棒性方面。而主动轮廓线法的优点就是不用边缘检测和二值化,直接在灰度图上操作,且相速度更快、定位更精确,算法的鲁棒性更强。基于此点,本文选用了主动轮廓线法支撑视觉追踪。近年来,视觉跟踪已经逐步成熟,在用户体验与交互研究、医学研究与医疗应用、生活娱乐等多个领域得到了广泛应用,它能拓展人类与周围环境互动,有很好的应用前景。
致谢:本文受2020年北京市级大学生创新创业训练计划课题资助
参考文献
[1]毛云丰,沈文忠,滕童.基于深度神经网络的视线跟踪技术研究[J].现代电子技术,2020,43(16):39-43.
[2]陈洁璇,陈铭威.人眼瞳孔定位方法综述[J].信息与电脑(理论版),2017(20):70-72.
[3]金纯,李娅萍.视线追踪系统中注视点估计方法研究[J].自动化仪表,2016,37(05):32-35.
[4]赵新灿,左洪福,任勇军.眼动仪与视线跟踪技术综述[J].计算机工程与应用,2006(12):118-120+140.
[5]周彩霞,易江义.人脸识别中眼球的定位方法[J].长沙航空职业技术学院学报,2002(04):48-51.
[6]苑玮琦,马军防,狄文彬.基于主动轮廓线的虹膜定位方法[J].计算机工程与应用,2003(34):104-107.
[7]Wikipedia.Convolutional neural network.[EB/OL]. https://en.wikipedia .org/wiki/Convolutional_ neural_network,2018.
[8]SVL.Module 2: Convolutional Neural Networks.[EB/OL]. http://cs231n.github.io /convolutional -networks/#conv,2018.