顾可可,付威威,董月芳,许 一,陈文建
基于改进轮廓跟踪的瞳孔快速检测
顾可可1,付威威2,董月芳2,许 一1,陈文建1
(1. 南京理工大学 电子工程与光电技术学院,江苏 南京 210094;2. 中国科学院苏州生物医学工程技术研究所 影像室,江苏 苏州 215163)
提出一种基于直方图二值化和改进的轮廓跟踪的瞳孔检测方法。首先对采集的瞳孔图像计算直方图,根据直方图特征取出合适的阈值进行二值化,再对二值化后的图像进行轮廓跟踪,得到精确的轮廓边界,进而得到直径、中心等信息。对前一帧瞳孔图像进行瞳孔信息计算后,后一帧图像以该瞳孔中心为中心,缩小检测区域进行直方图二值化及瞳孔轮廓跟踪,得到该帧图像的瞳孔信息,减少运算,加快检测速率。该算法鲁棒性高,速度快,可满足300帧/s的实时检测速度。
直方图二值化;轮廓跟踪;瞳孔实时检测
眼睛是人类感知外界信息最重要的感觉器官,而在人眼视觉功能中,瞳孔由于其特殊的感光性具有重要的学术和临床研究价值。光线射眼时会引起瞳孔直接或间接缩小,称光反射。双目瞳孔对光反射设备作为神经系统功能的客观检测指标,被广泛用于青光眼、颅脑损伤、中风、视神经病变等神经系统常见疾病的早期病变发现、诊断鉴别及术后状态监测评估。但目前临床上主要采用手动检查方法,仅能对症状明显患者给出阳性诊断,对于轻微症状往往会漏诊,导致错过治疗时机。如能对以上指标进行客观定量检测,则可在疾病早期和术后监护期发现其微小变化并及时治疗,将可挽救患者更多的生理功能。实时瞳孔检测与跟踪技术是计算机视觉领域一个重要的研究课题,在医疗卫生、交通安全、公共安全保障、军事、刑侦等领域有巨大的潜在的应用价值。
瞳孔检测作为虹膜识别检测的一部分,目前常用的定位方法有Wildes提出的图像二值化并结合Hough变换[1]和Daugman的圆形检测算子[2]。Daugman提出的微积分算法具有高的准确性和鲁棒性,但由于盲目搜索,检测时间长,造成计算上的浪费。Wildes的算法在定位速度上有所改进,但同样存在计算时间长的问题。随后为了提高Hough变换的速度与精度,学者们又提出了Hough变换的改进算法,如点Hough变换[3-4]。这两种方法都是基于圆检测,为了弥补瞳孔不是圆形时的误差,一些学者使用最小二乘法拟合椭圆进行瞳孔检测,但同样对于一些因疾病导致的不规则瞳孔的检测存在较大误差。而用形态学重构瞳孔图像[5],区域生长等方法进行瞳孔检测能减小不规则瞳孔的检测误差,但检测速度却受到限制。
本文侧重于双目瞳孔参数实时检测,根据直方图寻找阈值二值化,再对瞳孔轮廓追踪,最后计算瞳孔参数。轮廓追踪不用考虑瞳孔的形状,对不规则瞳孔同样适用[6-7]。实验证明,该算法可满足300帧/s的实时性要求。
瞳孔检测一般采用红外光照明。红外光照明时,瞳孔与虹膜的边缘很清楚,能突出瞳孔部分。图1为850nm红外光照明下采集的双目初始图像。方框部分为双目瞳孔检测的初始区域,各为450×275像素,图像采集时只要将瞳孔落在方框区域内即可。
图1 双目图像
瞳孔检测流程图如图2所示。对于采集的第一幅图像在图1所示方框的范围内二值化、轮廓追踪,进而得出瞳孔中心、直径等信息。根据中心位置对此后的图像进一步缩小查找范围,加快检测速度。
图2 瞳孔检测过程
Fig.2 Pupil detection process
在瞳孔检测中,二值化的目的在于将瞳孔图像分为瞳孔和背景两部分,其关键在于寻找合适的阈值[8]。二值化是图像处理中比较常见的处理方式,因此发展至今也产生了各种二值化方法,常见的方法有最大类间方差法(OSTU),迭代阈值法,P分位法,基于最小误差的全局阈值法等。对于瞳孔图像,这些方法都不能较好地分割出瞳孔部分。根据瞳孔图像的特点,采用基于直方图的二值化方法寻找合适的阈值。
由图1可看出,瞳孔红外图像中瞳孔部分与其他部分相比,灰度值明显较低。在直方图中为第一个峰值所在位置,如图3所示。红外光照明下的瞳孔图像直方图基本类似。本文处理中,在灰度值1~50间求得峰值,为瞳孔位置,再在灰度值61~120间求得峰值,为背景部分,以两峰值间的波谷,即直方图中瞳孔位置右侧出现的第一个谷底作为阈值对瞳孔图像进行二值化操作,二值化后的结果如图4所示。
图3 单眼瞳孔图像及直方图
图4 瞳孔图像二值图
由于光源亮点落在瞳孔内部,瞳孔轮廓跟踪不会影响瞳孔的完整性,从而对瞳孔面积、中心及直径的计算造成影响。对二值化后的瞳孔图像进行轮廓跟踪,得到瞳孔的轮廓存储在数组中,最后计算瞳孔的中心和直径。本文所讲的左右眼均指图像中的左右眼。轮廓跟踪过程如下:
1)确定轮廓起点。一般的轮廓跟踪习惯从图像左上方开始,逐行逐列寻找第一个前景点作为轮廓的起始点。但在瞳孔检测的应用中,如图5所示,瞳孔图像二值化操作时眼尾处的睫毛灰度值与瞳孔较为接近,眼头处也会剩下少量睫毛噪点。对于不同环境下采集的瞳孔图像,瞳孔下方也可能会出现少量阴影。在轮廓追踪过程中为避开非瞳孔区域,左边瞳孔选择从右上角开始搜索,从上到下,从右到左搜索黑点;右边瞳孔选择从左上角开始搜索,从上到下,从左到右搜索黑点,从而避开眼尾处稍大块睫毛的影响。
图5 左右眼瞳孔图像二值图(阈值58)
同时,为了避免眼头处少量睫毛噪点以及二值化后的图像中其他孤立噪点对轮廓起点判断的影响,每找到一个黑点,即对其八邻域进行搜索,若此黑点的八邻域中的黑点数大于3,则认为其不是孤立噪点,即为瞳孔边界的起始点。图像某像素点的8邻域如图6所示,点P为当前点,P0~P7为当前点的8邻域。
P5P4P3 P6PP2 P7P0P1
2)轮廓跟踪。如图7所示,从轮廓起点的八邻域开始寻找,每找到下一个轮廓点,就将新的轮廓点作为当前点,顺序寻找,直至第二次搜索到起始轮廓点,跟踪结束。将所有的轮廓点存储在轮廓数组中。由于瞳孔区域为一个完整聚集的区域,轮廓跟踪不需要考虑断点、八邻接等特殊情况,寻找轮廓点的原理可采用摩尔邻域跟踪算法[9]。每找到一个黑色像素,就将其作为当前点,返回前一个白色像素,以顺时针方向搜索当前点的8邻域,直到找到下一个黑色像素,重复过程。
图7 轮廓跟踪过程
3)稍大块睫毛噪点的去除。由于二值化后的瞳孔图像有少量睫毛噪点位于瞳孔上方,虽然寻找第一个边界像素时已经跳过了孤立噪点,但是轮廓跟踪的第一个边界还可能是稍大块的睫毛区域。因此计算轮廓区域的面积,如果轮廓区域面积像素数小于一定数值,则认为不是瞳孔,继续寻找新的轮廓,直到找到瞳孔轮廓为止。本文中取该面积像素数的限定值为1300。图8为单幅图像轮廓跟踪流程图。对二值化后的瞳孔图像进行轮廓跟踪,得到瞳孔的轮廓存储在数组中,最后计算瞳孔的中心和直径。
图8 轮廓跟踪流程图
Fig.8 Flow chart of contour tracking
根据轮廓跟踪得到的轮廓数组,对瞳孔轮廓包围的像素点进行统计,即为瞳孔像素面积。再根据圆的面积公式计算得出瞳孔半径。瞳孔的中心由重心公式计算得出:
瞳孔在人眼中只占一部分,在定位的过程中,若是根据先验知识得到瞳孔的大致位置,就可以缩小查找范围,进一步提高检测速率。很多瞳孔检测会采用灰度投影法[10]对瞳孔进行粗定位,但对本文采集的瞳孔图像,人脸两侧的黑色背景部分会对灰度投影法粗定位造成影响。
图9 瞳孔图像信息计算结果
根据图像采集过程中瞳孔不会随意晃动,相邻两帧的瞳孔位置基本一致,对前一帧瞳孔图像进行瞳孔信息计算后,后一帧图像以该瞳孔中心为中心,截出比瞳孔上下左右边界稍大的方形区域,例如比瞳孔上下左右边界扩大10个像素,如图10所示,对该缩小的区域进行直方图二值化及瞳孔轮廓跟踪,得到该帧图像的瞳孔信息。再以此瞳孔中心为依据对下一帧图像进行重复操作,直至完成所有图像的信息统计。查找范围的缩小可大大减少运算量,加快检测速率。
图10 缩小查找范围后的瞳孔图像二值图
为了适应不同环境下的检测需要,防止环境亮度变化对瞳孔图像二值化的影响,对每一帧图像都分别计算左右眼的二值化阈值。但对于第二帧及以后的瞳孔图像,可在缩小查找范围的区域内进行二值化阈值计算。瞳孔图像范围的减小可以减少运算,加快检测速率。
为验证本文算法的有效性和实时性,对双目瞳孔检测仪连续采集的600帧图像进行处理。采集到的红外瞳孔图像尺寸1920×400像素,8位灰度。实验环境在CPU为i5,内存4GB,64位操作系统的硬件环境,VS2008和QT4.7.4的软件环境下进行。
对传统Hough变换、文献[3]的点Hough变换、文献[11]的区域生长方法及本文算法进行对比。表1为4种方法的定位结果。可以看出,几种方法所得瞳孔中心和直径值基本一致,证明本文算法能满足准确性的要求。且有些情况下由于瞳孔不完全是正圆,此时对于瞳孔面积的计算,本文算法比两种Hough变换定位的瞳孔区域更准确。
表1 算法有效性比较
对连续采集的多幅图像进行处理,由于传统Hough变换和点Hough变换求得的直径都是统计结果,因此其波动较大。图11为瞳孔受闪光刺激过程中点Hough变换和本文算法的双目瞳孔直径的变化,红色实线为图像中的左眼,蓝色虚线为图像中的右眼。本文算法瞳孔直径值变化趋势较为平滑,存在一定的优势。
图11 双目瞳孔直径统计图
对4个算法运行时间分别进行统计,区域生长方法由于使用了膨胀腐蚀等预处理,时间较长;传统Hough变换计算量大,时间最长;点Hough变换在传统Hough变换上进行了改进,运算时间大大缩小;本文算法时间比点Hough变换更短,检测图像越多,优势越明显,如表2所示。结果证明,本文算法速度能满足300帧/s的图像采集速度,实现实时检测的要求。
表2 算法效率比较
本文提出一种基于直方图二值化和改进轮廓跟踪的瞳孔检测方法准确计算瞳孔面积,定位双目瞳孔中心。算法实现过程中,根据初始图像缩小算法处理范围,进行二值化及轮廓跟踪处理,在准确定位瞳孔中心的基础上加快瞳孔检测的图像处理速度,最终满足300帧/s的检测速度。
[1] RICHARD P WILDES. Iris recognition: an emerging biometric technology[J]., 1997, 85(9): 1348-1363.
[2] JOHN G DAUGMAN. High confidence visual recognition of persons by a test of statistical independence[J]., 1993, 15(11): 1148-1161.
[3] 王长元, 张景, 李京京. 瞳孔中心快速定位方法研究[J]. 计算机工程与应用, 2011, 47(24): 196-198.
WANG C Y, ZHANG J, LI J J. Research on algorithm for pupil-center rapid localization[J]. C, 2011, 47(24): 196-198.
[4] 林金龙, 石青云. 用点Hough变换实现圆检测的方法[J]. 计算机工程, 2003, 29(11): 17-18, 160.
LIN J L, SHI Q Y. Circle recognition through a point Hough transformation[J]., 2003, 29(11): 17-18, 160.
[5] 田野, 王怀军, 方志良. 基于形态学重构算法的瞳孔精确检测[J]. 光电子×激光, 2008, 19(3): 409-411.
TIAN Y, WANG H J, FANG Z L. The pupil diameter precise measurement based on morphological reconstruction algorithm[J].×, 2008, 19(3): 409-411.
[6] 吕云飞. 一种目标边界跟踪算法[D]. 大连: 大连海事大学, 2014.
LV Y F. An Object Boundary Following Algorithm[D]. Dalian: Dalian Maritime University, 2014: 10-12.
[7] 吴建华, 邹德旋, 李静辉. 基于小范围搜索的虹膜定位方法[J]. 仪器仪表学报, 2008, 29(8): 1704-1708.
WU J H, ZOU D X, LI J H. Iris location algorithm based on small-scale searching[J]., 2008, 29(8): 1704-1708.
[8] 罗玉皓, 邹远文, 夏勋. 运用OpenCV实现红外图像的瞳孔参数实时检测[J]. 计算机与现代化, 2013, 6: 71-75.
LUO Y H, ZOU Y W, XIA X. Real-time pupil parameter detection for infrared image using OpenCV[J]., 2013, 6: 71-75.
[9] 毛顺兵. Hough 变换和轮廓匹配相结合的瞳孔精确检测算法[J]. 计算机应用, 2016, 36(5): 1415-1420.
MAO S B. Exact pupil detection algorithm combining Hough transformation and contour matching [J]., 2016, 36(5): 1415-1420.
[10] 穆克智, 史仪凯. 几种阈值分割方法在瞳孔检测中的应用研究[J]. 北京生物医学工程, 2005, 24(6): 443-445.
MU K Z, SHI Y K. Applying research of the threshold methods in pupil detection[J]., 2005, 24(6): 443-445.
[11] 刘元宁, 胡宗星, 朱晓冬, 等. 基于轮廓跟踪的虹膜定位算法[J]. 吉林大学学报: 理学版, 2011, 49(2): 273-278.
LIU Y N, HU Z X, ZHU X D, et al. Iris localization algorithm based on contour following[J].: Science Edition, 2011, 49(2) : 273-278.
Rapid Pupil Detection Based on Improved Contour Tracking
GU Keke1,FU Weiwei2,DONG Yuefang2,XU Yi1,CHEN Wenjian1
(1.School of Electronic and Optical Engineering, Nanjing University of Science and Technology, Nanjing 210094, China; 2.Suzhou Institute of Biomedical Engineering and Technology,Chinese Academy of Sciences,Suzhou Jiangsu 215163,China)
This paper presents a new pupil detection method based on histogram binarization and improved contour tracking. Firstly, the pupil image histogram is calculated to get the suitable threshold for binarization. Then contour track is used to get the precise contour. Finally the information such as diameter and the center of the pupil is attained. According to the pupil information of the previous frame, the detection region for histogram binarization is narrowed and improved contour tracking is used to get the pupil information of the next frames. These methods will reduce the amount of computation and speed up the detection rate. The algorithm is robust, fast, and can meet the real-time detection speed of 300 frames per second.
histogram binarization,contour tracking,real-time pupil detection
TP391.4
A
1001-8891(2017)06-0574-05
2016-08-06;
2016-08-19.
顾可可(1993-),女,江苏南通人,硕士研究生,主要研究方向为图像处理。E-mail:gukeker@163.com。
陈文建(1965-),男,江苏如皋人,博士,教授,主要研究方向:光通信与光纤应用技术、光学系统设计与光电仪器。
2016年江苏省重点研发计划(社会发展)项目(SBE2016740249)。