跑步机是健身房中常见的健身器材,但同时也伴随着一定的安全风险。跌倒是最常见的事故之一,可能导致严重的伤害。传统的跑步机设计中,紧急停止夹是一个重要的安全措施,它通过拉动夹子上的绳子来立即停止跑步机。然而,这种方法并不能预防跌倒本身,只能在跌倒发生后迅速停止跑步机,以减少进一步的伤害。随着计算机视觉技术的发展,有了一种新的方法来提高跑步机的安全性,即通过自动识别跑步者的状态来控制跑步机的启动和停止。
在Roboflow的入职项目中,利用计算机视觉技术来识别跑步者在跑步机上的状态。当检测到跑步者的鞋子或膝盖不再出现在摄像头视野中,而跑步机仍在运行时,系统会自动触发停止事件。这种方法可以有效地减少因跌倒而造成的事故。通过下面的视频,将详细介绍项目以及它是如何工作的。
整个系统的工作流程包括以下几个步骤:首先,从本地存储的视频中提取单个图像;其次,建立分类标签格式;然后,使用在Roboflow上训练的模型对每张图像进行推理,包括触发事件;最后,生成一个由所有图像组成的输出视频,直到触发事件,并添加一个最终的STOP帧。
为了构建这个应用的模型,通过将手机固定在跑步机控制台底部,摄像头朝向跑步机,录制跑步者的视频来收集数据。收集了不同型号跑步机和不同跑步者的数据。训练了一个物体检测模型,但实际上还有几种方法也可以达到类似的效果。例如,训练一个分类模型也可以识别出某一帧中是否有跑步者。
# 示例:标注图像,显示膝盖和脚部,这是跑步机上有人的指示
from roboflow import Roboflow
import cv2
# 初始化Roboflow客户端
rf = Roboflow("your_api_key")
# 加载模型
model = rf.model("your_model_name")
# 读取图像
image = cv2.imread("path_to_image.jpg")
# 使用模型进行推理
predictions = model.predict(image)
# 打印预测结果
print(predictions)
在训练模型后,获得了90.8%的mAP分数。还使用了多种预处理和增强过滤器来提高模型的性能,包括自动定向、静态裁剪、调整大小、旋转、模糊、裁剪和边界框翻转。
接下来,建立了一个机制来识别何时不再检测到物体,并触发事件。通过调用Roboflow模型API,并在一组图像上运行模型来实现这一点。当在图像中检测到物体时,循环继续运行。当在图像中不再检测到物体时,系统开始计数。如果连续的图像中没有检测到物体,就会停止系统并触发事件。这很重要,因为不希望模型错过一个物体就导致停止事件发生。
为了使这个系统准备好投入生产,需要提高模型的准确性并改善硬件设置。如上所述,训练一个分割模型可能是填补模型性能差距的最佳方法。这个例子虽然肯定适用于健身器材领域,但也可以抽象出来,更好地想象计算机视觉和触发事件如何在各种行业中构建产品和流程。一个立即想到的行业是物理安全领域。一个监控房间的摄像头,如果检测到不应该在那里的人,可以触发警报并发送警告通知给所有安全成员。