一种基于星射线的瞳孔中心定位方法与流程

文档序号:21369102发布日期:2020-07-04 04:45阅读:1308来源:国知局
一种基于星射线的瞳孔中心定位方法与流程

本发明属于图像处理技术领域,具体涉及一种基于星射线的瞳孔中心定位方法。



背景技术:

瞳孔定位是许多计算机视觉应用的第一步也是最重要的一步。例如人脸识别,人脸特征追踪,面部表情分析,同时虹膜检测和定位也离不开瞳孔定位。瞳孔中心定位的精度将直接且深刻地影响着下一步的处理和分析。视线追踪的第一步即为瞳孔中心定位。视线追踪系统为实时认知处理和信息传输提供了一个强大的分析工具。视线追踪大约有两个重要的应用领域:诊断分析和人机交互。用于诊断的眼动追踪系统为记录阅读者的视线提供了一个客观的、量化的有力途径。由眼动追踪系统提供的这些信息,在诸多领域具有重大应用价值。

目前瞳孔中心定位的方法主要分为基于特征的方法和基于统计学习的方法;基于特征的方法又分为基于积分投影的方法和hough圆检测;基于形状的方法主要通过大量的数据进行模型的训练以达到瞳孔中心定位的效果。积分投影法只计算图像的灰度值,计算量小,容易受到光照,睫毛,眼睑遮挡等的影响,因此检测误差较大。hough圆检测,计算量大,难以满足实时性的要求。基于统计学习的方法,需要大量的数据来进行模型的训练,工作量较大。其学习模型比较复杂,无法满足精确定位瞳孔中心的要求。



技术实现要素:

针对上述问题本发明提供了一种基于星射线的瞳孔中心定位方法。

为了达到上述目的,本发明采用了下列技术方案:

一种基于星射线的瞳孔中心定位方法,先通过图片预处理,再通过星射线算法,检测瞳孔区域,在roi区域内通过迭代法,得到二值化的阈值,优化二值化后的瞳孔区域,剔除星射线边缘点误差。

进一步,所述图片预处理的具体操作为:通过红外摄像头采集数据,将采集的视频数据转化为灰度图像,对灰度图像做中值滤波。通过中值滤波可以减小睫毛的影响,是有效提取二值化瞳孔区域的基础。

进一步,所述通过星射线算法,检测瞳孔区域的具体操作为:将yolov3检测到的瞳孔区域的中心点作为瞳孔区域内部的点;yolov3速度快,模型简单,可以很好的检测小物体,是一种实时性的目标检测模型。通过yolov3可以实时的检测到瞳孔区域。

进一步,所述在roi区域内通过迭代法,得到二值化的阈值,算法步骤如下:

步骤1,求出瞳孔区域内灰度的平均值,记为a,令初始阈值为a;

步骤2,统计大于阈值a的像素平均值记为b,小于阈值a的像素平均值记为c;

步骤3,求出新阈值a=(b+c)/2;

步骤4,若a(k)=a(k+1),则所得即为阈值;否则继续执行步骤2的操作,进行迭代计算。瞳孔区域的灰度值比其它区域的灰度值低,所以通过迭代法可以自适应的得到瞳孔区域的二值化阈值,通过该方法,可以有效的提取瞳孔。

进一步,所述优化二值化后的瞳孔区域的具体操作为:将二值化后的瞳孔区域进行中值滤波,去除边缘的毛糙,使边缘尽可能的光滑;对反光区域进行填充,通过扫描线算法即从上到下,从左到右对瞳孔区域内的空洞进行有效的填充。然后以瞳孔区域中心点为中心,每隔20°发出射线,得到18个瞳孔边缘点。通过中值滤波可以有效的平滑二值化图像的边缘,进而通过星射线模型可以提取较为准确的瞳孔边缘;扫描线算法可以对瞳孔区域内部的空洞进行有效的填充,可以防止提取的瞳孔边缘点为瞳孔内部的点。通过这一步提取到的瞳孔边缘点为粗提取的瞳孔边缘点。

进一步,所述剔除星射线有误差的边缘点,误差点分别为:眼睑遮挡边缘点、反光区域的边缘点和二值化图像离群点。

再进一步,所述眼睑遮挡边缘点为上眼睑遮挡边缘点,上眼睑遮挡边缘点的剔除方法为:计算初始瞳孔边缘点之间的斜率h1,h2,h3.......;计算瞳孔中心以上的边缘点的斜率;剔除遮挡处的瞳孔边缘点。眼睑遮挡处的瞳孔边缘点斜率较低,趋近于0°非遮挡处的瞳孔边缘点斜率较高,与遮挡处的边缘点,呈现明显的不同。

再进一步,所述二值化图像离群点的剔除方法为:瞳孔为近似椭圆,合理的瞳孔边缘点应该符合椭圆的分布;从椭圆中心发射处的射线的斜率应该与瞳孔边缘处的点的切向方向垂直;剔除不与瞳孔中心点发射的射线的斜率不垂直的点;且误差较大的点。通过这一步可以有效的剔除眼睑遮挡边缘点和二值化图像离群点,计算量小,速度快。

再进一步,所述反光区域边缘点的剔除方法为:先将剔除了误差点的瞳孔边缘点,进行椭圆拟合;因为反光区域的点距离拟合后的瞳孔中心较近;剔除距离瞳孔中心最近的点,进而将反光区域边缘点剔除。通过这一步可以有效的剔除反光区域的边缘点,使拟合出来的椭圆更为接近瞳孔,进而有效的定位瞳孔中心点。

与现有技术相比本发明具有以下优点:

采用由粗到精的策略,通过逐步剔除误差较大的瞳孔边缘点,进而精确瞳孔中心点。本发明在有遮挡的情况下,可以精确的定位瞳孔中心点。

yolov3速度快,模型简单,可以很好的检测小物体,是一种实时性的目标检测模型;迭代法可以自适应的得到瞳孔区域的二值化阈值,可以有效的提取瞳孔;通过中值滤波可以有效的平滑二值化图像的边缘,进而通过星射线模型可以提取较为准确的瞳孔边缘;扫描线算法可以对瞳孔区域内部的空洞进行有效的填充,可以防止提取的瞳孔边缘点为瞳孔内部的点。

本发明计算量小、速度快,可以较好的满足实时性,瞳孔中心定位精度高,鲁棒性高,可以适用于不同的个体。

附图说明

图1为本发明流程图;

图2为通过yolov3进行瞳孔区域的检测图;

图3为通过迭代法的二值化图;

图4为优化二值化后的瞳孔区域图;

图5为对瞳孔区域内的空洞有效填充图;

图6为星射线边缘点误差图;

图7为剔除遮挡处瞳孔边缘点的图像;

图8为二值化图像离群点的剔除图;

图9为第一次拟合的效果和第二次拟合的效果图;

图10为本发明瞳孔中心点精确检测图。

具体实施方式

实施例1

本发明一种基于星射线的瞳孔中心定位方法,本发明采用1*7的中值滤波模板。

1图片预处理

2瞳孔区域的检测

通过yolov3进行瞳孔区域的检测,检测效果如图2所示:将yolov3检测到的瞳孔区域的中心点作为瞳孔区域内部的点;以瞳孔区域中心点为中心,每隔20°发出射线,得到18个瞳孔边缘点。通过yolov3可以准确高效的检测到瞳孔区域。

3瞳孔区域二值化

在roi区域内通过迭代法求得二值化阈值,算法步骤如下:

1).求出区域内灰度的平均值,记为a,令初始阈值为a;

2).统计大于阈值a的像素平均值记为b,小于阈值a的像素平均值记为c;

3).求出新阈值a=(b+c)/2;

4).若a(k)=a(k+1),则所得即为阈值;否则转2,迭代计算。

通过迭代法的二值化图像如图3所示:

3.1优化二值化后的瞳孔区域

将二值化后的瞳孔区域进行中值滤波,去除边缘的毛糙,使边缘尽可能的光滑。对比如图4所示;从图4可以看出经过中值滤波后瞳孔的边缘变得平滑,减少了后续瞳孔边缘点提取的误差。对反光区域进行填充,通过扫描线算法(从上到下,从左到右)对瞳孔区域内的空洞进行有效的填充。效果如图5所示;从图5可以看出瞳孔内部的区域进行了有效的填充。

4星射线边缘点误差:

眼睑遮挡边缘处的点;反光区域的边缘点;由二值化图像得到的离群点;

分别如图6所示:从图6可以看出为了提高瞳孔中心点的精度,必须剔除这三种瞳孔边缘点。

4.1上眼睑遮挡边缘点的剔除

计算初始瞳孔边缘点之间的斜率h1,h2,h3.......;从图6可以看出,遮挡主要是上眼睑遮挡。为了减少计算量,只计算瞳孔中心以上的边缘点的斜率;眼睑遮挡处的瞳孔边缘点斜率较低,趋近于0。非遮挡处的瞳孔边缘点斜率较高,与遮挡处的边缘点,呈现明显的不同。剔除遮挡处的瞳孔边缘点效果如图7所示;从图7可以看出上眼睑的遮挡点可以较好的剔除。

4.2二值化图像离群点的剔除

瞳孔为近似椭圆,合理的瞳孔边缘点应该符合椭圆的分布;从椭圆中心发射处的射线的斜率应该与瞳孔边缘处的点的切向方向垂直;剔除不与瞳孔中心点发射的射线的斜率不垂直的点;且误差较大的点;效果如图8所示;从图8可以看出较好的提出了该类误差点。

4.3反光区域边缘点的剔除

从图6可以看出反光区域的边缘点无法用斜率进行剔除,先将剔除了误差点的瞳孔边缘点,进行椭圆拟合;因为反光区域的点距离拟合后的瞳孔中心较近;剔除距离瞳孔中心最近的点,进而将其剔除。

第一次拟合的效果和第二次拟合的效果如图9所示;从图9可以看出瞳孔中心点的定位精度得到了提高;剔除前瞳孔中心为[471.203,148.868],剔除后瞳孔中心为[470.726,147.615]。

通过以上三步的剔除,本发明可以精确的检测到遮挡条件下的瞳孔中心点,如图10所示;从图10可以看出本课题的方法高效准确,并且进行了测试,可以较好的满足实时性和鲁棒性的要求。

本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1