algorithm - 眼动追踪 : finding the pupil (x, y)

标签 algorithm matlab opencv computer-vision eye-tracking

我正在寻找有关如何解决以下计算机视觉问题的一些建议。 以下是我正在使用的眼动追踪数据集的 4 个样本。我想编写代码拍摄一张这样的图像并计算瞳孔中心的 (x,y) 位置。我目前正在使用 MATLAB,但我也愿意使用其他软件。

有人可以推荐我可以用于此任务的方法吗?以下是我已经尝试过但效果不佳的一些方法。

  • 我尝试使用圆霍夫变换,但这需要我猜测瞳孔的半径,这有点问题。此外,由于扭曲,瞳孔并不总是恰好是一个圆,这可能会使这种方法更加困难。
  • 我尝试根据像素亮度对图像进行阈值处理,并使用 regionprops MATLAB 函数来寻找大约(比如)200 像素区域且偏心率极低(即尽可能呈圆形)的区域。然而,这对阈值非常敏感,根据光照条件,眼睛的某些图像比其他图像更亮。 (请注意,下面的 4 个样本已经进行了均值归一化处理,但其中一张图像总体上比其他图像更亮,可能是因为某处有一些非常暗的随机像素)

如有任何意见/建议,我们将不胜感激!

编辑:感谢 Stargazer 的评论。理想情况下,该算法应该能够确定瞳孔不在图像中,就像最后一个样本的情况一样。如果我暂时忘记它,这没什么大不了的。如果它给我错误的答案,那就更糟了。

alt text

最佳答案

我不确定这是否对您有帮助,因为您正在使用数据集并且我不知道您是否灵活/需要更改捕获设备。以防万一,我们走吧。

Morimoto et al.使用漂亮的相机技巧。他们制造了一个带有两组红外线 LED 的相机。第一组放在相机镜头附近。第二个远离镜头。使用不同的频率,两组 LED 在不同的时刻点亮。

视网膜会反射相机镜头附近的光线(这与摄影中的红眼问题相同),产生明亮的瞳孔。另一组 LED 将产生一个黑色瞳孔Compare the results .所以,两幅图像之间的简单差异会给你一个近乎完美的瞳孔。看看 Morimoto 等人探索glint(很容易接近视线方向)的方式。

关于algorithm - 眼动追踪 : finding the pupil (x, y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974082/

相关文章:

c++ - OpenCV: ‘SiftDescriptorExtractor’ 未在此范围内声明

android - 如何在Android中使用opencv自动裁剪从相机拍摄的名片图像

c++ - 找到包含 200000+ 个元素的 2 个数组元素的最小乘积的最快方法

algorithm - 找到具有给定电阻的电路

algorithm - Matlab 中的排列函数

python - Matlab pyversion 命令找不到 python3.4 的库

image - CV - 提取两个图像之间的差异

计算未排序数据中唯一对和非唯一对实例的数量

algorithm - 从图像中提取稳健的线

Matlab:索引向量值与固定值相同