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

推荐订阅源

MongoDB | Blog
MongoDB | Blog
B
Blog
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
博客园 - Franky
V
V2EX
IT之家
IT之家
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
F
Fortinet All Blogs
I
InfoQ
云风的 BLOG
云风的 BLOG
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog

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