眼睛遥控器

本项目基于 Quectel Pi H1智能主控板开发,充分利用其强大的计算能力和多媒体处理能力,实现了低延迟、较高准确率的眼部追踪功能。

眼睛遥控器是一个智能控制系统,通过检测用户眼部状态来控制视频播放:注视屏幕时继续播放,闭眼或离开屏幕时自动暂停。

核心功能:

  • 当检测到用户眼睛睁开并注视屏幕时,系统会自动播放或保持视频播放状态。
  • 当检测到用户闭眼、转移视线或离开屏幕时,系统会立即暂停当前播放的视频。

开发资源汇总

开发配件只是作为参考,不同的开发环境可能会有所差异,比如通过ssh远程连接进行开发,可以不使用USB扩展坞,显示屏也可以根据需要进行替换。

开发配件清单

配件名称 数量 规格参数
Quectel Pi H1 智能主控板 1块 Quectel Pi H1智能生态开发板
USB-C 电源线充电器 1个 27W USB Type-C接口充电器 1.2米线长中规电源PD电源 适用于树莓派5代
Micro HDMI 线 1根 规格:Micro HDMI 2.0;线长:1m;接口:HDMI-A(公头)-HDMI-D(公头)
网线 1根 线长:1m;传输速率:千兆;
CPU 散热风扇 1个 树莓派5代官方原装散热器带导热贴
2PIN PH1.25接口喇叭 1个 2030腔体喇叭8Ω 2W方形喇叭高音质小体积扬声器 2PIN PH1.25接口
扩展坞 1个 绿联 USB3.0扩展器扩展坞
USB摄像头模块 1个 OV5693 USB摄像头模块
显示屏 1个 24英寸HDMI显示器

配件实物参考

快速上手

开发准备

Quectel Pi H1智能主控板出厂默认搭载 Debian 13 系统镜像,因此无需再次烧录镜像,仅需按照如下步骤操作即可。

硬件连接

完成以下所有硬件连接操作,序号与接口示意图保持一致:

  1. 显示连接:将Micro HDMI线一端接入智能主控板的Micro HDMI接口,另一端接入显示器的HDMI接口。

  2. 网络连接:将网线一端接入智能主控板的千兆网口,另一端接入路由器的网口(确保路由器已联网)。

  3. 输入设备连接:将USB键盘、鼠标接入扩展坞的USB接口,再将扩展坞接入智能主控板的USB接口;若用无线输入设备,将接收器插入扩展坞的USB口即可;然后把OV5693摄像头模块接入智能主控板的另一个USB接口。

  4. 供电连接:将USB-A电源线的USB-A端接入电源适配器,USB-C端接入智能主控板的电源口(通常标注POWER IN)。

  5. 散热风扇连接:先将散热风扇的排线插入智能主控板的FAN插槽中,再将散热器两端固定在主控板预留插孔中。

  6. 喇叭连接:将 2PIN PH1.25 接口的喇叭连接到智能主控板的SPK 插槽中。

连接完成参考

完成上述连接后,后续关机或重启过程中无需断开摄像头、扬声器、显示器等已连接配件,保持连接状态即可。

项目实现

  1. 在智能主控板上打开终端,使用git克隆项目代码。
sudo apt update
sudo apt install -y git
git clone https://github.com/Quectel-Pi/demo-eye-remote-control.git

执行完成后,当前目录下应生成demo-eye-remote-control文件夹。

  1. 在智能主控板的终端下依次执行下面命令,终端显示Deployment complete则说明部署完成。
cd demo-eye-remote-control
sudo chmod 755 install.sh
./install.sh

如果执行./install.sh过程中报错,或终端未显示"Deployment complete",请先不要继续执行后续步骤。建议先确认网络连接正常,再返回项目根目录重新执行一次install.sh

  1. 重新打开终端,验证 Python 版本,输出Python 3.10.15则表示安装成功。
python3 --version

运行程序

demo-eye-remote-control路径下执行./start.sh启动脚本。

cd demo-eye-remote-control/
./start.sh

使用说明

基本操作流程

  1. 启动程序: 程序启动后会自动开启摄像头并开始检测。
  2. 加载视频: 点击"选择视频文件"按钮加载想要播放的视频。
  3. 开始观看: 系统会根据您的视线状态自动控制播放/暂停。
  4. 切换模式: 可使用全屏播放模式获得更好的观看体验。

界面功能说明

  • 全屏模式: 点击"F11"或界面上的全屏按钮进入全屏化界面。
  • 全屏播放模式: 全屏播放视频,并根据实时识别结果控制视频播放。
  • 摄像头开关: 可随时开启或关闭摄像头。
  • 检测开关: 可手动启用或禁用眼部检测功能。
  • 标记点显示: 可视化显示眼部关键点和检测结果。

控制逻辑详解

状态 行为 说明
注视屏幕 + 眼睛睁开 继续播放 系统检测到您正在观看
闭眼或视线移开 自动暂停 离开或闭眼时暂停播放
人脸离开摄像头 自动暂停 超过1秒未检测到人脸

常见问题及解决方案

摄像头无法识别

现象:

No available camera device found

解决方案:

  • 检查摄像头是否正确连接到USB接口。

  • 使用命令检查摄像头是否被识别:

    ls -la /dev/video*
    
  • 尝试使用其他USB接口。

  • 如果还是不行,使用USB集线器并连接电源。

  • 重新插拔USB摄像头。

运行main.py提示No module named cv2

现象:

ModuleNotFoundError: No module named 'cv2'

解决方案:

该问题通常表示install.sh未安装成功,请先返回项目根目录重新执行安装脚本:

cd demo-eye-remote-control
./install.sh

应用演示

技术支持与贡献

如在使用过程中遇到问题,欢迎在移远官方论坛 提交技术咨询,我们的技术支持团队将及时为您解答。

项目开源地址:https://github.com/Quectel-Pi/demo-eye-remote-control

欢迎提交 Issue 反馈问题或 Pull Request 贡献代码改进!