如何在c ++中使用opencv检测瞳孔和凝视?

时间:2014-03-24 21:38:56

标签: opencv

我在c ++的opencv中做了一些编码,我能够使用Haar Cascades来检测脸部和眼睛,但现在我不知道如何获得瞳孔坐标,并注视知道用户在哪里看屏幕,任何想法??

3 个答案:

答案 0 :(得分:1)

问题非常广泛。请从谷歌的凝视跟踪,头部姿势估计,瞳孔检测等关键字开始。 This文章可能会有所帮助,here's运行时的一个示例。

答案 1 :(得分:1)

您可以通过拟合椭圆或圆形到渐变图像来检测瞳孔。如果数据太嘈杂,您可以从HoughCircles()开始。

接下来,您必须决定如何检测凝视方向(凝视=头部姿势+眼部姿势)。让我们专注于眼睛姿势。 一种方法是在2D中测量从眼睛中心到瞳孔的矢量。位移应该给你方向,但这需要检测眼球的中心。这可以通过检测眼角并运行某种校准程序来完成。在任何场合,你的图像分辨率都应该很好。由于您检测到一张脸,我猜入落入瞳孔的像素数量非常小。

答案 2 :(得分:0)

我建议你使用基于图像渐变的眼睛中心定位算法。

Tristan Hume在OpenCV中的实现可以在这里找到 - http://thume.ca/projects/2012/11/04/simple-accurate-eye-center-tracking-in-opencv/

就凝视而言,没有'氪石'仍然是一个活跃的研究领域。