eyeLike 眼动追踪指南:用普通摄像头 3 步搭好免费的瞳孔追踪系统 eyeLike 眼动追踪指南用普通摄像头 3 步搭好免费的瞳孔追踪系统【免费下载链接】eyeLikeA webcam based pupil tracking implementation.项目地址: https://gitcode.com/gh_mirrors/ey/eyeLike商业眼动仪报价动辄上万元做眼动交互的第一个门槛往往不是算法而是预算。eyeLike 眼动追踪方案提供了另一条路径一只普通 USB 摄像头、一套 OpenCV 代码就能实时算出双眼瞳孔中心。它是一个 MIT 许可的开源项目底层采用 Fabian Timm 的图像梯度瞳孔定位算法代码量小、结构清晰适合想零成本入门眼动交互的开发者先跑通、再改造。eyeLike 项目定位零硬件成本的 OpenCV 瞳孔追踪参考实现eyeLike 不依赖红外相机或专用传感器只用可见光摄像头画面做瞳孔中心定位算法源自 Fabian Timm 提出的图像梯度瞳孔中心定位方法Timm BarthVISAPP 2011仓库则提供该算法的开发者参考实现并附带实时调试窗口每一步的处理结果都能直接看到。三个特点决定了它适合入门硬件零投入现有 USB 摄像头即插即用支持大多数市售摄像头无需购买专业眼动设备。上手成本低CMake 一条命令链完成编译src/ 目录里入口、算法、工具文件分工明确可以逐文件读懂。完全开源MIT 许可可自由改参数、扩功能也能作为教学与二次开发的基线。原理速览eyeLike 从摄像头画面到瞳孔中心的四个步骤程序对每一帧画面依次做四件事面部检测加载 res/ 目录下的 Haar 级联分类器在灰度图中找出最大的人脸框复杂背景下也能快速锁定位置。眼睛区域提取人脸出现后不再做第二次级联检测而是按几何比例直接切出左右眼区域——顶部偏移 25%、侧边 13%、区域高度 30%、宽度 35%均相对人脸框尺寸。瞳孔中心定位核心一步。按 Fabian Timm 算法先求眼睛区域的图像梯度丢弃低于阈值的弱梯度再用带权重的梯度向量交汇准则对每个候选中心累加投票得分最高处即瞳孔中心最后换算回原始坐标。结果可视化原始画面、面部特写、左右眼特写四个窗口同时打开实时画出人脸框、眼睛框与瞳孔中心圆点便于逐帧判断质量。部署 eyeLike环境安装、编译与首次运行准备编译环境以 Ubuntu/Debian 为例组件版本要求安装命令C 编译器GCC 7.0sudo apt install build-essentialCMake3.10sudo apt install cmakeOpenCV3.4sudo apt install libopencv-dev建议优先使用 OpenCV 3.4.x 系列src/main.cpp 中已包含对 4.x 的兼容处理升级后一般也能正常编译。克隆仓库并编译 eyeLikegit clone https://gitcode.com/gh_mirrors/ey/eyeLike cd eyeLike mkdir build cd build cmake .. make -j4编译成功后可执行文件位于build/bin/eyeLike。运行 eyeLike 并熟悉调试窗口直接运行./bin/eyeLike程序会自动调用摄像头并开始逐帧检测。运行中两个操作值得记住按f保存当前帧为frame.png方便离线复现问题帧按c退出程序。让定位更稳eyeLike 的调优与调试手段追踪质量一半靠环境、一半靠参数光线避免强光直射面部追求均匀照明反光严重时适当调低摄像头曝光。机位摄像头与眼睛保持同一水平线距离 50–70 cm镜头略微下倾可减少镜面反射。参数关键常量集中在 src/constants.h。眼睛区域的四个百分比kEyePercentTop 25、kEyePercentSide 13、kEyePercentHeight 30、kEyePercentWidth 35决定切眼是否贴合人脸偏大偏小时优先调它们kGradientThreshold默认 50.0控制参与投票的梯度强度定位发漂时上调、检测丢失时下调。调试把 kPlotVectorField 置为 true 会额外导出中间结果eyeFrame.png辅助分析再配合 f 键保存整帧可以离线对比不同参数组合的效果。性能降低摄像头分辨率、收紧眼睛检测区域都能减少每帧计算量对实时性要求高时优先处理这两项。eyeLike 能做什么四类典型眼动交互场景游戏交互视线控制角色移动、菜单选择甚至实现看哪打哪的瞄准体验。教育研究分析课堂注意力分布、阅读时的眼球运动模式用注视时长评估学习效果。♿无障碍辅助眼控打字、用眼神操作智能家居、为行动不便者提供非语言沟通通道。驾驶安全通过眨眼频率做疲劳检测、视线偏离道路时预警并用视线控制车载信息系统。选型边界eyeLike 与商业眼动仪、深度学习方案的差异eyeLike 的优势区间是低成本 完全可控不花硬件钱、不依赖 GPU、每一行算法都能改代价是精度与成熟度相对有限。维度eyeLike商业眼动仪深度学习方案硬件成本零复用现有摄像头约 1000–5000 元中等通常需 GPU部署难度低编译即跑中高需训练数据实时性能约 30 fps120 fps 以上依赖硬件定制灵活性完全开源可改封闭系统需数据支持学习曲线平缓简单陡峭另需说明当前能力边界eyeLike 目前输出的是双眼瞳孔中心属于算法参考实现从瞳孔位置换算到屏幕注视点还缺参照点如眼角的完整链路若要直接做注视点定位需要自行补齐这一步。排错清单eyeLike 三类高频问题与处理步骤编译报找不到 OpenCV先用pkg-config --modversion opencv确认库已正确安装再用cmake -DOpenCV_DIR/path/to/opencv ..显式指定路径最后检查环境变量是否生效。摄像头无法打开用ls -l /dev/video0检查设备与权限排除其他程序占用摄像头的情况换一个摄像头索引重试。瞳孔点频繁跳动先改善照明、消除面部反光再调整摄像头高度与角度最后到 src/constants.h 微调眼睛区域比例与梯度阈值。下一步克隆仓库、编译、按 f 存下第一帧带瞳孔点的画面眼动基线就搭好了。之后从 src/constants.h 的参数开始按自己的场景调优想深入算法时src/findEyeCenter.cpp 是梯度投票法的完整实现配合 Readme.md 阅读效率最高。【免费下载链接】eyeLikeA webcam based pupil tracking implementation.项目地址: https://gitcode.com/gh_mirrors/ey/eyeLike创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考