惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
J
Java Code Geeks
爱范儿
爱范儿
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
I
InfoQ
月光博客
月光博客
博客园 - 聂微东
博客园 - Franky
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
L
LangChain Blog
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research

SEISAMUSE

关于博客写作III | Jun Xie 关于博客写作II | Jun Xie 关于定位 | Jun Xie 老鼠记忆 | Jun Xie 关于反演II | Jun Xie 你TMD给我滚 | Jun Xie 你的文档会不会有大量别字 | Jun Xie 捡鸡肉菌 | Jun Xie 关于信念 | Jun Xie 关于道德 | Jun Xie 关于善恶 | Jun Xie 昨天,Codex一周用量用完,我沉默了一会儿 | Jun Xie 世界是一个屎山代码 | Jun Xie 关于关系 | Jun Xie 我的生活观念 | Jun Xie 不用AI生成图片了,unsplash真香 | Jun Xie 关于情绪 | Jun Xie 关于死亡 | Jun Xie 给自己写讣告 | Jun Xie 创造点有意思的东西 | Jun Xie 凡事发生皆有利于我 | Jun Xie Paper Reading (66) | Jun Xie 关于游戏 | Jun Xie 关于世界 | Jun Xie Paper Reading (65) | Jun Xie Paper Reading (64) | Jun Xie 关于博客写作 | Jun Xie Stay Foolish | Jun Xie 关于论文(2) | Jun Xie 关于科研 | Jun Xie
Fish Guard | Jun Xie
2026-05-26 · via SEISAMUSE

作为打工人,是绝对不会在办公室摸鱼的,要是你看到,一定要全当没看到对我教育一番。 当然和我不一样,可能你会忍不住摸鱼,为此我帮你写了一个摸鱼小卫士。它帮你监控门口有没有动静,有没有敲门声。如果有,那它自动就会帮你把桌面切出来。神不知鬼不觉老板肯定看不到。

下面详细介绍一下:

Fish Guard 是一个跨平台桌面小工具。它的用途很直接:用摄像头盯住门口或走廊区域,用麦克风监听敲门声;一旦检测到门口变化或疑似敲门,就自动静音、隐藏当前窗口并显示桌面。

这个项目不是复杂的 AI 系统,而是一个实用型的小自动化工具。它把几个简单但有效的信号组合起来:视频侧使用 ROI 区域的帧间差分,音频侧使用 RMS 能量、频谱质心、低频能量占比和短促脉冲间隔来判断敲门。这样做的好处是依赖轻、运行快,也比较容易根据自己的办公室环境调参数。

主要功能

  • 摄像头实时预览,并支持鼠标框选检测区域。
  • 检测门口区域的明显运动变化。
  • 麦克风监听短促、低频占比较高的敲门声。
  • 触发后自动执行保护动作:静音、隐藏当前窗口、显示桌面。
  • 支持 macOS、Windows 和 Linux。
  • 提供音频样本分析脚本,方便以后继续调敲门检测参数。

使用方式

安装依赖:

pip3 install -r requirements.txt

macOS 或 Linux 上如果需要音频检测,还要先安装 PortAudio。macOS 可以用:

启动:

或者在 macOS/Linux 上运行:

启动后先在摄像头画面里框选门的位置,再点击“开始监控”。如果没有框选区域,也可以选择使用全画面检测,但实际使用时推荐框选门口区域,这样误报会少很多。

实现思路

视频检测部分没有用复杂模型,而是对选中的 ROI 区域做帧间差分。程序会把画面转成灰度、做高斯模糊,然后计算当前帧和上一帧的差异。如果差异区域面积超过阈值,就认为门口发生了明显变化。

音频检测部分也尽量保持可解释。敲门声通常是短促脉冲,而且能量集中在比较低的频段。程序会先做环境噪声校准,然后在实时音频流里检测高于动态阈值的片段,再用频谱质心、低频能量占比、脉冲数量和脉冲间隔过滤掉说话声、音乐声和持续噪声。

跨平台动作封装在单独的系统层里。macOS 使用 AppleScript,Windows 使用系统 API,Linux 优先调用常见桌面工具和音频后端命令。

适用场景和限制

Fish Guard 更适合固定机位、固定办公环境下使用。如果摄像头经常移动,或者门口光线变化很强,就需要重新框选检测区域并降低视频灵敏度。音频检测也会受环境影响,如果办公室里一直有音乐、电视或密集键盘声,可以直接关闭音频检测,只保留视频检测。

这个项目的定位是轻量实用,不追求“识别所有情况”。它更像是一个可以自己调、可以理解、可以快速运行的小工具。

项目地址

GitHub:git@github.com:junxie01/fish_guard.git