news 2026/3/1 14:29:00

树莓派 + 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/2/26 23:04:44

一块8088单板机,桌面上的技术玩具

我的书桌左上角,常年搁着一块巴掌大的墨绿色电路板。在双屏显示器、机械键盘和无线充电座的包围中,它显得如此突兀——四十年前的8088单板机,像一位误入数字盛宴的旧时代绅士,沉默地躺在3D打印的亚克力底座上。 一、时光的琥珀这…

作者头像 李华
网站建设 2026/3/1 3:53:52

数字签名与数字证书

在介绍数字签名和数字证书前,先简单了解两个算法:Hash算法和RSA算法。 Hash算法:Hash算法是将可变长度的数据块M作为输入,产生固定长度的Hash值(或者叫做摘要)。可以将Hash算法看作一个非常复杂的CRC算法&…

作者头像 李华
网站建设 2026/3/1 20:10:56

国密算法全家桶:一文认清 SM 系列 “安全卫士”

一、除了加密还能干嘛 加密技术主要分为三大类:对称加密、非对称加密 和 哈希算法。 加密不仅仅是加密数据那么简单,已经被玩出花来了 在当前数字化时代,无论是支付缴费、身份认证还是业务数据处理,都需要密码技术构筑安全屏障…

作者头像 李华
网站建设 2026/2/22 6:19:10

RocketMQ的事务消息是如何实现的?

RocketMQ 通过 TransactionListener 接口实现事务消息机制,其工作流程如下:发送半消息首先向 Broker 发送一条半消息(状态标记为"prepared"),该消息会被存储在事务日志中但暂不可消费。执行本地事务半消息发…

作者头像 李华
网站建设 2026/2/27 8:29:10

招标平台最难的战斗:在持续变化中保持数据稳定与精准

招标平台的“动态数据治理”:如何应对政策变化、源站改版与信息规范的持续挑战? 一个稳定的招标信息服务平台,其后台并非一成不变。相反,它运行在一个充满动态变化的环境中:采购政策频繁调整、各级官方招标公告网改版…

作者头像 李华