我使用OpenCV制作了一个C ++程序,允许使用我的网络摄像头识别我的脸和眼睛。然后,我想确定我的学生的中心,然后确定我的屏幕上的注视点或区域。有谁知道怎么做?请不要我的程序使用简单的计算机网络摄像头。 提前感谢您的建议。
答案 0 :(得分:3)
我认为我的Optimeyes项目在这里:
https://github.com/LukeAllen/optimeyes
做你想要的:瞳孔检测和凝视跟踪。其中包括“理论论文”pdf讨论了操作原理,并参考了其他论文。该项目是使用Python版本的OpenCV编写的,但欢迎您将其移植到C ++!
答案 1 :(得分:1)
如果您要在笔记本电脑屏幕上识别凝视点。然后,下面是您可以使用的方法:
使用shape_predictor_68_face_landmarks.dat,获取眼睛界标(每只眼睛六个点)
根据眼睛界标计算眼睛中心(Ex,Ey)
如果您可以从上述答案或HCT中获得虹膜中心(Ix,Iy)
计算比例因子:W(eye)= Topleftcorner(x)-Toprightcorner(x)
H(眼睛)=左上角(x)-右上角(x)
比例因子R(x)= W(屏幕)/ W(眼睛) R(y)= H(屏幕)/ H(眼睛)
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)
希望这会有所帮助!