然而,在上述应用中人眼检测任务面临的场景往往比较复杂,如所采集图像存在尺寸过小、姿态变化、模糊、流光、遮挡、过曝、过暗等情况[8]。现有文献中,人眼检测算法可以分为间接方法(即先进行人脸检测再进行人眼检测)和直接方法(直接在图像中进行人眼检测)。这2类人眼检测算法主要存在如下问题:①在间接方法中,由于其往往依赖于人脸检测效果,因而在人脸检测失败情况下将导致人眼检测任务的失败。例如,在面部遮挡、佩戴眼镜及人脸姿态变化等情况下会导致无法直接检测出人脸,进而无法定位人眼。特别的是,在双目虹膜识别系统中,设备采集的是以人眼为中心的不完整人脸图像,因而无法进行人脸检测然后定位人眼。②在直接方法中,由于所采集人眼尺度过小会导致检测失败。可以说,小尺度人眼是直接方法面临的一个重要挑战。例如,在视线跟踪和双目视觉系统中,会较多地出现人眼尺度过小情况。此外,人眼检测要兼顾系统实时性需求,如在疲劳驾驶检测中,检测效率至关重要。
本文研究了复杂场景下的人眼检测算法。模型训练与验证采用了DIF(Diversity in Faces)[9]数据集,该数据包含了上述主要复杂场景下的图像数据,可以用于评估算法的有效性。
1 研究现状 传统人眼检测算法可以大致分为基于空间结构和基于统计外观模型的方法[10]。基于空间结构的方法利用虹膜的几何结构定位人眼,如张杰等[11]利用积分投影和Hough变换的人眼定位方法。基于统计外观模型的方法则利用人眼的外观纹理属性来定位人眼,如Kroon等[12]提出的基于多尺度局部二值模式的人眼定位方法,Tang等[13]通过训练级联Adaboost分类器来进行人眼检测。总体而言,上述方法由于模型单一,抗干扰能力差,已经不能满足目前复杂场景下人眼检测的要求。
基于深度学习的目标检测算法主要分为2类:①两阶段法,如R-CNN(Region-CNN)[14]、Faster R-CNN(Faster Region-CNN)[15]等;②单阶段法,如SSD(Single Shot MultiBox Detector)[16]、YOLOv3(You Only Look Once v3)[17]等。两阶段法将模型过程分为2个阶段进行训练,其一般先通过训练RPN(Region Proposal Network)网络得到候选区域的特征,再训练检测网络;而单阶段法则不需要预先生成候选框,直接将目标边框(Bounding Box)定位问题视为回归问题处理。
本文以Adaboost人眼检测算法、两阶段法Faster R-CNN和单阶段法YOLOv3为例,对各自检测效率、检测精度(尤其是小尺度目标检测精度)等指标进行了比较。各算法的优劣势如表 1所示。
表 1 不同算法优劣势比较 Table 1 Comparison of advantages and disadvantages among different algorithms
算法 | 劣势 | 优势 |
YOLOv3 | 小尺度目标检测效果较差 | 检测效率高 |
Faster R-CNN | 实时性差,小尺度目标检测效果差 | 检测精度较高 |
Adaboost | 检测精度低,小尺度目标检测效果很差 | 检测效率高 |
表选项
从表 1来看,Adaboost算法虽然具有训练耗时短、检测效率高等优势,但其检测精度低,无法满足复杂场景下小尺度人眼检测的需求。Faster R-CNN算法具有较高的检测精度,但其实时性相对较低,并且对小尺度目标的检测效果较差。而YOLOv3算法检测效率较高,但复杂场景下的小目标检测效果较差。
据以上分析,本文提出了一种基于卷积神经网络的直接人眼检测算法,其旨在兼顾人眼的多尺度属性,在检测效率上满足实时性要求。
2 本文算法 基于卷积神经网络的方法是目前目标检测的主流方法,考虑到复杂场景下人眼的多尺度属性及部分应用中的小尺度特性,本文算法的网络架构如图 1所示。
![]() |
图 1 本文算法网络架构 Fig. 1 Proposed algorithmic network architecture |
图选项 |
网络架构分为骨干网络(Backbone)、FPN(Feature Pyramid Network)、预测(Prediction)3个部分(见图 1)。网络中的L1~L6六层是6组由基本残差单元按照不同重复次数构成的残差块(Residual Block)。从L4~L6增加了扩张残差单元Res_dil_A和Res_dil_B(见图 2)。
![]() |
图 2 两种改进的扩张残差单元 Fig. 2 Two improved expanded residual units |
图选项 |
为了提高网络高层输出特征图的分辨率,网络减少了下采样因子,即L4~L6不再进行下采样。这样的做法保证了后层的特征图都与L4的特征图尺寸保持一致,如图 3所示。
![]() |
图 3 骨干网络下采样 Fig. 3 Backbone network downsampling |
图选项 |
为了增强小尺度人眼的检测精度,网络在Large、Medium和Small三个尺度的基础上添加一个预测尺度Smaller(见图 1)。该设计使得较小目标人眼能够获取更精确的锚点框(Anchor Box),以提升检测精度。L6层的输出结果则用于检测器预测人眼位置,确保多尺度目标的定位准确性。
模型既要检测人眼,又要区分左右眼,因此,网络输出的向量包含6维(x, y, w, h, C, P)。其中,(x, y, w, h)为人眼的边框,C为置信度,P表示人眼的左右类别。总体网络的损失函数为
![]() | (1) |
式(1)中包括了检测误差、左右眼分类误差、坐标位置误差(采用误差平方和作为损失函数)、置信度和类别误差(采用二元交叉熵作为损失函数)。其中,λobj和λnoobj分别为有无目标分类误差的权重;λcoord为位置误差的权重;λclass为分类误差的权重;S2为输入图像划分网格数量;B为锚点的数量;Iijobj为第i个网格的第j个锚点预测目标;Iijnoobj为第i个网格的第j个锚点未预测目标;Iiobj为目标出现在第i个网格;(x, y, w, h, C, P)为真实值,
![](https://bhxb.buaa.edu.cn/article/2021/1001-5965/PIC/bjhkhtdxxb-47-1-38-M1.jpg)
此外,使用扩张卷积会加大耗时和内存消耗,因此,本文通过卷积通道剪枝的方式,即降低网络输出通道,来提高检测效率。
3 实验结果及分析 3.1 实验数据集 本文采用了2个数据集,即DIF和CASIA-Iris-Distance[18]。其中,DIF为可见光人眼数据集,CASIA-Iris-Distance为近红外人眼数据集。
DIF数据集为IBM公司发布的脸部多样性数据集,该数据集包含了100万张不同性别、年龄、人种在复杂场景下不同分辨率的人脸图像。图 4显示了DIF数据的部分样本,包括背景流光(见图 4(a))、强烈光照(见图 4(b))、运动模糊(见图 4(c))及姿态多样等复杂情况。本文选择这个具有挑战性的人脸数据集进行算法研究,用以评估本文算法的性能,尤其是小尺度人眼检测性能。在DIF数据集中,存在一些眼睛区域不可见或过度模糊等特殊图像(见图 5),这些数据在某种程度上会干扰网络的训练。为此,做了一定的筛选,最终共选取了25 146张图像进行实验。按照一定比例随机分配训练样本24 146张,测试样本1 000张。
![]() |
图 4 人眼数据集实例 Fig. 4 Examples of human eye datasets |
图选项 |
![]() |
图 5 眼睛区域不可见及过度模糊等极端情况 Fig. 5 Extreme cases such as invisible eye area and excessive blur |
图选项 |
CASIA-Iris-Distance为中国科学院虹膜数据库CASIA-IrisV4的一个子集,该数据集中的红外图像仅包含眼睛周围的部分人脸(见图 6)。该数据集中人眼的分辨率较高,用以验证本文人眼检测算法对于红外图像的有效性。本文选取2 800张进行训练,300张进行测试。
![]() |
图 6 CASIA-Iris-Distance数据集中的红外图像 Fig. 6 Infrared images in CASIA-Iris-Distance dataset |
图选项 |
3.2 模型训练 本文算法在Windows10操作系统下使用Tensorflow框架实现。硬件配置为i7-6700 CPU@3.41 GHz,32 GB RAM, 显卡为1 080Ti,显存11 GB,实验在cuDNN v7.0和CUDA9.0下进行。
网络采用随机梯度下降(SGD)法进行端到端优化训练,权重衰减为0.000 5,初始学习率为Ir=0.001,衰减步长为10,衰减率为0.005,训练总迭代次数为1 000次,批量大小为8。
网络输入图像尺寸归一化为416×416,并利用K-means在DIF数据集上聚类生成18个锚点,然后去除与ground truth重叠率小于0.7的锚点。如第2节所述,模型输出为6维向量,包括边框、置信度和人眼的左右类别。
3.3 算法评估与比较 本文采用了精确率E、检出率(召回率)R、漏检率MR、误检率FR、平均精度AP、mAP及检测效率F对算法性能进行评价。
精确率:
![]() | (2) |
检出率(又称召回率):
![]() | (3) |
漏检率:
![]() | (4) |
误检率:
![]() | (5) |
式中:TP为正样本被正确识别为正样本的个数;FP为负样本被误识为正样本的个数;FN为正样本被误识为负样本的个数;TN为负样本被正确识别为负样本的个数。
AP计算方法采用VOC2007中的11-point方法[19] (见式(7)),mAP为AP的平均值(见式(8))。
![]() | (6) |
![]() | (7) |
![]() | (8) |
式中:EMaxPrecision(R)为召回率满足
![](https://bhxb.buaa.edu.cn/article/2021/1001-5965/PIC/bjhkhtdxxb-47-1-38-M2.jpg)
首先通过实验确定算法的参数。表 2列出了网络中尺度大小等网络参数与算法性能的关系。
表 2 不同尺度网络在DIF数据集上的实验结果 Table 2 Experimental results of different scale networks on DIF dataset
算法 | 尺度数 | 特征图 | 输入 | mAP/% | F/fps |
YOLOv3 | 3 | 52×26×13 | 416×416 | 76.97 | 33.4 |
Proposed-3 | 3 | 26×26×26 | 416×416 | 80.5 | 31.8 |
Proposed-4 | 4 | 52×26×26×26 | 416×416 | 82.4 | 30.5 |
Proposed-5 | 5 | 104×52×26×26×26 | 416×416 | 82.68 | 27.3 |
注:fps为帧/s。 |
表选项
表 2中,Proposed-i(i=3, 4, 5)为本文提出的具有i个尺度的网络。可以看出,本文算法在3个、4个、5个尺度下的mAP分别为80.5%、82.4%、82.68%,随着尺度数量的增加检测精度有小幅度提升,但是增加多尺度信息意味着参数量和计算量大幅增加,导致检测效率下降。尤其是当尺度数量由4变为5时,mAP仅上升了0.28%,其检测效率却下降了3.2 fps,为27.3 fps。当尺度数量分别为3和4时,已经可以保证在mAP提高的同时检测效率保持相对稳定。综合考虑上述因素,本文最终采用4个尺度的输出进行检测,下文中的Proposed算法即为表 1中的Proposed-4算法,算法架构参见图 1。
本文对比了锚点数量与ground truth的平均交并比(Intersection over Union, IoU)的关系,如图 7所示。根据两者的关系,算法对4个尺度共分配12个锚点,即(15,8),(14,9),(16,10),(17,11),(18,9),(19,10),(22,10),(23,11),(26,13),(33,15),(40,18),(44,19),每一尺度使用3个锚点进行预测,保证了在大尺度特征图上能够为小目标人眼提供更加精确的锚点。
![]() |
图 7 平均交并比与锚点框数量之间的关系 Fig. 7 Relationship between average IoU and number of anchor boxes |
图选项 |
为了验证本文算法在复杂场景下对人脸检测的非依赖性,对包含复杂场景下的人眼图像检测结果做了统计。原始结果中包含500张,其中,利用OPENCV中的人脸检测器能检测出人脸的图像有320张,未检测出人脸的有180张。为便于表示,检测出人脸和未检测出人脸2种场景分别记为A和B,统计情况如表 3所示。
表 3 人眼检测统计结果 Table 3 Human eye detection statistic results
场景 | 左眼检出率/% | 左眼漏检率/% | 右眼检出率/% | 右眼漏检率/% | 误检率/% |
A | 85.9 | 14.1 | 89.1 | 10.9 | 21.4 |
B | 83.3 | 16.7 | 86.1 | 13.9 | 19.4 |
表选项
从表 3中可以看出,2种情况下的人脸检测精度对于人眼检测影响很小,即本文算法能够不依赖人脸检测进行人眼检测。
为了验证本文算法对较小尺度人眼的检测性能,随机选取DIF数据集中500张人脸图像,对不同算法的人眼检测率进行统计,其中根据边框的面积大小(像素数)分为5个尺度范围,即[120,280]~[760,920],统计结果如图 8所示。
![]() |
图 8 不同算法在不同尺度下的检出率 Fig. 8 Statistics of detection rate of different algorithms at different scales |
图选项 |
可以看出,一方面,YOLOv3和Faster R-CNN由于其特征提取网络的高层输出特征分辨率较低导致其对较小目标的检出率要低于本文算法;另一方面,以Adaboost为代表的传统人眼检测算法在较小尺度下的检出率仅有36.20%。总体上来看,本文算法在较小尺度范围下的检出率要明显高于其他3种算法,表明了本文算法对小尺度人眼检测的优越性。
为了验证左右眼的检测效果,本文算法与YOLOv3、YOLOv3-tiny[20]、YOLOv2[21]、Faster R-CNN在相同数据集上进行了比较,结果如表 4所示。其中,AP_L和AP_R分别为左右眼的检测平均精度。可以看出,本文算法mAP为82.59%,并且检测效率能达到30.5 fps。本文算法的mAP指标比YOLOv3、YOLOv3-tiny、Faster R-CNN等均有不同程度的提高。
表 4 不同算法的评价指标对比 Table 4 Comparison of evaluation indicators among various algorithms
算法 | AP_L/% | AP_R/% | mAP/% | F/fps |
YOLOv3 | 76.71 | 79.23 | 77.97 | 33.4 |
YOLOv3-tiny | 74.66 | 75.3 | 74.98 | 204.3 |
YOLOv2 | 60.97 | 65.45 | 63.21 | 45.6 |
Faster R-CNN | 77.91 | 79.35 | 78.63 | 12 |
Proposed | 84.77 | 80.41 | 82.59 | 30.5 |
表选项
图 9给出了4种算法的部分人眼检测结果。其中,Adaboost算法的检测结果没有置信度,其标示形式不同于其他3种算法。图 9中第1行可以检测出人脸(边框用矩形标示),第2、3行人脸检测失败,可以看出,在2种情况下,YOLOv3、Faster R-CNN和Adaboost对于小尺度人眼均有漏检情况发生。
![]() |
图 9 四种算法的检测结果对比 Fig. 9 Comparison of detection results among four algorithms |
图选项 |
3.4 红外人眼检测结果 本文在CASIA-Iris-Distance数据集进行测试以评估本文算法对红外人眼图像的适用性。测试结果如表 5所示,部分检测结果如图 10所示。
表 5 红外人眼检测性能 Table 5 Performance of infrared human eye detection
算法 | AP_L/% | AP_R/% | mAP/% | F/fps |
Proposed | 91.82 | 94.48 | 93.15 | 31.2 |
表选项
![]() |
图 10 红外图像的人眼检测结果 Fig. 10 Human eye detection results of infrared image |
图选项 |
从表 5中可以看出,红外人眼的检测精度达到了93.15%,检测效率为31.2 fps,并且具备对左右眼分别检测的能力。
4 结论 本文提出了一种复杂场景下的直接人眼检测算法,该算法的创新点在于不依赖人脸检测,可区分左右眼,并提高了小尺度人眼的检测正确率。本文算法在面部遮挡、光线干扰、模糊及流光等复杂场景下无法检测人脸时依然能够保证人眼检测有效性,提升了算法鲁棒性。由于算法可以帮助区分左眼和右眼,则为虹膜识别、双目视觉等提供了条件。考虑到直接人眼检测中人眼尺度过小问题,算法进行了如下设计提升了小尺度人眼情形下的检测精度:
1) 通过减少骨干网络中的下采样因子、加入扩张残差单元、增加一个Smaller尺度,提高小尺度人眼检测精度。
2) 通过4个尺度预测特征的融合,保证算法的多尺度检测能力。
实验证明,本文算法对于人眼检测具备良好的精确度和实时性,能够解决复杂场景下小尺度人眼检测精度较低的问题。
参考文献
[1] | DAUGMAN J.How iris recognition works[M]//BOVIK A.The essential guide to image processing.Salt Lake City: Academic Press, 2009: 715-739. |
[2] | TURK M A, PENTLAND A P.Face recognition using eigenfaces[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 1991: 586-591. |
[3] | DUCHOWSKI A T. Eye tracking methodology[J]. Theory and Practice, 2007, 328(614): 2-3. |
[4] | ASADA M, TANAKA T, HOSODA K.Adaptive binocular visual servoing for independently moving target tracking[C]//IEEE International Conference on Robotics and Automation.Piscataway: IEEE Press, 2000, 3: 2076-2081. |
[5] | HAILIN W, HANHUI L, ZHUMEI S.Fatigue driving detection system design based on driving behavior[C]//International Conference on Optoelectronics and Image Processing.Piscataway: IEEE Press, 2010, 1: 549-552. |
[6] | 叶修强.基于局部特征的人眼检测[D].南昌: 南昌大学, 2018: 18-20. YE X Q.Human eye detection based on local features[D].Nanchang: Nanchang University, 2018: 18-20(in Chinese). |
[7] | 金花.人脸识别中眼睛定位算法的研究[D].沈阳: 东北大学, 2010: 6-7. JIN H.Research on eye location algorithm in face recognition[D].Shenyang: Northeastern University, 2010: 6-7(in Chinese). |
[8] | 郝叶林, 罗兵, 杨锐, 等. 复杂场景图像中人员目标检测算法的改进[J]. 五邑大学学报, 2018, 28(1): 103-108. HAO Y L, LUO B, YANG R, et al. Improvement of human target detection algorithm in complex scene images[J]. Journal of Wuyi University, 2018, 28(1): 103-108. (in Chinese) |
[9] | MERLER M, RATHA N, FERIS R S, et al.Diversity in faces[EB/OL].(2019-01-29)[2019-12-30].https: //arxiv.org/abs/1901.10436. |
[10] | 刘青.基于深度学习的多姿态眼睛定位算法研究及应用[D].广州: 华南理工大学, 2018: 5-7. LIU Q.Research and application of multi-pose eye positioning algorithm based on deep learning[D].Guangzhou: South China University of Technology, 2018: 5-7(in Chinese). |
[11] | 张杰, 杨晓飞, 赵瑞莲. 基于积分投影和Hough变换圆检测的人眼精确定位方法研究[J]. 电子器件, 2005, 28(4): 706-709. ZHANG J, YANG X F, ZHAO R L. Research on human eye precise positioning method based on integral projection and Hough transform circle detection[J]. Electronic Devices, 2005, 28(4): 706-709. DOI:10.3969/j.issn.1005-9490.2005.04.003 (in Chinese) |
[12] | KROON B, MAAS S, BOUGH S, et al. Eye localization in low and standard definition content with application to face matching[J]. Computer Vision and Image Understanding, 2009, 113(8): 921-933. DOI:10.1016/j.cviu.2009.03.013 |
[13] | TANG X, OU Z, SU T, et al. Robust precise eye location by Adaboost and SVM techniques[J]. Lecture Notes in Computer Science, 2005, 3497: 93-98. |
[14] | GKIOXARI G, GIISHICK R, MALIK J.Contextual action recognition with R*CNN[C]//Proceedings of the IEEE International Conference on Computer Vision.Piscataway: IEEE Press, 2015: 1080-1088. |
[15] | REN S, HE K M, GIRSHICK R, et al. Faster R-CNN:Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[16] | LIU W, ANGUELOY D, ERHAN D, et al.SSD: Single shot multibox detector[C]//European Conference on Computer Vision.Berlin: Springer, 2016: 21-37. |
[17] | REDMON J, FARGADI A.YOLOv3: An incremental improvement[EB/OL](2018-04-08)[2019-12-30].https://arxiv.org/abs/1804.02767. |
[18] | TAN T N, SUN Z N.CASIA iris image database[EB/OL].[2019-12-20].http://biometrics.idealtest.org/. |
[19] | SCHUTZE H, MANNING C D, RAGH P.Introduction to information retrieval[C]//Proceedings of the International Communication of Association for Computing Machinery Conference.Cambridge: Cambridge University Press, 2008, 39: 234-265. |
[20] | KIM C E, OGHAZ M D, FAJTL J, et al.A comparison of embedded deep learning methods for person detection[EB/OL].(2018-12-09)[2019-12-30].https//arxiv.org/abs/1812.03451. |
[21] | REDMON J, FARHADI A.YOLO9000: Better, faster, stronger[EB/OL].(2016-12-25)[2019-12-30].https://arxiv.org/abs/1612.08242. |