APP下载

一种主从摄像瞳孔实时精确检测系统

2021-12-09王向周朱璐璐郑戍华南若愚

北京理工大学学报 2021年11期
关键词:瞳孔轮廓人脸

王向周, 朱璐璐, 郑戍华, 南若愚

(北京理工大学 自动化学院,北京 100081)

无人机系统驾驶员远程控制飞机进行搜寻、救援等作业,通常需要关注大量信息并及时处理紧急情况,驾驶员注意力状态直接关系到无人机的安全及任务完成度. 驾驶员处于疲劳或紧张状态时,其瞳孔大小就会出现较大的波动,因此可以通过实时监测将瞳孔大小作为判断驾驶员是否疲劳的关键参数之一.

瞳孔实时精准检测常依赖于专用设备直接采集高精度眼部图像,但是高分辨率图像对设备的算力也提出了较高的要求. 李新辰[1]针对视频眼震电图仪采集眼部图像的处理算法进行改进,同时提高了程序处理效率和瞳孔定位速度,相对于CPU运行速度提升了5~20倍. SANTINI 等[2]采用PuRe构造函数对使用头戴式眼动仪采集的眼部图像进行检测,在120 fps检测速度的情况下将最新算法的精度提高了10%. 以上方法针对图像采集摄像头与头部位置保持相对不变状态进行的,虽然取得了高精度和实时性,但实际应用时受到一定限制.

PTZ(Pan/Tilt/Zoom)摄像机通过云台全方位转动摄像机并控制变焦,根据目标实际位置与理想位置的差异调整PTZ 摄像机参数,使目标以较大尺度处于图像中心位置,但由于瞳孔尺寸较小,PTZ摄像机很难同时满足大视场和高分辨率图像以保证瞳孔检测的高精度和实时性[3]. 为了解决瞳孔图像的清晰程度与大视场下的跟踪速度之间的矛盾,NI等[4]采用了同型号且位置固定的主从结构摄像机实现距离40 cm左右的瞳孔检测,主摄像机图像通过深度学习实现眼睛的定位跟踪,从摄像机图像采用聚类算法进行瞳孔检测,平均检测速率为8.3 fps,检测精度为90.6%. 但没有根据主、从摄像机的各自担任的任务对其技术参数进行选择,一定程度上不利于系统性能的提升.

针对人脸定位的实时性问题,BARNOUTI 等[5]采用Viola-Jones人脸检测算法和KLT跟踪算法实现人脸的快速定位;李澎林等[6]在利用AdaBoost算法检测人脸后采用了一种结合特征描述子的跟踪校正策略对人脸进行跟踪. 相比于人脸检测算法,采用融合人脸检测与目标跟踪的人脸定位算法提升了人脸定位速度,但还不能满足瞳孔检测实时性的要求,还需进一步提升人脸定位速度.

为了提升人眼检测的精确度,通常采用改进的椭圆拟合算法,比如WU等[7]对二值化后的瞳孔轮廓进行基于随机样本共识(RANSAC)的快速瞳孔椭圆拟合,而SATRIYA 等[8]则是利用椭圆拟合、RANSAC离群值去除和移动平均滤波来跟踪瞳孔从而提升检测速度. 然而改进椭圆拟合算法的检测速度对于高分辨率瞳孔图像无法保证实时性.

针对较大视场的瞳孔检测需求,本文提出了一种基于主从摄像机的瞳孔检测系统,在距离1 m的情况下根据主摄像机人脸图像处理得到的人脸实时位置坐标,通过控制云台使得其搭载的从摄像机能够实时跟踪采集眼部图像. 通过采集主从摄像机图像进行了算法验证,实现了较大视场下瞳孔的实时精确检测.

1 系统方案

1.1 主从摄像机瞳孔检测系统

主从摄像机瞳孔检测系统总体方案如图1所示. 主摄像机固定位置,从摄像机安装在一个二自由度(方位、俯仰)的电动云台上. 主摄像机采用高速、大视场摄像以保证系统的动态跟踪性能和头部运动范围,根据主摄像机图像捕获人脸位置,控制云台转动使得从摄像机能够实时跟踪人眼部位,而从摄像机以小视场来换取高分辨率图像,为瞳孔检测提供了高质量数据.

图1 主从摄像机瞳孔检测系统组成框图Fig.1 Diagram of the master-slave camera pupil detection system

考虑1 m的物距下800 mm×600 mm的视场下人脸图像像素应不少于128×128像素,主摄像机选用凯视佳Jelly3系列的MU3C120M黑白CMOS工业摄像机,其分辨率为1 280×960,帧速率为60 fps. 一般人脸面积为300~400 cm2,这样脸部像素点不少于5万像素,在满足实时性的同时可满足视场范围内的人脸定位要求.

根据视觉暂留原理,从摄像机图像的采集帧率应不低于16 fps,从摄像机选用凯视佳Jelly6系列的MU3HS2000C彩色CMOS工业摄像机,配备850 nm带通红外截至滤光片,其分辨率为5 472×3 648,帧速率为18 fps. 在1 m的物距下视场可以达到256 mm × 192 mm,所以从相机可以完整地采集到人脸图像. 估算可知瞳孔图像可达2 500个像素点以上,单个像素不大于0.1 mm.

云台选用0.9°精密步进电机驱动高速转台,方位向360°无限位连续旋转,转动速度从0.01~300(°)/s连续调整;俯仰方向转动范围0°~90°,最大转速达 120(°)/s. 针对物距1 m的目标,云台的跟踪速度不低于为1.7 m/s,一般地人的头部移动最高速度为0.5 m/s,运动跟踪速度可完全满足人脸动态跟踪要求.

图2搭建的主从摄像机系统实物及本文研究所采用的坐标系,其中主摄像机坐标系Om-XmYmZm与世界坐标系相对静止.

图2 系统外观及其坐标系Fig.2 Appearance of the system and its coordinate system

1.2 主从坐标解算

采用张正友标定法,对主从摄像机系统进行标定,达到主摄像机图像坐标与云台旋转角度之间的转换关系如式(1)所示

(1)

式中:(um,vm)为主摄像机的图像坐标系;Zc为比例因子;fx,fy,u0,v0均为摄像机参数;R和T分别为旋转矩阵和平移向量;φ和θ分别为云台的绝对偏航角和绝对俯仰角;r为物体到云台转轴中心的实际距离.

主从摄像机瞳孔检测系统的控制流程如图3所示,根据主摄像机图像人脸实时位置坐标,由式(1)可得到云台需要转动方位和俯仰角度,从而实现从摄像机对人眼部位的实时跟踪捕获,这样可保证从摄像机图像中人脸位置基本不变,根据三庭五眼的先验知识可直接提取出人眼区域图像.

图3 主从摄像机瞳孔检测系统控制流程图Fig.3 Control flow graph of the master-slave camera pupil detection system

2 人脸实时跟踪算法

为了满足实时性和鲁棒性要求,首先研究了人脸检测与目标跟踪相结合的技术,实现了人脸位置坐标实时跟踪.

人脸实时跟踪算法的整体流程如图4所示,对于经过预处理的输入图像,若时间累积超过1 min则重新判定为第1帧图像并进行人脸检测,否则进行人脸跟踪. 对于第1帧图像通过人脸检测得到人脸位置坐标并据此结果对其跟踪窗口对应区域进行随机仿射变换得到一组训练样本fi,并通过高斯函数产生期望输出gi使其在fi的中心位置达到响应峰值,从而得到初始化的滤波模板h0;对于非首帧图像则采样上一帧的跟踪窗口对应区域,并经过傅里叶变换后与滤波模板点乘后将结果做反傅里叶变换,得到响应输出Gi;最后根据Gi确定当前帧中响应最大的像素点即为当前目标位置,将以此点为中心的跟踪窗口对应区域Fi加入训练样本中,更新相关滤波器之后进入下一帧图像.

图4 人脸实时跟踪流程图Fig.4 Flow chart of real-time face tracking

3 瞳孔检测算法

为了快速精确测量瞳孔,首先通过粗定位来确定瞳孔图像的区域范围,然后在对瞳孔图像区域进行处理,得到清晰的瞳孔边缘,以检测瞳孔大小.

3.1 瞳孔粗定位

针对从摄像机图像中根据三庭五眼标准截取出的眼部区域,瞳孔粗定位用于锁定瞳孔的主要区域,并排除了瞳孔区域外的睫毛等其他因素的干扰. 这里采用深度学习神经网络算法中的语义分割网络来实现瞳孔的粗定位.

语义分割网络采用卷积神经网络结构模型,是一种多层复合函数. Enet作为一种轻量化的语义分割模型,利用样本进行训练推理实现对图片的准确分类,且在减少网络参数和内存占用的同时也缩减了网络训练推理时间,可以在保证实时性的基础上兼顾准确率. 采用Enet模型进行图像分类,需要利用标签数据集训练语义分割网络得到输入图像的分割结果,因此在训练语义分割网络的过程中最重要的是制作标签数据集. 首先选择出与待分割图片相同类型的图片作为训练集,然后利用制作标签集工具labelme,对训练集中的图片手动划分瞳孔边界并进行语义标注,达到对图像像素级的分割. 制作的部分标签图如图5所示. 最后利用标签数据集训练网络模型,即可得到实现瞳孔粗定位的语义分割网络模型.

图5 标签图Fig.5 Label map

3.2 瞳孔精定位

对语义分割网络的粗定位结果,计算获得一个包含瞳孔整个轮廓的最小区域作为瞳孔的感兴趣区域,进行扩张剪裁处理,作为精定位处理目标图像,扩张比例为横向、纵向同时扩张10个像素.

首先对剪裁所得瞳孔的感兴趣区域图像进行二值化处理,最大可能地突出瞳孔边界. 再通过形态学闭、开操作将比较靠近的端口和孔洞连接起来,去除睫毛、瞳孔内光源反射亮点等噪声. 接下来针对二值化图像进行Canny边缘检测提取出图像中所有的轮廓边界,这里根据瞳孔大小排除掉轮廓面积小于50个像素点的轮廓. 最后利用最小二乘算法对得到的轮廓进行椭圆拟合,根据轮廓的边界点坐标,最小化拟合椭圆与边界点之间的欧氏距离,使拟合误差的平方和最小化,从而确定出椭圆参数来找到椭圆拟合的最优解也是唯一解,这里排除掉拟合椭圆长短轴之比大于1.5的轮廓,然后在可能的几个椭圆中找到椭圆内黑色像素与椭圆面积之比的最大值对应的椭圆轮廓作为最终的瞳孔轮廓,其检测结果如图6所示.

图6 椭圆拟合的检测结果Fig.6 Detection result of fitting ellipse

4 实验分析

本实验在Windows环境下,电脑配置为Core i5 CPU 2.5 GHz的双核处理器,程序实现工具为Visual Studio 2015,在C++语言环境中应用OpenCV(open source computer vision library)计算机视觉库进行编程.

4.1 人脸实时定位跟踪实验

首先对首帧图像的人脸检测算法进行测试,利用从摄像机在距离1.0~1.2 m范围内采集人脸图像,采用基于LBP特征训练出的AdaBoost级联分类器进行检测,其部分检测效果如图7所示,可以看出这种方法在一定程度的抬头、低头、侧头的情况下,均可在保证速度的前提下准确地检测定位到人脸区域.

图7 人脸检测的3种结果Fig.7 3 results of face detection

然后对人脸实时跟踪算法进行测试,分别将MOSSE跟踪器与KCF、CSRT、MIL、TLD和Median Flow这几种跟踪方法与基于LBP特征的AdaBoost人脸检测算法进行融合,在比较快速的头部移动过程中得到的部分人脸跟踪结果如图8所示,算法的准确率数据如表1所示.

图8 MOSSE,MIL,KCF,CSRT,Median Flow和TLD人脸跟踪结果Fig.8 Face tracking results of MOSSE, MIL, KCF, CSRT, Median Flow and TLD

表1 人脸跟踪算法的准确率对比Tab.1 Accuracy comparison of face tracking algorithms

从图8和表1可以看出,MOSSE、KCF、CSRT和Median Flow对于快速移动的头部跟踪准确度最高. 再对这4种跟踪方法的跟踪速率进行比较,结果如表2所示,只有MOSSE跟踪器可以满足实验要求的60 fps,且人脸位置跟踪准确. 采用AdaBoost人脸检测与MOSSE跟踪融合的人脸实时跟踪算法可以在保证实时性的同时有效减少误差累计,提高算法的鲁棒性和精确性.

表2 人脸跟踪算法速率对比Tab.2 Speed comparison of face tracking algorithms

4.2 瞳孔快速精确定位实验

利用从摄像机在距离1.0~1.2 m范围内采集了14个人的2 400张人眼图像,并全部通过手动标定得到瞳孔轮廓数据作为瞳孔检测的样本集. 其中2 000张作为语义分割网络的训练样本,剩下400张作为测试样本.

分别采用最常用的3种语义分割卷积神经网络Enet,LEDnet和Unet对瞳孔进行粗定位,其检测结果对比如表3所示. 可以看出3种方法的检测精度相差不多,而Enet和LEDnet的检测速度远高于Unet,由于粗定位只需能够检测出瞳孔的主要区域,对准确率要求不高,因此主要依据耗时结果选择Enet作为粗定位的检测方法.

表3 瞳孔粗定位结果对比Tab.3 Comparison of results of coarse pupil positioning

语义分割网络部分检测效果图如图9所示,在瞳孔无遮挡且不佩戴眼镜时其交并比是最高的,在配戴眼镜或有部分遮挡时虽然交并比有所下降但瞳孔区域位置准确,所以对精定位影响不大. 但其分割精度只能保证瞳孔区域包含在内,其边界受标定效果的影响很大,因此需要与精定位算法结合使用以同时保证实时性和精确性.

图9 粗定位结果Fig.9 Result of coarse positioning

瞳孔精定位在粗定位区域内进行边缘检测,并拟合出瞳孔轮廓. 本文在样本集中随机选取500张图像进行测试,并采用手工标定得到的瞳孔轮廓数据作为瞳孔实际轮廓,对被遮挡的瞳孔轮廓选取与其相邻时间内的无遮挡瞳孔轮廓面积作为其瞳孔面积,将检测瞳孔轮廓面积与瞳孔实际轮廓面积的相对误差作为精定位的准确率.

分别采用最常用的2种圆检测方法,即椭圆拟合和Hough变换对瞳孔的感兴趣区域图像进行检测,在瞳孔无遮挡情况下对2种方法进行比较,如表4所示,Hough变换的检测速度比椭圆拟合更快,但椭圆拟合的准确率比Hough变换更高.

表4 瞳孔精定位结果对比Tab.4 Comparison of the results of pupil precise positioning

在瞳孔无遮挡情况下,如图10所示Hough和椭圆拟合都能比较准确地测量瞳孔,但是当图11所示瞳孔有部分被遮挡时,Hough变换只能拟合出瞳孔显示部分,而椭圆拟合则能够根据轮廓边界拟合出瞳孔被遮挡部分,因此椭圆拟合方法的鲁棒性更强. 另外由于摄像机和瞳孔的运动,瞳孔有时可能会呈现出近似椭圆的形状,只有椭圆拟合能满足非规则形状的情况,因此采用椭圆拟合对瞳孔进行精定位.

图10 无遮挡瞳孔检测结果Fig.10 Results of unobstructed pupils

图11 遮挡瞳孔检测结果Fig.11 Results of detection of obstructed pupils

通过椭圆拟合提取出瞳孔完整轮廓,图像瞳孔平均覆盖面积均超过2 500像素值,由于瞳孔图像采集过程延迟很短(0.5 s),可以认为在连续10帧图像内瞳孔大小基本不变,其测量差异仅由瞳孔检测算法引起,因此对不同时间段内的连续10帧图像进行测量,将其测量面积的最大正负偏差与平均值的比值作为瞳孔面积的测量误差,计算得到瞳孔面积的重复性误差最大为±1.06%.

5 结 论

针对无人机驾驶员的工作环境,本文搭建了一种主从摄像机随动跟踪人眼图像捕获系统用于实时捕获驾驶员的瞳孔检测. 采用AdaBoost与MOSSE融合算法实现了60 fps的人脸定位跟踪,根据人脸定位坐标控制云台转动使从摄像机跟踪人脸部位采集得到了高分辨率人眼图像,采用由粗到精两步法得到了瞳孔轮廓,实验结果表明,实现了18 fps瞳孔直径检测,其重复性误差小于±1.06%,可满足无人机驾驶员状态评估对瞳孔检测实时性和精确性的要求.

猜你喜欢

瞳孔轮廓人脸
有特点的人脸
玻璃窗上的人脸
跟踪导练(三)
瞳孔
“领家系”可爱脸VS“高冷系”美人脸
动物凶猛,一眼便知
瞳孔大,决策力差
长得象人脸的十种动物
儿童筒笔画
创造早秋新轮廓