APP下载

基于YOLOv5的坐姿监测系统设计

2023-04-27宋雨璇赵昱张晶莹郭美瑶黄少年陈荣元

电脑知识与技术 2023年8期
关键词:目标检测

宋雨璇 赵昱 张晶莹 郭美瑶 黄少年 陈荣元

关键词:YOLOv5;目标检测;坐姿监测

中图分类号:TP39 文献标识码:A

文章编号:1009-3044(2023)08-0022-04

“坐姿”作为人们生产生活最常用的姿态,与人们身体健康密切相关。坐姿不正确是导致青少年近视率持续上升的重要原因之一,根据国家学生体质与健康调研结果表明,我国各学段学生近视率持续上升,7~12岁小学生、13~15岁初中生、16~18岁高中生视力不良率分别为45.71%、74.36%、83.28%[1],同时长期不良的坐姿可能会导致成年人脊柱弯曲,经受腰肌劳损,颈椎酸痛麻木等疾病折磨。因此,对人体坐姿进行研究及制定合理解决方案,对人们的生产生活具有重要意义。

1 研究现状

目前在坐姿监测方面,随着人工智能红外技术发展愈加成熟,智能检测已逐步取代了物理监测。现存的坐姿监测产品主要分为两大类:物理机械监测和智能监测[1-3]。

1.1 第一代的物理机械监测

第一代物理机械监测属于依靠机械产品对坐姿进行距离检测。如:尼德视力保护架等,该类产品主要通过改变支撑杆的尺寸,调节桌面到下巴和桌子边缘到胸口的距离,以使得人体保持正确的头桌距离,防止驼背。但此类机械式产品含有调节烦琐、体积过大、不易携带以及安装困难等通病。

其他的机械监测产品主要借力于各类传感器以托靠式支撑为主[1],如孙明扬等人发明的基于压力传感器的坐姿矫正器,由矫正主支架、左矫正小支架、右矫正小支架和传感器构成,包含8个传感器点。根据两眼与书本保持一尺的距离,胸部与书桌保持一拳的距离,握笔的手指离笔头一寸的距离对人体坐姿进行检测。

这种检测方式限制性比较强,不适用所有人群,且调整方式困难,不利于安装和携带。

1.2 第二代现代智能监测

第二代矫正以穿戴式智能检测产品为主。以比较成熟的背背佳品牌为例,该品牌在2017年推出的背背佳新U+智能矫正带便具有电子矫姿的功能。当使用者穿戴后如出现坐姿不规范,它就会通过发出震动进行提醒,同时,使用者还可以通过手机app来观察脊柱弯曲的状况。但是,该产品的角度检测传感器都集中在一块PCB板上,日常使用过于烦琐,并且面向群体过于单一,只针对青少年。

综上,第二代产品相较于第一代物理机械产品舒适度有所提高,但依旧存在不适感,且成本较高。

以上两代坐姿监测产品都存在致命缺点:舒适度低、束缚感强,使用不便,均存在一定的局限性。

2 系统设计

本系统由软硬件结合实现,主要包括3个模块:图像采集模块、异常检测模块、提醒输出模块。如图1所示:

系统通过摄像头对人体坐姿实时监测。当人体在摄像头监测范围内,错误姿势保持超过3s时则发出语音警报,如写字时头部过低,身体扭曲,弯腰驼背等。系统左上角实时显示识别分类,统计报警次数。

2.1 图像采集模块

数据获取是图像识别的基础。本系统的图像采集方式很简单,只需要一个普通的摄像头就可以获取坐姿图像信息,实时监测坐姿变化。如电脑摄像头、手机摄像头和外接摄像头。

2.2 异常检测模块

异常检测模块的实现:首先制作样本多样化的数据集,然后对数据集进行预处理和训练,训练采用YOLOv5算法模型,最后用测试集测试模型后对训练结果进行分析。

2.2.1 数据集制作

本设计以常见的正常及不良坐姿为例,通过按帧截取在不同环境下拍摄的13名实验人员的坐姿视频,获得正面拍摄、侧面拍摄和背面拍摄三个视角下的:坐姿正常、高低肩、距离桌面过近、含胸驼背以及跷二郎腿五个类别的数据,共计6839张数据。将获得的数据集按8∶1∶1的比例分为train、test和val三个数据集,其中train数据集用于训练模型,test数据集用于测试模型结果,val数据集用于验证模型。部分数据集如图2所示。

标注工具采用Makesense对图像数据集进行标注,包含5 种标签:normal(坐姿正常)、abnor⁃mal_twisted( 高低肩)、abnor⁃mal_too_close(距离桌面过近)、ab⁃normal_hunchback(含胸驼背)和leg(跷二郎腿)。

2.2.2 YOLOv5介绍

YOLO算法基于神经网络直接预测目标的边界和类别概率,实现端到端的目标监测。主要由四个部分组成,分别是输入端(Input) 、主干网络(Backbone) 、网络的颈部(Neck) 和预测输出端(Prediction) ,YOLO的结构如图3所示。YOLOv5算法相较于先前的版本,在四个部分分别进行了不同程度的改进,展现出了更精确、更及时、更适用于小目标检测的特点[4]。

1) Input端的改进体现在数据增强和自适应锚框计算。Mosaic数据增强将多张图像中的随机4张图像进行随机的处理,比如裁剪、缩放、旋转等,合成一张新的图像传送给神经网络,这样的处理可以丰富数据集,并减少GPU的处理量;自适应锚框计算通过聚类的方式自适应地计算出当前数据集的最佳锚框尺寸,并将其直接嵌入代码中,增强了算法的健壮性和稳健性。

2) 在Backbone部分将切片的思想融入采样过程,引进了新的结构,主要包括Focus 结构、CSP 结构和SPP结构,Focus结构通过对图像进行切片操作并遍历图像提取像素值,获得4张互补的图像,实现了切片下采樣的功能;CSP结构可以减少特征传输过程中的信息损失和计算量;SPP结构通过最大池化可以丰富网络可以进行处理的图片类型,使得网络可以输入任意比例的图像。

3) Neck部分在FPN层和最后的输出端之间添加一个自底向上的特征金字塔结构PAN,可以同时利用低层特征的高分辨率信息和高层特征的高语义信息兼顾不同目标的识别,网络可以学习和提取到更大范围的特征信息。

4) Prediction部分主要对损失函数进行了优化并采用了非极大值抑制的思想,采用了GIoU损失函数计算bounding box的损失,增加了相交尺度的衡量;非极大值抑制可以降低图像中某些区域的目标排列密度较大时,冗余边界框对网络参数更新产生的不利影响[2]。

YOLO算法从v1到v5的不停迭代,使得其准确性不断提高,现已在图像识别领域得到广泛使用。

2.2.3 测试结果

模型训练的环境为Windows 10系统、显卡型号为NVIDIA RTX 2060、Python 版本为3.7、PyTorch框架版本为1.7.0、CUDA版本为11.7。数据集训练的过程中设置epochs为300。使用训练好的YOLO模型对数据集进行测试,结果如图4所示:

3 系统实现

该系统适用范围广,可嵌入各类学习助手,如台灯、闹钟等学习用品,帮助学龄儿童培养良好的坐姿习惯。综上所述,本系统的使用场景非常广泛,据不同的产品要求可开发移动端、PC端[4-5]。针对不同情况,可以选择不同设备使用。以下以手机端和PC端为例。

3.1 PC 端及手机识别

为便于日常使用,实现“随时”监测的目的,我们设计了在PC端及手机端的系统。

3.1.1 PC 端系统

该系统包括图片检测和视频检测两类。其中视频检测支持实时监测和上传视频文件检测,如图5所示。当使用者坐姿处于所录入不良姿态时,系统发出语音警报提醒,右侧警报画面内警报统计次数实时更新。

3.1.2 手机端系统

将实验模型以ONNX作为媒介,通过NCNN框架在Android手机端部署开发智能App,使用者可实时监测自己的坐姿行为[6]。

App分为学生模式和家长模式两个模式。家长模式便于家长了解并监督自己孩子的坐姿情况,进行远程检测。学生模式则可以查看自己的坐姿情况,进行学习设置,如坐姿错误时的语音提示设置、错误坐姿持续时长的提醒设置等。

3.2 外接设备

3.2.1 硬件设计

若以外接设备进行坐姿监测,可采用以树莓派作为核心芯片,树莓派具有高集成的特点,广泛用于工业与家电领域等。该系统以树莓派为核心,基于OpenCV 的DNN 模块,实现YOLOv5s 目标坐姿识别[7-8]。该系统采用ESP32WiFi模块,实现无线通信及实时检测采集到的数据;同时采用SW-180实现警报震动功能。

系统所用摄像头根据端口设置连接在树莓派上,通过摄像头采集的数据送到数据库,利用ESP32芯片构成局域网,监控树莓派的检测数据库。若坐姿错误,震动模块将进行震动提醒,或通过蓝牙模块将信息传输到手机端。整体硬件设计如图6所示。

3.2.2 文件数据转化

YOLOv5是基于PyTorch框架实现的。若要将训练模型加载到OpenCV 的DNN 模块中,需先把Py⁃Torch的训练模型.pth文件转化成.onnx文件,再载入到OpenCV的DNN模块里。

数据转换过程如图7所示:

文件并进行前向计算。用python编写目标检测的功能。再利用OpenCV的DNN模块进行深度学习,训练模型。

YOLOv5 目标检测识别的程序,包含以下两个部分:

(1) 将PyTorch的训练模型.pth文件转换为.onnx文件。.pt文件中既有模型参数,也有网络结构和参数,先将原始训练模型中.pt文件里的参数保存到新的.pth文件中。再编写YOLOv5.py文件,将yolov5s的网络结构定义在.py中。由此生成一个OpenCV可以读取且向前推理的文件。

(2) OpenCV 的DNN 模块读取.nnx;完善系统功能;美化系统界面等。

4 结束语

本文以人们长期坐姿不良导致脊柱弯曲影响生命健康和引导人们养成良好坐姿习惯为切口,设计了基于YOLOv5模型的坐姿监测系统。首先,该系统通过前端输入设备对人体坐姿进行图像采集,用所训练的权重模型对图像进行分类识别,在正、侧、后多个角度均能对数据集中对不同坐姿的检测均能达到较高准确度且延迟率较低。该方式基本解决了前两代坐姿矫正产品(传统物理机械式矫正和佩戴式智能检测)應用范围较小、舒适度较差等的问题。该研究具有实用价值,可以为人体坐姿矫正提供有效方法。未来,笔者也将进一步扩充数据库,使坐姿实时监测更加精确,同时轻量化模型使其实用性提高。

致谢:在此感谢导师陈荣元教授对我们的指导和帮助以及在设计中被我引用或参考的论著的作者。在此表达衷心的感谢!

猜你喜欢

目标检测
多视角目标检测与跟踪技术的研究与实现
移动机器人图像目标识别
智能视频技术在电力系统领域的应用
相关K分布杂波中扩展目标积累检测性能分析
基于连通域标记的目标检测算法设计与实现
一种改进的峰均功率比判源方法