找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1426

积分

0

好友

208

主题
发表于 前天 00:09 | 查看: 8| 回复: 0

Moyu 是一款轻量级、跨平台(支持 Windows 和 macOS)的桌面应用,旨在为开放式办公环境提供隐私保护。它能实时监测摄像头画面,一旦检测到多张人脸(默认2人及以上),便会自动切换到您预设的工作软件(如 IDE),并抓拍当前画面留证,有效防范来自背后的“屏幕窥视”。

Moyu 工具界面预览

核心功能

  • 高精度多人脸检测:核心基于 Google MediaPipe 实现稳定、高效的人脸识别,支持多帧连续判断以减少误报,默认仅在检测到多人同屏时触发警报。
  • 实时预览与提示:提供可自由移动、缩放的前置预览窗口,当检测到符合条件的人脸时,窗口会显示醒目的提示文字。
  • 自动切换工作应用:触发后,程序会根据您的配置,自动激活并前置如 VSCode、IntelliJ IDEA 等指定的工作软件窗口,营造“正在专注工作”的假象。
  • 现场抓拍留证:警报触发瞬间,自动保存当前摄像头画面到指定目录,为可能的纠纷提供证据。
  • 托盘静默运行:支持最小化到系统托盘后台运行,触发时通过托盘气泡进行通知(默认显示8秒,支持5-10秒范围设置后自动收起),兼顾提醒与低调。

快速开始

环境准备

该项目使用Python进行开发,请确保已安装 Python 3.9 或更高版本。

  • Windows:建议从 Python 官网下载安装包。
  • macOS:可通过 Homebrew 命令 brew install python 安装。

完成Python环境配置后,克隆项目并安装依赖:

git clone https://github.com/x7722/moyu.git
cd moyu
python -m pip install -r requirements.txt

(在 macOS 上,请使用 python3 命令)。

运行与调试

在项目根目录下执行以下命令即可启动:

python main.py
  • 首次运行时,请根据系统提示允许应用访问摄像头权限。
  • 默认情况下,关闭或最小化主窗口将隐藏至系统托盘(双击托盘图标可恢复窗口,右键选择退出);若在配置中关闭了托盘功能,则关闭窗口即完全退出程序。

灵活的配置管理

程序采用“内置默认配置 + 外部覆盖配置”的模式,易于定制且无需修改源码。

  • 加载顺序:启动时,先加载打包在程序内部的默认 config.yml,再尝试读取与可执行文件(moyu.exemoyu)同目录下的外部 config.yml(或 config.yaml)文件。外部配置文件只需包含您希望修改的字段,其余未配置项将自动沿用内置默认值。
  • 路径格式:在配置文件中,Windows 路径可使用正斜杠 / 或单反斜杠 \(如 C:/Users/you/PicturesC:\Users\you\Pictures),无需使用双反斜杠转义。
关键配置项说明
  • min_faces_for_alert:触发警报所需的最少人脸数量,默认为 2。若希望检测到单人即触发,可修改为 1
  • alert_cooldown_seconds:两次连续触发之间的冷却时间(秒),防止短时间内频繁报警。
  • snapshot.enabled:是否启用抓拍功能;snapshot.directory:抓拍图片的保存目录(若不存在会自动创建)。
  • work_app.active:指定当前生效的目标应用别名;work_app.targets.<别名>.windows_command / macos_command:分别配置在 Windows 或 macOS 系统下用于启动/激活该应用的命令。
  • ui.enable_system_tray / ui.minimize_to_tray / ui.start_minimized:分别控制是否启用系统托盘、关闭/最小化时是否隐藏到托盘、是否启动后直接最小化到托盘。
  • ui.tray_notification_seconds:托盘气泡通知的显示时长,可设置在 510 秒之间。
最小化覆盖配置示例

在与可执行文件同目录下创建 config.yml 文件,内容如下:

min_faces_for_alert: 1
work_app:
  active: idea
  targets:
    idea:
      windows_command: “C:/Program Files/JetBrains/IntelliJ IDEA/bin/idea64.exe”
snapshot:
  enabled: true
  directory: snapshots

此配置将触发条件改为单人检测,并指定触发时激活 IDEA,同时开启抓拍功能并将图片保存在 snapshots 文件夹中。其他所有参数均保持程序内置默认值。

项目打包分发

您可以将项目打包为独立的可执行文件,方便在没有Python环境的机器上使用。

Windows 平台打包
  1. 安装打包工具 PyInstaller(建议在项目虚拟环境中操作):
    python -m pip install pyinstaller
  2. 使用项目提供的 spec 文件进行打包(该 spec 文件已配置好包含内置配置及 MediaPipe 模型数据,并隐藏控制台窗口):
    pyinstaller main.spec
  3. 打包产物位于 dist 目录下的 moyu.exe。将您自定义的外部配置文件 config.yml 与此 moyu.exe 放置于同一目录即可生效。
macOS 平台打包

在 macOS 系统上执行以下命令(无法在 Windows 上交叉编译):

python3 -m pip install pyinstaller
python3 -m PyInstaller --onefile --noconsole --name moyu --add-data “config.yml:.” --collect-data mediapipe main.py

通过PyInstaller打包后,产物为 dist/moyu。首次在 macOS 上运行时若被 Gatekeeper 拦截,可在 Finder 中右键点击该文件并选择“打开”,或自行进行代码签名与公证。




上一篇:HTMX架构实战:如何用HTML over the Wire替换万行JavaScript,简化前端复杂度?
下一篇:xsql实战指南:使用Rust工具实现MySQL、PostgreSQL与SQLite表结构互转
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 17:07 , Processed in 0.147635 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表