1. 项目背景与核心需求
在建筑施工现场,安全帽佩戴是保障工人生命安全的基本要求。传统的人工巡检方式存在效率低、覆盖面有限等问题。作为一名计算机专业的学生,我决定利用机器视觉技术开发一套自动化危险源识别系统。
这个系统的核心目标是通过手机摄像头实时检测施工人员是否佩戴安全帽。选择这个方向主要基于三个考虑:首先,Android手机普及率高,部署成本低;其次,YOLO等目标检测算法已经相当成熟;最后,学校实验室正好有相关硬件设备支持。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体技术栈选型
整个系统采用典型的三层架构:
- 前端:Jetpack Compose(Android)
- 后端:Django(Python)
- 管理后台:React(JavaScript)
选择这些技术主要基于以下考量:
- Jetpack Compose是Google官方推荐的现代Android UI框架,声明式编程范式更适合实时图像处理场景
- Django提供了完善的ORM和Admin功能,适合快速构建数据管理后台
- React生态丰富,组件化开发效率高
2.2 数据流设计
系统工作流程如下:
- 手机摄像头采集视频流(30fps)
- 每帧图像通过YOLOv5s模型推理(500ms/帧)
- 检测结果实时标注显示
- 关键帧和检测数据上传至Django后端
- React后台进行数据可视化管理
3. 核心功能实现
3.1 Android端实时检测
图像采集使用CameraX API,这是目前最稳定的Android相机解决方案。关键配置参数:
kotlin复制val imageAnalysis = ImageAnalysis.Builder()
.setTargetResolution(Size(640, 640)) // 匹配模型输入尺寸
.setBackpressureStrategy(STRATEGY_KEEP_ONLY_LATEST)
.build()
模型推理采用NCNN框架,相比TensorFlow Lite有更好的ARM CPU优化。模型转换命令:
bash复制./ncnnoptimize yolov5s.param yolov5s.bin yolov5s-op
