具有多任务学习功能的两级级联CNN眼部特征点检测外文翻译资料

 2022-08-13 02:08

英语原文共 19 页,剩余内容已隐藏,支付完成后下载完整资料


具有多任务学习功能的两级级联CNN眼部特征点检测

摘要

尽管人们对眼部定位进行了广泛的研究,但由于光照和眼睛睁闭眼状态转换的差异,眼部特征点检测的准确性很容易受到影响。为了解决这些问题,我们提出了一种新颖的方法,使用两级级联卷积神经网络进行眼部特征点检测。第一级网络利用眼睛状态估计作为辅助任务来提供眼睛的初始位置。位于第二级的较浅网络通过将以预测的视点为中心的小区域作为输入来微调眼睛的位置。为了训练我们的模型,我们引入了OCE数据集,这是第一个拥有不同状态眼睛的数据集。在OCE数据集上,我们的方法的平均检测误差达到了5.6%。在UBIRIS 14 V1.0,MMU V1.0和MICHE-I上进行了进一步的实验,其结果表明了我们的方法性能良好。

关键词:眼部特征点检测;两级级联网络;多任务学习; OCE 数据集;眼睛状态估计

1引言

眼睛定位是一种生物识别技术,在许多应用中扮演着至关重要的角色,其中包括面部点检测,人机交互和疲劳驾驶检测。特别是在疲劳驾驶检测方面,眼睛位置是提取与疲劳有关的特征的基础,例如眨眼频率,注视检测,最大睁眼时间,最大虹膜静止时间等。另外,Viola and Jones面部检测器在初始阶段通过使用AdaBoost学习算法选择眼睛周围的特征[1]。本文的重点是具有鲁棒性和非侵入性眼部特征点检测方法的研究。

眼睛定位取得了巨大的成功,但其中一些关键挑战还没有解决。眼部定位方法的性能容易受到眼睑闭合,照明和头部姿势的影响。Young D等[2]利用霍夫变换方法提取虹膜和瞳孔。他们认为虹膜和瞳孔都呈椭圆形,因此可以通过五个参数将其建模。但是该模型需要明确的形状约束,因此在光照条件较差的情况下很难处理眼睛。Yuile等[3]提出了一个可变形的模板来参数化眼睛的形状。眼睑和虹膜分别被认为是两个相交的抛物线和一个圆。它们采用谷底场,峰值场,边缘场和其他能量项的能量函数来适应眼睛的形状。但是,他们的方法高度地要求模板的初始位置。由于光线变化很大,某些能量项可能会失效。 Feng和Yuen [4,5]提出了一种使用六个点来描述眼睛轮廓的眼睛模型。他们采用方差投影函数来估计眼睑和虹膜的位置。但是,在眼睛闭合的情况下可能会失败。在不受约束的条件下,上述方法的检测性能会下降。而且这些方法没有在闭合状态下进行眼睛检测。闭眼的程度对于眼睛检测的某些应用(例如疲劳检测和情绪分类)很重要。因此,有必要建立模型来检测处于睁开或闭合状态的眼睛。

深度卷积神经网络(CNN)改善了许多计算机视觉任务中的最新技术[6-9],但由于缺乏大规模数据集,CNN在眼睛研究中受到限制。 Kyle等[10]收集了移动设备上的GazeCapture数据集,并训练了卷积神经网络进行眼睛跟踪,从而获得了最新的性能。受他们的工作地启发,我们从互联网上收集了张开或闭眼的面部图像。这些图像的光线和面部外观也有所不同。在第3节中,我们介绍了开眼和闭眼(OCE)数据集。我们将免费提供数据集以用于研究目的。

在这项工作中,我们提出了一种针对不同状态下的眼部特征点检测算法。利用OCE数据集,我们构建了两级级联的卷积神经网络,并在第一级网络上同时进行了眼部特征点检测和眼睛状态估计。多任务学习可以帮助我们的模型获得更好的眼睛初始位置。基于这些,我们在第二级网络微调眼睛位置。我们的方法得益于对眼睛形状的良好初始化以及对眼睛位置的粗略到精细的调整,从而高精度地检测了眼睛特征点。

本文的其余部分安排如下:第2节概述了眼睛定位算法,并将我们的眼睛数据集与其他数据集进行了比较。第3节介绍了我们创建的OCE数据集的接口。第4部分分析了多任务学习和两级级联卷积神经网络的眼睛特征点检测算法。在第5节中,通过对OCE数据集和几个公共数据集进行实验来验证所提出的算法。最后,在第6节中得出了一些结论。

2相关工作

近来,许多眼睛定位算法已经取得了良好的性能。第2.1节总结了这些方法,它们分为两类:基于形状的方法和基于特征的方法。基于形状的方法使用眼睛形状模板来估计参数,而基于特征的方法则提取眼睛周围的辨别特征,例如眼角,虹膜和眼睑。最后,我们在2.2节中比较了我们眼睛数据集和其他数据集。

2.1眼睛定位方法

基于形状的方法包含简单和复杂的眼睛先验模板。简单模板仅用虹膜和瞳孔进行参数化。Young D等[2]使用霍夫变换充分提取虹膜和瞳孔。 Daugman [11]在椭圆形模型下优化了梯度曲线积分。在基于复杂形状的模板中,Lam和Yan [12] 通过添加眼睑和虹膜的交点扩展了Y uile[3]等人提出的模板。因此,他们的模型收敛更快。

在基于特征的方法中,Reinder等人[13]提出了一种用于眼睛检测的单神经元网络。他们将称为左眼角,右眼角,上眼睑和下眼睑的四个点作为输入。然后,他们将输出解释为概率,并使用其空间分布信息推断眼睛位置。但这仅适用于眼睛的正面视图。Kawato和Ohya [14]描述了一种用于检测眼睛之间点的圆频滤波器。眼睛是被检测点两侧最暗的小部分。

与上述这些方法不同,我们的模型使用两级级联的CNN和位于第一级的多任务学习。两者都已广泛应用于改善计算机视觉任务的性能。通过使用级联结构[7,15-17],形状估计任务(如面部点和手的姿势)已取得了很大的进步。Yi Sun等[7]使用三级级联CNN来检测面部点。他们的模型在第一阶段估算了面部的初步位置,随后的阶段将预测的眼睛位置精确调整,以实现高精度。此外,多任务学习在不是独立的任务中具有出色的表现[18-20]。Zhang等[20]通过利用辅助任务优化了面部点检测。他们的模型对于较大的姿势变化和严重遮挡的脸部更为健壮。

2.2眼睛数据集

有一些公开可用的眼睛数据集可供研究[10,21-24]。我们在表1中总结了这些数据集和OCE数据集之间的区别。[21,22]中的数据集的面部图像中没有包含较大的姿势变化。正面离镜头很近。我们通过收集人脸图像来考虑这些问题,其中人脸具有平面内和平面外的旋转。而[23,24]中数据集的参与者数量有限,这可能会导致他们的眼部检测方法的泛化性较差。我们通过收集2423个人的睁眼和闭眼图像来缓解这种情况,并且每幅图像都是从左右眼裁剪出来的。此外,OCE数据集主要聚焦在打开或关闭状态的眼睛图像上。我们将在第3节中描述生成OCE数据集的过程。

表1 我们的OCE数据集与公开可用数据集的比较。参与者表示眼睛图像采样到数据集中的人数。“光照”和“姿势”列中的数字表示数据集中对此有多少变化。 “Greatly”表示姿势或光照有很大的变化。

3 OCE数据集准备

在本节中,我们介绍处理来自Internet的面部图像的过程。 OCE 数据集由来自互联网的4846张面部图像组成。OCE数据集的生成分为两个步骤。

图1。采样面部图像。面部被眼镜遮挡(第2列),并且有不同的姿势(第3列)和光照(第4列)。

首先,我们使用级联的CNN人脸检测器来获得人脸边界框。部分结果显示在图1中。第1行和第2行眼睛闭合,而第3行和第4行眼睛睁开。然后,我们利用[26]提出的人脸对齐的方法来检测68个点,并根据眼睛周围的点来裁剪眼部区域。图2提供了在打开和闭合状态下对眼睛区域检测的结果。

图2。眼部提取和眼睛重新校准。最后1列中的图像的蓝色十字表示重新校准的眼睛特征点。

其次,我们基于两个考虑因素重新校准眼睛特征点。 [26]提出的方法对局部定位不敏感。从图2的第二栏中可以看到,闭眼的形状与预测点不匹配。另外,睁开和闭合的眼睛周围的点呈现相同的形状,这表明关于睁开和闭合的眼睛周围的预测点几乎没有差异。其次,虹膜的位置对于眼睛的形状至关重要。由于眼睛中的虹膜移动,以眼睛周围的平均点作为虹膜位置是不准确的。因此,我们用7点重新校准眼睛。如图2的最后一列所示,睁眼的上眼睑和下眼睑分别由四个点组成。眼的左右角是共享的,眼睑的其余两个点是眼睑和虹膜的交点。 最后一点位于虹膜的中心。闭眼时,轮廓几乎像一条直线,虹膜消失了。上下眼睑在垂直方向上非常靠近。代表虹膜位置的最后一点在眼曲线的中间。眼睛重新校准结果如图2所示。

为了获得真实数据,我们使用[26]提出的方法获得了面部图像中的68个点,然后由四个研究人员独立地重新校准了眼睛的形状。最终眼睛位置是其记录的平均值。图3给出了一些示例说明。眼睛形状在睁眼和闭眼图像中变化很大。此外,虹膜位于睁开的眼睛的不同位置。这些结果证明了需要重新校准眼睛的必要性。请注意,如果考虑创建我们自己的模型以检测自然面部图像中的眼睛标志,则应使用[26]的方法预处理图像以提取眼部。

图3。OCE数据集中具有不同眼睛状态的图像的描述。

4模型结构分析

我们描述了具有两级级联的CNN的眼部特征点检测算法。然后,我们在第4.1节中讨论了第一级CNN上多任务学习的适用性。第4.2节说明了级联CNN用于眼睛特征点检测的效率。

图4。两级级联的CNN用于眼界标志检测。 C-Pi(i = 1,2,3)表示从一个卷积和池化层获得的特征映射。 FC1是全连接层的输出。 Level1的输入是48times;48像素的全眼图。 Level2的输入是以预测的视点为中心的14times;14像素的黄色斑块。

我们设计了两级级联的CNN,如图4所示。有7个特征点。设 表示第i幅眼图像的眼睛位置。第一级CNN的输入是整个眼睛图像。共享层是眼睛特征点检测和眼睛状态估计所共有的,它们包含三个卷积层,三个池化层和一个全连接层。我们使用逻辑回归和线性回归分别输出眼睛状态和眼睛特征点。将均方误差和交叉熵误差组合为第一级CNN的损失函数是合乎逻辑的,其公式如下:

其中 表示第i幅眼图像的真实状态。当 等于0时,表示闭眼,而1表示张开眼。M是眼睛图像的总数。是第一级的CNN的输出,其分别表示预测的眼睛形状和状态。最后一项是 正则化,可以减少参数大小的某种度量。权重衰减设置为0.0005。 测量辅助任务(眼睛状态估计)相对于主任务(眼睛标志检测)的贡献,设置为0.2。

第二级的CNN将本地区域作为输入,它们以第一级CNN的预测视点为中心。我们采用较浅的结构,具有两层卷积层,一层池化层,一层全连接层。第二级的CNN会忽略7个眼点的相对位置,并通过线性回归独立更新每个点的位置。局部区域的外观与没有上下文信息的眼神状态有较宽泛的关联。因此,第二级的CNN可以微调眼睛的位置,而无需辅助任务。一旦第一级网络提供了良好的初始位置,第二级CNN就会达到检测眼点的高精度。

4.1多任务学习的适用性

如上所述,我们在第一级CNN上采用了多任务学习。它通过在眼睛状态估计和眼睛特征点检测之间共享隐藏层,保留了两个特定于任务的输出层,如图4所示。 Baxter J [27]显示多任务学习使我们的模型可以更好地概括原始任务。眼睛特征点检测与眼睛状态估计之间的相关性迫使我们的模型为眼睛的形状提取出更好的表示。

有两个因素可以直观地解释多任务学习的效率。首先,我们假设单个任务可能会忽略一些纹理信息。在我们的案例中,上眼睑和虹膜的位置在打开和关闭的图像中变化很大。眼皮和虹膜的颜色和形状可以明显区分以估计眼睛状态。因此,可以将眼睛状态估计视为强大的先验知识,以帮助我们的模型将注意力集中在眼睛的某些部分,而这些部分从眼睛特征点检测中不容易学习到。其次,可以将多任务学习视为正则化,这可以降低模型的复杂性并提高泛化能力。第5.1节中的实验将验证多任务学习的效率。

4.2两级级联结构

为了提高眼睛特征点检测的性能,出于两个原因,我们采用两级级联结构。首先,与其他形状回​​归任务类似,光照和姿势很容易影响眼睛特征点的检测精度。其次,虹膜的位置和上眼睑的弯曲程度在睁眼图像和闭眼图像之间有很大差异。最后导致,输入应该足够大以包含更多关于眼睛形状的图案。但是,不相关区域的大量投入会导致结果不佳。简单地利用更深的网络来解决这两个矛盾的挑战是很困难的。相反,我们的模型使用两级级联体系结构。即使在图3中的困难情况下,第一级的CNN也会将整个眼睛图像作为输入,并采用多任务学习来提取初始眼睛位置。可以将第一级的CNN 的输出视为后续网络的先验知识。第二级的CNN更关注眼睛图像在局部区域内的真实位置。第二级的CNN的输出是相对于第一级CNN的预测眼睛形状的形状增量。我们模型的最终输出执行如下:

其中, 表示模型的预测眼睛位置。 和 分别是第一级和第二级CNN的输出。注意,在第一级CNN的输出是绝对位置,而在第二级处的CNN的预测是眼睛形状调整量。我们在5.2节中演示了二级级联结构的有效性。

5实验

本节旨在验证所提出的眼睛特征点检测算法。我们详细配置我们的模型。然后我们评估了多任务学习和两级级联结构的效果。最后,我们将我们的方法与UBIRIS V1.0 [30]和MMU V1.0 [31]上的其他眼部定位方法进行了比较。我们还在最新的官方数据集“移动虹膜挑战评估(MICHE)-I”上测试了我们的模型[32]。

实现:OCE数据集中有9692个眼睛图像。我们随机选择800张处于打开或关闭状态的眼睛图像进行测试。其余图像以4:1的比率分为训练数据集和验证数据集。较小的平移和平面内旋转可增强训练数据集。表1提供了我们模型各层的具体细节。为简单起见,第一级和第二级的CNN分别命名为“ Level1”和“ Level2”。 Dropout用于连接到全连接层的后面。 Srivastava N等[33]证明了该技术可以有效地减少过拟合。

训练:Level1的目标函数由公式给出(1),其中权重衰减设置为0.000

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[236400],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。