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

  • 本文关键字:opencv c++ opencv
  • 更新时间 :
  • 英文 :


我已经在c++中做了一些opencv编码,我能够使用Haar Cascades来检测面部和眼睛,但现在我被困在如何获得瞳孔坐标,并凝视知道用户在屏幕上看的地方,有什么想法吗?

这个问题很宽泛。请从关键字开始,如凝视跟踪,头部姿势估计,瞳孔检测在谷歌。本文可能会有所帮助,这里有一个运行时示例。

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

接下来,你必须决定如何检测凝视的方向(凝视=头部姿势+眼睛姿势)。让我们专注于眼睛姿势。一种方法是测量从眼中心到瞳孔的二维矢量。位移应该给你方向,但这需要检测眼球的中心。这可能可以通过检测眼角和运行某种校准程序来完成。在任何情况下,你的图像的分辨率应该是相当好的做到这一点。既然你检测到一张脸,我猜落入瞳孔的像素数量是相当小的。

我建议你使用基于图像梯度的眼中心定位算法。

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

就凝视而言,没有"氪石"仍然是一个积极研究的领域。

相关内容

  • 没有找到相关文章

最新更新