news 2026/4/23 10:52:38

树莓派 + YOLOv8:我给自己做了一个“防摸鱼”监控系统,老板来了自动切屏!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派 + YOLOv8:我给自己做了一个“防摸鱼”监控系统,老板来了自动切屏!

🐟 前言:科技是为了更好地生存

作为一名程序员,工作之余偶尔“带薪放松”一下是合情合理的。
但最尴尬的莫过于:当你正打开 Steam 或者 B 站时,老板悄无声息地出现在了你身后。

靠后视镜?太 low。靠听脚步声?太累。
我们要用技术解决问题!
今天,我将手把手教你用树莓派 (Raspberry Pi)加上YOLOv8视觉模型,打造一个全自动防摸鱼防御塔

核心功能:摄像头 24 小时监控门口,一旦识别到“老板”或者“人脸”,立刻向你的电脑发送指令,瞬间切换回 VS Code 代码界面!


🛠️ 系统架构:它是怎么工作的?

我们不把算力浪费在工作电脑上(容易被发现进程),而是把识别任务全部交给树莓派。

硬件清单:

  1. 树莓派 4B / 5(推荐 4GB 内存以上)。
  2. USB 摄像头 / CSI 摄像头(广角镜头最佳)。
  3. 工作电脑(Windows/Mac)。

逻辑流程图 (Mermaid):

1. 视频流输入
2. YOLOv8 推理
Yes (置信度 > 0.8)
No
3. TCP/UDP 指令
4. PyAutoGUI
USB 摄像头
树莓派 (边缘计算)
检测到老板?
Socket 发送端
继续监控
工作电脑 (接收端)
触发 Win+D (回到桌面)

📸 Step 1: 数据集准备(最危险的一步)

要训练一个能识别“老板”的模型,你需要老板的照片。

  • 方案 A (勇士版):直接拿着手机对着老板拍,积累 100 张素材。
  • 方案 B (猥琐版):从公司大合照、监控录像、或者他路过时偷拍。

标注数据:
使用LabelImgRoboflow进行标注。

  • Label:boss(老板)
  • Label:human(普通同事,可选,用于二级预警)

🧠 Step 2: 训练 YOLOv8 模型

为了在树莓派上跑得动,我们选择最轻量级的YOLOv8n (Nano)版本。

本地电脑训练代码 (GPU):

fromultralyticsimportYOLO# 1. 加载预训练模型model=YOLO('yolov8n.pt')# 2. 训练 (指向你的数据集 yaml 文件)# epochs=50 差不多够了,imgsz=640results=model.train(data='boss_dataset.yaml',epochs=50,imgsz=640)# 3. 导出为 NCNN 或 ONNX 格式 (关键!树莓派跑不动 PyTorch 原生格式)model.export(format='ncnn')

训练完成后,你会得到一个best.pt(或者导出后的best_ncnn_model),把它拷贝到树莓派上。


🍓 Step 3: 树莓派部署 (核心代码)

在树莓派上,我们需要安装ultralyticsopencv-python

detector.py(运行在树莓派):

importcv2fromultralyticsimportYOLOimportsocketimporttime# 1. 加载模型model=YOLO("yolov8n.pt")# 建议使用导出后的 ncnn 模型以提速# 2. 初始化网络发送端 (发给电脑)PC_IP="192.168.1.100"# 你电脑的 IPPORT=8888client_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)# 3. 打开摄像头cap=cv2.VideoCapture(0)# 降低分辨率以提高 FPScap.set(3,640)cap.set(4,480)print("🛡️ 防摸鱼系统启动中...")whileTrue:ret,frame=cap.read()ifnotret:break# 4. 推理results=model(frame,stream=True,conf=0.6)# 置信度设高点,防止误判forrinresults:boxes=r.boxesforboxinboxes:cls=int(box.cls[0])label=model.names[cls]# 5. 核心判断逻辑iflabel=='person':# 如果你训练了专门的 boss 类,这里写 'boss'print("⚠️ 警报!检测到目标!")# 发送指令给电脑msg="BOSS_IS_COMING"client_socket.sendto(msg.encode(),(PC_IP,PORT))# 冷却时间,防止一直切屏闪瞎眼time.sleep(5)# 可选:显示监控画面 (会降低性能,建议无头运行)# cv2.imshow('Surveillance', frame)# if cv2.waitKey(1) & 0xFF == ord('q'): breakcap.release()

💻 Step 4: 电脑端接收与自动切屏

在你的工作电脑上,运行一个微小的 Python 脚本,监听树莓派发来的信号。

receiver.py(运行在电脑后台):

importsocketimportpyautogui# 自动化控制库# 绑定监听端口server_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)server_socket.bind(("0.0.0.0",8888))print("👨‍💻 工作模式已就绪,等待指令...")whileTrue:data,addr=server_socket.recvfrom(1024)msg=data.decode()ifmsg=="BOSS_IS_COMING":print("💥 收到警报!执行紧急切屏!")# 方案 A: 最小化所有窗口,回到桌面pyautogui.hotkey('win','d')# 方案 B: 切换到上一个应用 (比如写好的代码页面)# pyautogui.hotkey('alt', 'tab')

⚡ Step 5: 性能优化 (让树莓派跑得飞起)

树莓派 4B 直接跑 YOLOv8n 大概只有 1-3 FPS,这延迟太高了,等识别出来老板已经站你背后了。

优化方案:

  1. 模型量化:使用Int8量化。
  2. 导出格式:不要直接用.pt
  • NCNN:腾讯开源的框架,专门针对 ARM 优化,在树莓派上能跑到 10-15 FPS。
  • ONNX Runtime:比 PyTorch 原生快不少。
  1. 超频:给树莓派加个风扇,超频到 2.0GHz。

优化后的流程图:

Export
NCNN Convert
部署
PyTorch (.pt)
ONNX 格式
NCNN (.bin/.param)
树莓派 FPS 提升 300%

📝 总结与风险提示

通过这个项目,你不仅学会了YOLOv8的训练与部署,还掌握了Socket 网络编程树莓派硬件控制。这可是实打实的“全栈”技能!

⚠️ 风险提示:

  1. 误判风险:如果把打扫卫生的阿姨识别成老板,你的屏幕会疯狂闪烁。
  2. 职场风险:如果被老板发现你在做这个东西… 呃,你最好解释说这是为了**“保护公司资产安全”**。

祝大家的摸鱼生涯,安全,且高效。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 21:20:33

TG:@qunkong001 在电销行业,你是否还在为传统手机卡外呼被封而苦恼?

在电销行业,你是否还在为传统手机卡外呼被封而苦恼? 其实有一种神奇的系统正悄然改变着传统外呼模式,它就是SIP线路电销系统。 当下行业日益规范,传统手机卡外呼面临着严峻的封号风险。 高频呼出和客户投诉成了封卡的两大“杀手”…

作者头像 李华
网站建设 2026/4/18 0:33:01

HoRain云--Linux安装iniparser库:3分钟搞定超详细教程

🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …

作者头像 李华
网站建设 2026/4/19 11:21:38

保障核心动力:A1A10000428.00M原装备件的重要性

在工业高压变频驱动领域,西门子罗宾康品牌以其卓越的性能与可靠性著称。而作为其关键组成部分的配件——编号A1A10000428.00M,更是整个系统稳定运行的基石。此专用备件并非普通替代品,它是为确保罗宾康变频器长久保持最佳性能而设计的原厂核心…

作者头像 李华
网站建设 2026/4/20 2:09:30

企业工资管理|基于java + vue企业工资管理系统(源码+数据库+文档)

企业工资管理 目录 基于springboot vue企业工资管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue企业工资管理系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/4/17 20:47:50

医疗知识问答系统搭建实录——使用Kotaemon全过程

医疗知识问答系统搭建实录——使用Kotaemon全过程 在三甲医院的智能导诊台前,一位老年患者正皱着眉头询问:“我有糖尿病,能吃阿胶吗?”传统客服机器人只能机械回复“请咨询医生”,而新一代系统却能立刻调取《中国2型糖…

作者头像 李华