【创意智造组】Mind+ V2目标检测模型训练之健康距离卫士
【项目简介】
你是否经常不自觉地凑近屏幕,直到眼睛酸了才反应过来?这个项目就是为你准备的。
我利用Mind+ 2.0训练了一个人脸目标检测模型,并部署在行空板M10上。通过连接在行空板上的摄像头,系统会实时检测人脸出现在画面中的大小——也就是计算目标检测框的大小。当人脸离摄像头太近时,检测框会变得很大,这时蜂鸣器就会发出提醒声音,提示你退后,保持健康的用眼距离。
项目亮点
核心技术:采用目标检测技术,通过边界框大小反推物体距离,原理简单但有效
硬件部署:模型部署在行空板M10上,无需电脑,可独立运行
健康关怀:专为长时间使用屏幕的人群设计,帮助养成良好用眼习惯
完整流程:涵盖数据采集、模型训练、硬件部署到实际应用的完整AI项目开发链路
实现逻辑:摄像头实时采集画面 → 目标检测模型识别人脸并返回边界框 → 程序计算框的宽度/高度 → 超过设定阈值则触发蜂鸣器报警
这个项目不仅是一个实用的健康工具,也是学习目标检测技术从训练到硬件部署的完整范例。你可以轻松替换检测对象,比如检测书本、手机等,实现更多距离监测场景。
【模型训练】
一、创建训练项目
打开Mind+ V2,点击左侧“模型训练”,选择“目标检测”任务,创建新项目命名为“人脸距离检测”。
二、采集训练数据
关键技巧:直接用电脑摄像头采集。在哪里使用就在哪里采集,保证训练数据和实际运行环境一致。
操作步骤:
1.在训练界面选择“摄像头”模式
2.确保摄像头对准自己
3.点击“采集”按钮拍摄照片
4.建议采集100-200张包含人脸的图片
采集技巧:
不同距离:分别在30cm、50cm、80cm、100cm等不同距离拍摄
不同角度:正面、稍微侧脸、抬头、低头各拍一些
不同光线:白天、晚上、灯光下各拍一些
不同背景:在桌面、书架前、白墙前各拍一些
不同人:如果可能,让家人朋友也参与采集,增加多样性
建议采集数量:150-200张,约15分钟完成。
三、标注数据
标注是目标检测任务的关键步骤,需要为每张图片中的人脸画框。
操作步骤:
1.在标注界面左侧选中“face”标签
2.用鼠标在图片中的人脸周围绘制矩形边界框
3.边界框要完整包裹人脸,紧贴人脸边缘但不要过紧
4.如果图片中有多个人脸,全部标注出来
标注注意事项:
边界框尽量贴合人脸轮廓,不要包含太多背景
如果人脸模糊或太远太小,可以跳过这张图片不标注
每张图片标注后检查一下框的位置是否准确

四、训练模型
1.点击“训练模型”按钮
2.等待训练完成,通常需要3-5分钟
3.观察训练结果:准确率建议达到85%以上

五、模型校验
单张图片测试:
1.选择“文件”模式
2.上传一张没有训练过的人脸照片
3.观察模型是否能正确检测出人脸并画出边界框
实时测试:
1.切换到“摄像头”模式
2.将人脸对准摄像头,从远到近慢慢移动
3.观察绿色边界框是否始终跟随人脸
4.检查边界框大小是否随距离变化而变化(近大远小)
模型优化(如果测试效果不理想):
识别不到人脸:补拍更多不同角度、不同光线的图片
边界框不准确:检查标注是否精确,重新标注不准确的图片
六、导出模型
点击“导出模型”按钮,保存模型压缩包到电脑上。后续部署到行空板M10时会用到这个模型文件。
七、训练数据参考
| 数据类型 | 建议数量 | 采集时间 |
|---|---|---|
| 人脸图片 | 150-200张 | 约5分钟 |
| 标注耗时 | 150-200张 | 约20-30分钟 |
| 训练耗时 | - | 约3-5分钟 |
八、常见问题与解决
| 问题 | 可能原因 | 解决办法 |
|---|---|---|
| 远距离检测不到 | 训练时缺少远距离样本 | 补拍距离1米以上的图片 |
| 侧脸检测不到 | 训练时缺少侧脸样本 | 补拍左右侧脸图片 |
| 光线暗时检测差 | 训练时缺少暗光样本 | 补拍不同光线条件的图片 |
| 边界框抖动 | 标注不一致 | 检查并统一标注标准 |
九、关键心得
1.距离检测的原理:模型不直接输出距离,而是输出边界框的坐标。通过计算边界框的宽度和高度,就可以反推人脸到摄像头的距离。框越大,距离越近。
2.训练数据要覆盖实际使用场景:如果你打算把这个项目放在书桌上用,训练时就在书桌位置采集数据,光线条件也尽量模拟实际使用时的样子。
3.一个类别的好处:只检测人脸,模型训练更快,准确率更高,适合初学者快速完成一个完整的目标检测项目。
【编程调试】
一、整体流程
在行空板M10上部署模型,通过摄像头实时检测人脸,计算人脸边界框的大小来判断距离。当人脸离摄像头太近时,蜂鸣器发出声音提醒。整个过程不需要连接电脑,行空板独立运行。
二、核心编程逻辑
1.加载模型
在Mind+中切换到上传模式,选择行空板M10作为设备。使用“加载模型”积木,导入之前训练好的目标检测模型文件。
2.初始化硬件
打开连接在行空板上的摄像头,设置蜂鸣器的引脚。摄像头负责采集画面,蜂鸣器负责发出提醒声音。

3.循环检测
使用“重复执行”积木,不断从摄像头获取画面,调用模型进行目标检测。模型会返回检测到的人脸位置信息,包括边界框的x坐标、y坐标、宽度和高度。

4.计算距离并判断
检测到人脸后,获取边界框的宽度值。宽度越大,表示人脸离摄像头越近。设定一个阈值,比如边界框宽度超过200像素,就认为距离太近。

5.触发提醒
当判断距离太近时,让蜂鸣器发出声音。可以设置连续提醒,直到人脸后退到安全距离。为了避免频繁误报,可以增加一个延时:连续检测到距离太近超过1秒才触发提醒。

6.显示调试信息
在行空板的屏幕上实时显示检测结果:是否检测到人脸、边界框大小、当前距离状态。这样方便调试和观察效果。

三、编程小技巧
1.防误报:不要一检测到距离太近就马上报警,而是连续检测到3次或持续1秒后再报警,避免因为短暂前倾就误报。
2.调试模式:初期可以把边界框的宽度值显示在屏幕上,自己前后移动观察数值变化,找出合适的触发阈值。
3.节能设计:可以设置一个休眠逻辑,比如连续30秒没检测到人脸就降低检测频率,节省电量。
提示音区别:蜂鸣器可以发出不同的声音,距离太近时用急促的声音,恢复正常时用一声短促提示音。
四、常见问题
检测速度慢:降低检测频率,比如从每帧检测改为每5帧检测一次
误报警:提高距离阈值,或者增加连续检测确认机制
屏幕显示卡顿:减少屏幕刷新内容,只显示关键信息
附件


