从 Laravel 到树莓派
从 Laravel 到树莓派:我做了个带 YOLO 人体检测的监控小玩意
最近工作之余做了个有意思项目:基于树莓派搞了个智能监控系统,能实时视频流 + 人体检测 + 系统状态监控,还做了个前端页面展示所有状态,取名 —— 云瞳守护派。
作为一个 PHP 出身、平时在 Laravel 里打滚的人,其实这是我第一次真正地、系统地碰 Python + 计算机视觉 + 物联网设备。算是一次脱离舒适区的尝试,也想借这个机会和大家分享一下「Laravel 之外的成长」。
演示体验-1: yt-live.zhkugh.top
演示体验-2: live.zhkugh.top
🎯 项目目标
搞个能跑在树莓派上的本地智能监控系统,具备以下功能:
- ✅ 摄像头实时画面
- ✅ YOLO 模型识别人形
- ✅ 系统状态实时展示(CPU、内存、温度)
- ✅ 前端 Web 页面展示
- ✅ 稳定不卡死
就一个念头:不求完美,但得好用,能跑起来。
🛠 技术栈拼图
硬件:
- Raspberry Pi5
- 官方摄像头模块(Picamera2)
- 散热器 + Type-C 电源
软件:
层级 | 技术点 |
---|---|
后端 | Python3, OpenCV, YOLOv8 (Ultralytics), psutil |
摄像头控制 | Picamera2 |
视频流 | MJPEG 编码,HTTP 服务 |
前端 | HTML + Tailwind CSS + JavaScript + WebSocket |
通信协议 | HTTP / WebSocket / MJPEG |
🧩 核心功能实现
1. 视频流处理
- 使用
Picamera2
初始化摄像头 - 输出 MJPEG 视频流,压缩后挂在 HTTP Server 上
- 前端通过
<img>
标签访问
2. 人体检测(YOLO)
- 使用 Ultralytics YOLOv8 预训练模型
- 每帧画面实时检测人体目标
- 绘制识别框返回前端
3. 系统状态监控
- 利用
psutil
获取以下数据:- CPU 使用率
- 内存占用
- 磁盘状态
- 树莓派温度
- 通过 WebSocket 实时推送到前端
4. Web 界面展示
- 使用 Tailwind CSS 做响应式界面
- 实时视频流 + 系统状态信息面板
- 自动重连 + 错误提示
🚀 应用场景
- 家庭安防监控
- 办公室值守监控
- 智能家居集成
- 教育 / 演示项目
🤯 Laravel 人做这个的感受
学 Laravel 久了,我们习惯了 MVC、Blade、Eloquent、Request-Response 的世界。
搞这个项目之后我意识到,有些事情是 Web 项目里遇不到的:
方面 | Laravel | 云瞳守护派 |
---|---|---|
响应模式 | 请求 - 响应 | 持续流(视频 / 数据) |
模型 | ORM | AI 模型(YOLO) |
调试 | 日志 / Telescope | 摄像头画面 + 帧率/FPS |
性能瓶颈 | DB / I/O | 树莓派温度 / CPU / 帧处理速度 |
✅ 总结
这个项目技术上不算多硬核,但它让我作为一个写 Laravel 的人,有机会脱离传统 Web 项目的模式,接触了 AI、摄像头、边缘计算这些“真实世界”的东西。
如果你是 PHP / Laravel 背景,也许你也有点累了写表单、做后台。
试试搞点不一样的玩意,真的挺爽的(虽然一开始会有点崩 )。
如果你也做了什么 Laravel 外的“跨界探索”,也欢迎分享,咱们抱团进化~
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: