APP下载

基于静态图像姿态估计的服务机器人跌倒检测报警系统

2023-05-30陈旭凤赵彦伟王菲菲曹学文杨一哲

科技风 2023年10期

陈旭凤 赵彦伟 王菲菲 曹学文 杨一哲

关键词:计算机视觉技术;姿态检测;人体骨骼关键点;跌倒检测

为了降低老年人因为跌倒而受到的伤害,可以设计出一种跌倒检测报警系统,实时检测老年人的人体姿态。目前的跌倒检测系统可大概分为三种类别:(1)以穿戴式传感器为基础的跌倒检测系统;(2)以计算机视觉等相关技术为基础的跌倒检测系统;(3)以音频分析为基础的跌倒检测系统。

本文针对基于可穿戴设备传感器、视频分析和环境传感器的跌倒检测方法储存资源受限、计算资源消耗大和精度低的缺点,结合室内服务机器人的计算机视觉技术平台,提出一种基于静态图像姿态估计的服务机器人跌倒检测报警系统,本文所设计的系统主要包括三个组成部分:助老机器人平台、人体骨骼关键点检测、跌倒检测算法。

1助老机器人平台

本文基于ROS服务机器人操作系统来进行研究。ROS机器人操作系统是一个机器人软件平台,它提供了操作系统应有的服务,包括硬件抽象、底层设备控制、进程间消息传递等。其系统架构及主要性能如下:(1)视觉传感器:高分辨率彩色摄像头(1920×1080、32bit、30fps)、低分辨率深度摄像头(512×424、16bit、30fps);(2)行走速度:最大60cm/s;(3)爬坡能力:5度;(4)电机:12V 146RPM带编码器直流减速电机;(5)驱动机构:2个主动轮、1个从动轮(90mm全铝全向轮X3)。

本文的研究主要基于ROS服务机器人(如图1)系统的视觉传感器。通过视觉传感器获取含有服务机器人所跟随目标的数字图像。

2人体骨骼关键点检测

本文采用检测人体骨骼检测点的方法来进行跌倒检测设计实验。

目前的多人人体骨骼关键点检测有兩个研究方向,自上而下和自下而上。其中自下而上的方法主要包含两个部分:关键点检测和聚类。首先检测出图像中的关键点,然后通过相关技术手段将关键点聚成不同的个体,其中代表性算法有PAF、Part Segmentation等。目前人体关键点检测的数据集大致可以分为两类,即2D人体关键点和3D人体关键点。

本文拟采用基于PAF(Part Affinity Fields)的姿态检测算法。该方法使用非参数表示,叫作部分亲和域(PAFs),PAF能够联系人体身体部位与目标图像中被检测到的人体图像,进行编码,可以使用自底向上的贪婪解析,不论被检测目标图像中有多少个人体图像,都能高精确度地实现性能。

通过姿态估计算法PAF对静态图像中的人体姿态进行检测,得到一组人体骨骼关键点的坐标,用于下一步的跌倒检测判别。

3跌倒检测算法

在一个静态的图像中,当人体在处于正常状态和处于跌倒状态时的人体姿态会有所不同。本文设计的跌倒检测算法就是通过设置人体骨骼关键检测点之间一系列的角度阈值,对检测到的目标图像进行逐层分析判断,以此来最终判断人体是否为跌倒状态。

3.1多阈值控制设计

第一,参考坐标系选取。识别目标图像时,以移动机器人的视觉传感器坐标系为参考坐标系。

第二,目标图像T1和T2设定。移动机器人通过间隔固定时间TH(单位为秒)进行跟踪目标的图像获取,在Tl时刻获取到的图像命名为T1_image,在Tl+TH时刻获取到的图像命名为T2_image。本文仅以T1_image和T2_image为例对跌倒检测报警方案进行说明。

第三,跌倒检测算法所依据检测点如图2所示,关键判断条件包括七条内容:(1)条件一:判断目标图像rI2一image的检测点2相对于T1_image是否产生向下的位移;(2)条件二:判断目标图像T2_image中,检测点1与检测点2的连线和纵轴的夹角,是否大于阈值30度;(3)条件三:判断目标图像rl2_image中,检测点4与检测点3的连线和纵轴夹角,是否大于阈值45度;(4)条件四:判断目标图像T2_jmage中,检测点4与检测点6的连线和纵轴夹角,是否大于阈值70度;(5)条件五:判断目标图像T2_image中,检测点4与检测点3的连线和检测点4与检测点5的连线夹角,是否大于阈值90度;(6)条件六:判断目标图像T2_jmage中,检测点5与检测点4的连线和检测点5与检测点6的连线夹角,是否大于阈值35度;(7)条件七:判断目标图像T2_jmage中,检测点6与检测点5的连线和纵轴夹角,是否大于阈值40度。

以上涉及点3、4、5、6的检测点对,均为左右两侧分别判断,对结果取逻辑或的关系;以上提到的纵轴指的是世界坐标系下的Z轴而非Y轴;以上涉及的夹角值,范围为0~180度。

3.2跌倒检测判定流程

跌倒检测具体判定流程可详细描述为:(1)若依次满足条件一、条件二、条件三、条件五,再来看是否满足条件四,若满足条件四,判断为跌倒状态,报警;反之,若不满足条件四,则判断为未跌倒状态,不报警。(2)当依次满足条件一、条件二、条件三,但是不满足条件五时,再看条件七,若满足条件七,则判断为跌倒状态,报警;反之,若不满足条件七,则判断为未跌倒状态,不报警。(3)当依次满足条件一、条件二,不满足条件三时,再看条件四,若满足条件四,则判断为跌倒状态,报警;反之,若不满足条件四,则判断为未跌倒状态,不报警。(4)当满足条件一,不满足条件二时,若不满足条件四,则判断为未跌倒状态,不报警。(5)当满足条件一,不满足条件二时,若满足条件四,再看条件六,若满足条件六,则判断为跌倒状态;反之,若不满足条件六,则判断为未跌倒状态,不报警。

通过以上工作流程,服务机器人可完成跟踪目标是否跌倒的检测与判定,再根据系统功能设定完成跌倒报警。

4方案验证与改进措施

4.1数据采集与关键点识别

数据采集。根据上文提出的设计思路,设计多种人体姿态类型,对每个人体姿态下采集多张人体图片作为测试用的数据,对应标签设置为二分类,包括跌倒状态和未跌倒状态两种情况。人体的站立、下蹲、坐下、弯腰等这些人体姿态属于人体正常姿态,在老人跌倒报警系统中判定为未跌倒状态,不报警。人体跌坐在地(发生跌倒行为后人自行撑起上身,但是也无法自行起身情况)和跌倒在地(完全跌落在地,无法撑起身体)这两种情况在老人跌倒报警系统中便被判定为跌倒状态,报警。作为负样本,采集了人们在躺椅上休息时的人体姿态以及瘫坐在沙发上的人体姿态进行数据的测试,这些人体姿态在老人跌倒报警系统中被判定为未跌倒状态,不报警。将这些图片采集完成后进行跌倒检测判别。

本文设计的跌倒检测报警系统采用基于Par Affinity Fields的姿态检测方法,能够输出21个骨骼检测点的人体姿态图片,即输出目标图像中所有人体的2D人体检测点坐标,实验数据截取部分如图3所示。

从左到右、从上到下的顺序:(a)躺椅.1;(b)躺椅-2;(c)弯腰-1;(d)弯腰-2;(e)休闲躺-1;(f)休闲躺-2;(g)高坐-1;(h)高坐-2;(i)蹲下-l;(j)蹲下-2;(k)低坐-1;(l)低坐-2;(m)跌坐-1;(n)站立-1;(o)跌倒-1;(p)跌倒-2。

4.2跌倒检测算法验证

通过多轮测试确定参数后,进行上述跌倒检测算法的准确性验证。使用图3骨骼检测点结果作为输入图片,检测老人跌倒报警方案的判别效果,下表数据证明我们的检测方案是简易并且有效的。

4.3改进措施

针对目前老人跌倒报警方案的设计,还可以结合助老移动机器人的移动功能进行功能改进:对老人跌倒报警系统判定为疑似跌倒图像进行多方位的检测。

具体实施方案:在跌倒检测系统第一次判定输出的结果为“跌倒、报警”信号时,在合理的短时间内(结合移动机器人性能以最快的移动速度)以服务对象老人为中心,进行一个单向的绕行。在180度内完成3次再获取静态目标图像(角度差为60度),进行跌倒检测——如果在这4次检测结果中有大于等于2次结果的均为“跌倒、报警”信号,则此报警系统判定老人为“跌倒,报警”;否则则判定老人为“未跌倒,不报警”。

结语

本文所设计的老人跌倒检测报警系统,是针对静态图像的姿态估计结果进行跌倒检测,从一定程度上能够降低计算量消耗;针对姿态估计算法所得人体骨骼关键点坐标,进行人体关键骨骼检测点之间的几何关系与本专利设定的多个阈值相比,判定最终跌倒与否,降低老人处于蹲下、坐下或是斜躺休息等类似于跌倒动作的误判概率。多阈值控制提高了判定准确率,无须再次使用其他网络模型等技术手段进行误判结果的排除,大大降低了计算复杂度,提升了系统检测的时效性。

作者简介:陈旭凤(1991—),女,汉族,河北定州人,硕士研究生,讲师,研究方向:人工智能、机器视觉。

*通讯作者:赵彦伟。