1

我使用 OpenCV 制作了一个 C++ 程序,以允许使用我的网络摄像头来识别我的脸和眼睛。然后我想确定我瞳孔的中心,然后确定我屏幕上的注视点或区域。有人知道该怎么做吗?请不要我的程序使用简单的计算机网络摄像头。预先感谢您的建议。

4

2 回答 2

4

我认为我的 Optimeyes 项目在这里:

https://github.com/LukeAllen/optimeyes

满足您的需求:瞳孔检测和注视跟踪。其包含的“理论论文”pdf 讨论了操作原理,并参考了其他论文。该项目是使用 Python 版本的 OpenCV 编写的,但欢迎您将其移植到 C++!

于 2014-08-13T18:06:15.687 回答
3

如果您希望在笔记本电脑屏幕上识别注视点。然后下面是您可以使用的方法:

  1. 使用 shape_predictor_68_face_landmarks.dat,获取眼睛的地标(每只眼睛六个点)

  2. 从眼睛标志计算眼睛中心(Ex,Ey)

  3. 如果您可以从上述答案或 HCT 获得虹膜中心 (Ix, Iy)

  4. 计算比例因子:W(eye) = Topleftcorner(x) - Toprightcorner(x)

H(眼睛) = 左上角(x) - 右上角(x)

  1. 比例因子 R(x) = W(screen)/W(eye) R(y) = H(Screen)/H(eye)

  2. POG (x) = (W(屏幕)/2) + (R(x) *r (x)) POG (y) = (H(屏幕)/2) +(R(y) *r(y))

r(x) 和 r(y) 表示虹膜到眼睛中心的距离,计算如下:

r(x) = COI (x) - COE (x)

, r(y) = COI(y) - COE (x)

希望这可以帮助!!

于 2018-10-22T04:58:08.580 回答