任何眼动跟踪器所必需的事情之一是准确跟踪眼睛中心。这简单的可以理解为先找到了你最感兴趣的区域。方法是用图像梯度和点积来创建理论上在图像最突出的圆的中心处最大的函数。
参考论文如下:
德国的一篇文章
这个是我使用有道翻译转的文章
在这个追踪眼球中心的事情上面有三种方法:
文章给出一种基于特征的方法,可以有效的准确定位和跟踪低分辨率图像和视频的中的眼中心。
我们的工作:给出了一种眼中心定位的方法,将圆形或者半圆形的总线定义为大多数图像梯度相交的位置。而且结合眼睛外观这个先验性的知识,增加了模型的鲁棒性。利用了一些后处理的手段,以减少眼镜存在时,或者眼镜反光或者眉毛突出时的问题。
这个算法是一个多阶段的过程,先通过人脸检测器,根据面部粗略的提取眼睛的位置,然后估计眼睛的中心。
一个人工的例子,黑圈类似于虹膜与角膜
嘿嘿,就像这样
左边的位移向量di和梯度向量gi没有相同的方向,右边有。
在几何上面,圆形物体的中心可以通过分析图像梯度的矢量场来检测,这在以前已经用于眼睛中心定位。
Kothari 和 Mitchell 提出了一种方法,该方法利用了由于虹膜和巩膜之间的强烈对比而产生的流场特性(Kothari和 Mitchell,1996)。他们利用每个梯度向量的方向在整个图像中画出一条线,并且每当这样的线经过它时,他们就增加一个累加箱。因此大多数线相交的累加箱代表估计的眼睛中心。然而它们的方法仅在离散图像空间中定义,并且缺少数学公式。此外,他们没有考虑由于眉毛、眼睑或眼镜而出现的问题。
中心使用十字标记,后面分别是目标函数二维和三维处的最大值
(小声BB,原文有公式解释,这里就不重复写了)
这个函数描述向量场特征的,描述了所有图像梯度的可能中心和方向之间的关系。
c是可能的中心,g是每一个梯度向量
d是位移向量,一看就是归一化的方程,以便让所有位移向量 d;缩放到单位长度,以便为所有像素位置获得相等的权重。
为了提高对光照和对比度线性变化的鲁棒性,梯度向量也应该缩放到单位长度。
通过只考虑具有显著幅度的梯度向量,即忽略齐次区域中的梯度,可以降低计算复杂度。为了获得图像梯度,我们计算偏导数gi:
真丑
但其他计算图像梯度的方法不会显著改变目标函数的行为。
在某些条件下,最大值没有很好地定义,或者存在局部极大值导致错误的中心估计。
例如,主眼脸和睫毛或皱纹加上虹膜和巩膜之间的低对比度,会导致错误的估计。
因此,我们建议合并关于眼睛的先验知识,以增加鲁棒性。由于瞳孔通常比巩膜和皮肤暗,我们应用权重 w。对于每一个可能的中心 c,使得暗中心比亮中心更有可能。将这一点整合到目标函数中会得到:
Wc是:
就是一处的灰度值
demo使用C++编写,我还有写Python版本,慢慢分享
这个算法满足:
处理低分辨率图像。
能够实时运行。
用高中水平的数学知识来实现它
足够准确才能用于注视跟踪
今天去Pupils看见了新的眼动仪:
新版的鼻托部位
世界相机
后面还是连着计算使用的线
前景
设计的几种眼镜样子,救命啊,太好看了