基于人工智能的居家老人摔倒警报系统

作者: 黎耀华 蚁克瀚 蔡贝贝 陆金灿 肖顺梅 谢珩 汪成龙

基于人工智能的居家老人摔倒警报系统0

摘要:鉴于当前家庭监控主要依赖人力操作,且多数家庭监控系统尚不具备对摔跤行为进行自动识别并触发报警的功能,或其识别精度远未达到实际需求标准,本研究提出一种基于人工智能神经网络的方法,利用YOLOv5(You Only Look Once) 目标检测技术和OpenCV图像处理技术,通过Python接口对接PushPlus推送平台以及SMTP邮件传输服务器,构建了一套能够实时检测、准确判断居家老人摔倒情况并即时发出警报通知的老人居家摔倒警报系统。该系统适用于家庭监控场景,可以直接在任何Windows系统云主机上部署运行,利用流媒体服务器自带的HTTP接口与本系统无缝结合。同时,该系统还可搭配Kytera系统的智能手环和易于佩戴的传感器设备,以弥补监控盲区及卫生间等私密场所的监控缺陷,从而全面满足看护需求,提升老人居家安全防护水平。实验结果显示,在存在背景干扰的情况下,通过对包含1 000张图片的数据集进行训练,本系统能快速精确地定位运动中的人物,并实现高达96.9%的摔倒识别准确率,平均精度(MAP) 逼近90%,且系统能在3 500 ms内完成响应并发送警报通知,充分证明了本系统的高效可行性和实用性。

关键词: 人工智能;摔倒实时检测;警报通信;YOLOv5;Opencv;Python接口对接

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

文章编号:1009-3044(2024)09-0015-04

开放科学(资源服务)标识码(OSID)

0 引言

据世界卫生组织2021年发布的报告指出,跌倒是全球意外伤害死亡的第二主因,每年全球约有68.4万人因跌倒丧生,其中60岁以上的老年人群体遭受致命跌倒的比例尤为突出。因此,对老年人日常生活行为实施有效的追踪分析,并在发生摔倒事件时,能立即传递求救信息给家人或社区护理人员,确保老人能够得到及时救助,显得至关重要。当前,在家庭环境下实现对老人的监护,普遍采用的解决方案大多是运用摄像头、传感器等数据采集设备[1-4]实时监测被监护对象,从而实现对老人日常行为的跟踪记录,并据此获取其行为信息。根据行为的性质和信息的可靠性综合评判,在发生异常情况时,系统应及时发送报警信息或拨打紧急电话,通知家属或护理人员,以防止老年人因突发事故遭受意外伤害。

尽管已有多项摔倒检测方法被提出,但在实际应用中仍面临不少挑战,如:1) 摔倒行为识别不易通过简单的前景检测获取理想的人体目标,需要探寻适用的目标跟踪算法进行精细化处理。2) 较高的误检率,需要选取适宜的人体特征参数以降低误报。3) 许多老年人对佩戴式设备存在抵触心理。4) 缺乏系统性的实时监控检测警报机制,需要构建包括前端采集、服务端处理以及客户端接收的完整系统架构。

人工智能(AI) 是一种能模拟人类智能执行任务,并能根据收集的信息进行自我迭代优化的系统与机器,能够自动感知环境变化并通过内在逻辑判断做出合理反应,从而最大程度地提高任务成功率和执行效率。此外,AI还能够不断从前次经验与现有资源中学习,优化自身性能。当下,人工智能发展的一大主流趋势是连接主义,即主要通过仿生学原理模拟神经元连接关系。本文采用的神经网络技术即是连接主义的一种体现,具体选择了卷积神经网络(CNN) [5-6],全称为Convolutional Neural Network,作为前馈神经网络的一种,它模仿了神经元连接的结构和功能,拥有进行简单决策和判断的能力,在图像处理和语音识别等领域表现出色。

YOLOv5[7-10]是一种先进的目标检测算法,其核心理念是将目标检测任务转化为回归问题,通过预测图像中边界框的位置和类别实现目标检测。与传统的两阶段检测方法相比,YOLOv5采用单阶段检测方式,从而在速度上更具优势。

基于上述背景,本文提出了一种基于人工智能神经网络的方法,运用目标检测模型YOLOv5算法[11]及Opencv图像处理技术,通过Python接口实现消息通知功能,设计并构建一套能够实时检测居家老人摔倒、判断摔倒严重程度及发出警报通信的老人居家摔倒警报系统,该系统可在主流媒体云或主机上部署运行,服务于家庭监控场景。该系统能够在不影响老人正常生活的情况下实时捕捉摔倒行为并通知救援人员,具有极高的实用价值和市场潜力。

1 系统设计与实现

1.1 总体思路

本系统对老人摔倒检测过程划分为3个阶段:第一个阶段为数据集准备与处理,涉及采集和制作图像建立数据集,并对数据集中图像进行分割为训练集和测试集,同时进行标注等预处理操作;第二个阶段为网络训练,将预处理过的图像作为输入,通过训练提取出图像的所有输出特征,以预训练权重初始化主干网络,经过多轮训练以跨越局部最优解;第三个阶段为检测与识别,将测试图像和实时视频输入已完成训练的网络中进行检测,得出最终的识别结果。

1.2 数据集构建

数据集图像通过从网络下载部分摔倒实例图片,以及自行拍摄制作而成,如图1所示。

数据集遵循YOLO格式,所需内容包括输入图片和对应的标签文件。输入图片格式为.jpg,尺寸不限,系统会在训练前自动调整大小(resize) 。标签文件以.text格式存储,包含待检测目标的具体信息,每个标签文件与相应的输入图片文件一一对应。笔者选取了1 000张像素较高的图片组成数据集,并按照5:1的比例将其划分为训练集和测试集。

在识别前对图像进行必要的预处理:包括图像增强、标注等步骤。借助Opencv[12]工具对图像进行翻转、旋转调整以及添加噪声等操作,旨在增强模型的鲁棒性并提升检测的准确性和可信度,以减少误识别;采用LabelImg软件对数据集中的图像进行特征区域标注,将标注区域命名为“fall”,以便实现数据分类。在同一文件夹下,每张图像对应的.text文件记录了图片名称、存储路径、类别、原始尺寸以及标注区域的大小等信息。

1.3 网络训练

YOLOv5官方提供的代码中共有4个版本的检测网络,分别是YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,YOLOv5各个版本在 COCO 数据集中的性能对比如表1所示。

如表1所示,这些版本在网络深度和特征图宽度上有所不同,YOLOv5s 是其中深度和宽度最小的网络,其他版本在其基础上增加了网络深度和宽度。

本系统选用YOLOv5s网络进行训练,其网络性能指标如表1所示。在训练过程中,为了缩短训练周期并获得更好的精度,需要加载预训练权重启动网络训练。Focus模块、BottleneckCSP(跨阶段局部网络)以及SSP(空间金字塔池化)扩展了感受野,有助于提取最重要的上下文特征,而FPN+PAN(路径聚合网络)则能有效聚合不同层级的特征参数,适应不同尺度的目标检测。

预训练权重的大小对训练结果的精度有很大影响,多轮训练有助于跳过局部最优权重。实验中分别采用了Adam优化器和SGD优化器,结果显示Adam优化器在收敛速度上更快。此外,系统引入了Mish激活函数和Mosaic数据增强策略,从而进一步提高了YOLO模型的准确率和普适性。

根据实验数据和硬件环境配置,笔者设置了相关的训练参数,模型总训练代数(Epochs) 设为300步。为了在训练初期快速逼近较优解,笔者采用学习率递减策略,初始学习率设定为0.01,随着训练次数的增加,学习率逐渐减小,同时损失率(Loss) 也随之逐步减小。具体的实验参数设置如表2所示。

1.4 检测识别

在图像测试阶段,识别框用于对目标物体进行定位,方框旁边的“fall”字样标识出图像识别的结果,而百分比数值则是判断该类别的概率,即可信度(Confidence) ,如图2所示。

在实时监控画面中,当系统检测到老人的姿态为“fall”时,将初步判定老人可能发生了摔倒,并启动7秒倒计时。若老人在7秒内未能起身,则判断老人确实发生了摔倒;反之,若老人在7秒内恢复站立姿势且后续不再检测到“fall”状态,则排除摔倒的可能性。

1.5 警报通信

系统提供了三种警报通信方式供用户选择,包括微信私聊通知、微信公众号通知以及电子邮件通知。无论哪种方式,都能确保在检测到老人摔倒后立即向用户发送消息通知,并附带当前监控截图,以防止老人在摔倒后因晕厥或其他原因导致的无人察觉,延误抢救时机。

1.6 人机交互界面设计

PyQt5是Python中广泛使用的第三方图形用户界面库,功能强大,支持多种控件,既可用于页面设计,也可用于实现页面中各控件功能。本系统利用PyQt5库设计了登录界面和检测界面,方便用户在检测图片、检测视频以及实时检测三种模式之间切换。

检测界面具备检测图片、视频、连接摄像头、保存识别结果以及发送消息等功能,如图3所示。点击“选择图片”“选择视频”按钮将打开文件夹对话框,点击“摄像头”按钮则会弹出手机或电脑摄像头连接界面,点击“输出结果”按钮将展示识别后的图片、视频输出目录,点击“消息发送”按钮,则能在检测到老人摔倒后将相关消息连同现场图片即时发送至家人微信账号。

2 结果分析

2.1 性能评估

基于模型训练,笔者对数据集中测试图像进行了验证,以精确率(Precision) 、召回率(Recall) 以及平均精度(mean average precision,简称MAP[13]) 作为关键评价指标,来评估模型训练及其预测效果的质量。

精确率反映了模型检出结果中真正正样本的比例,即被判定为正样本的数据中有多少确实是正样本。召回率则衡量了数据集中所有真实正样本被模型成功识别的比例。精确率和召回率的数学表达式分别为:

[precision=tptp+fp]   (1)

[recall=tptp+fn]   (2)

式中:tp为将正样本预测为正的个数;fp为将负样本预测为正的个数;fn为将正样本预测为负的个数。

而对于多类别检测任务的精度评估,笔者采用平均精度均值(MAP) ,它是通过对所有类别检测精度取平均值得到的综合评价指标。MAP的计算依赖于精度(Precision)和召回率(Recall)两个维度的考量,其表达式为:

[MAP=01p(r)dr]   (3)

式中,p(r)是以召回率 ( r) 为横坐标,以精度 ( p) 为纵坐标绘制出的曲线下的积分,它代表了单个类别的平均精度。在多类别情况下,通过对所有类别的 p(r) 分别积分后再取平均,便得到了整个数据集的平均精度均值(MAP) 。

2.2 检测结果分析

笔者通过实验结果推测该方案的可行性,并检验其实验结果是否符合理论预期。实验选用包含1 000张图像的数据集进行训练,旨在探查在存在背景干扰的情况下,系统能否快速而精准地定位运动中的目标。随着训练轮数的不断增加,训练集的定位损失及置信度损失逐步下降,特别是在前200轮训练期间,这两项损失下降显著,之后在200~300轮时损失下降速度相对放缓,最终分别稳定在大约0.01和0.002的水平;而验证集定位损失在前100轮训练中下降较快,随后在200轮后趋于稳定,稳定值分别在0.018和0.004左右。这表明模型已经找到了一种能够使得检测框与实际框保持紧密匹配的映射关系,检测结果的具体表现如图4所示。

与此同时,随着训练世代步数(Epochs) 的增长,系统的可信度(Confidence) 维持在约96%的水平,摔倒识别准确率(Precision) 已达到96.9%,并且平均精度均值(MAP) 逼近90%,这些数据充分体现了本系统高度的可行性。

上一篇 点击页面呼出菜单 下一篇