一种识别老年人跌倒的方法及陪伴机器人与流程

文档序号:19156795发布日期:2019-11-16 00:55阅读:844来源:国知局
一种识别老年人跌倒的方法及陪伴机器人与流程

本发明涉及摔倒姿态识别领域,尤其是一种识别老年人跌倒的方法及陪伴机器人。



背景技术:

随着我国科技、医疗的不断发展和进步,我国“老龄化”人口同步增长,养老已凸显为一个社会问题。到目前为止,我国老年化人口己远超世界平均水平。经综合联合国、国家人口计生委、全国老龄委以及部分学者对我国未来老龄化发展趋势的预测结果显示,2018年到2035年我国老年人口将年均增长一千万左右。目前,我国大众城市老年空巢家庭率已达到70%。这一数据正在急剧恶化。然而,中国养老产业尚处于起步阶段。我国的养老产业才刚起步,发展还处在初级阶段,特别是服务供给侧严重不足。传统的养老模式面临了巨大的挑战,新的养老服务模式的将会迎来前所未有的高速发展机遇。由于子女不可能一直陪在父母身边,当老人跌倒时,如果不能及时发现,将会导致很严重的后果。因此,对老人的跌倒行为及时检测并呼叫救援成为了迫切需要解决的问题。

目前,老人跌倒行为检测方法主要采用可穿戴式传感设备,基于用户的行为数据和行为规律构建模型,基于多特征融合的视频监控等方法。这些检测方法对于老人来说,容易忘记佩戴设备,操作繁琐,实时性不高,且检测方法单一,容易出现误判。传统老年人姿态特征提取方法依赖于对图像中老年人身体局部特征识别,必须要求准确检测,当光线等环境噪声较大时,可能会导致提取局部特征不准确;姿态特征提取方法无法获取高维空间中密集采样信息,进行连续估计时会导致数据丢失,导致识别精度与识别连续性无法保证。因此,本申请为克服以上问题,提出一种识别老年人跌倒的方法及陪伴机器人。



技术实现要素:

本发明的目的在于:本发明提供了一种识别老年人跌倒的方法及陪伴机器人,解决现有采用局部特征提取和检测导致识别准确率低的问题,实现在图像模糊、视频抖动和光线不佳等环境下能够正确、快速识别出老年人跌倒行为。

本发明采用的技术方案如下:

一种识别老年人跌倒的方法,包括如下步骤:

步骤1:采集检测对象的身体视频数据;

步骤2:利用yovo算法通过距离度量进行人体定位获取人体图像定位检测结果;

步骤3:基于人体图像定位检测结果,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;

步骤4:根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值hd、前后帧的头部和脚部高度差值hp、前后帧头部高度差值对应的速度v和肩膀宽度w;

步骤5:根据上述数据建立判定公式,输出结果“摔倒”或者“未摔倒”,根据上述数据计算距离度量误差,判断距离度量误差是否满足二分类条件,若满足,则采用建立的神经网络模型进行识别,若否,则返至步骤1;

判定公式如下:abs(head-foot)<abs(x2-x5)||abs(head_p-head)/abs(foot_p-foot)>2,其中,abs(head-foot)表示头部和脚部高度差绝对值,abs(x2-x5)表示肩宽绝对值,head_p、foot_p分别表示前一次头部质点位置和前一次脚部质点位置。

优选地,所述步骤2中包括距离度量,其计算如下:

d=(box,centroid)=1-iou(box,centroid)

其中,d表示跌倒的距离度量值,box表示预算的矩阵大小,centroid表示矩形框的中心坐标位置,iou(box,centroid)表示定义的欧式距离公式,计算如下:

其中,ρ表示(x1,y1)、(x2,y2)两点的欧式距离。

优选地,所述步骤4包括如下步骤:

步骤4.1:利用openpose算法检测身体视频数据中的关节点信息,openpose结果数据标准头部关键点序号为14、15、16、17,脚部关键点序号为10、13,左右肩部关键点序号为2、5;

步骤4.2:计算头部的质点高度:head=average(y14,y15,y16,y17);

步骤4.3:计算脚部质点位置:foot=average(y10,y13);

步骤4.4:计算肩宽绝对值:w=abs(x2-x5);

步骤4.5:计算头部与脚部的高度差值:d=abs(head-foot);

步骤4.6:计算前后5帧头部高度差值对应的速度v,v=24*abs(head1-head)/5,其中,视频数据每一秒24帧计算,head1、head分别表示前一帧和当前帧头部质点高度。

优选地,所述步骤5包括如下步骤:

步骤5.1:利用openpose算法检测身体视频数据中的关节点信息,openpose结果数据标准头部关键点序号为14、15、16、17,脚部关键点序号为10、13,左右肩部关键点序号为2、5;

计算头部的质点高度:head=average(y14,y15,y16,y17);

计算脚部质点位置:foot=average(y10,y13);

计算肩宽绝对值:w=abs(x2-x5);

计算头部与脚部的高度差值:d=abs(head-foot);

步骤5.2:判断d<w是否成立,若成立,则判定为横向摔倒;若否,则跳至步骤5.3;

步骤5.3:建立判定公式:abs(head-foot)<abs(x2-x5)||abs(headp-head)/abs(foot_p-foot)>2,若判定值为true,则判定为摔倒,若判定值为flase,则判定为未摔倒;

步骤5.4:计算距离度量误差m=abs(-hea-dfo,n=abs(head_p-head)-abs(foot_p-foot),则摔倒可能性权重值(m,n);

步骤5.5:建立并训练神经网络模型,判断是否满足条件(mmin,nmin)<(m,n)<(mmax,nmax),若满足,则使用神经网络模型进行识别;若否,则返至步骤1;其中,mmin、nmin、mmax、nmax为已知的摔倒阈值。

优选地,所述人体定位采用yovov3;所述神经网络模型包括依次连接的卷积层a、大小为2*2的池化层、卷积层b、relu激活函数层、全连接层和softmax函数分类层,所述神经网络模型的训练数据包括当前图像数据、前5帧人的状态和各关节点5帧内的运动速度。

一种识别老年人跌倒的陪伴机器人,包括

采集装置,用于采集检测对象行为、体态等视频信息、语音信息和图像信息后发送至gpu集群服务器和数据库;

gpu集群服务器,对视频信息、图像信息和语音信息进行分析获取摔倒识别结果;

数据库,用于存储采集的视频信息、图像信息和语音信息和分析后的摔倒识别结果;

处理装置,用于调用数据库数据、接收摔倒识别结果进行显示、报警等动作。

所述gpu集群服务器包括摔倒识别模块,所述摔倒识别模块包括

形态采集单元,用于采集检测对象身体的视频数据;

人体检测单元,用于利用yovo算法进行人体检测获取人体检测结果;

距离度量单元,用于计算检测对象和摔倒识别模块距离;

关节点和骨架获取单元,用于根据人体检测结果和距离,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;

跌倒判断单元,用于根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后帧头部高度差值对应的速度v和肩膀宽度w,建立判定公式;并根据判定结果建立神经网络模型进行识别。

优选地,所述跌倒判断单元的判定公式为:abs(head-foot)<abs(x2-x5)||abs(head_p-head)/abs(foot_p-foot)>2,其中,abs(head-foot)表示头部和脚部高度差绝对值,abs(x2-x5)表示肩宽绝对值,head_p、foot_p分别表示前一次头部质点位置和前一次脚部质点位置。

优选地,所述神经网络模型包括依次连接的卷积层a、大小为2*2的池化层、卷积层b、relu激活函数层、全连接层和softmax函数分类层。

优选地,所述神经网络模型的训练数据包括当前图像数据、前5帧人的状态和各关节点5帧内的运动速度。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1.本发明先进行人物提取,再判断跌倒行为的方式,可以很好的识别同一场景中多人跌倒行为,且不会影响跌倒行为识别精度;

2.本发明在关节点检测前进行人体检测和距离度量,降低定位误差;

3.本发明通过根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后两帧的头部高度差值对应的速度v和肩膀宽度w,判断动态和静态特征,识别准确率更高;

4.本发明不需要对每一帧图像都进行多尺度感检测,在发现有多个目标时,动态使用上述方法精度确认和复检,与整个识别系统进行融合,可以解决多尺度检测在精度和速度方面的问题,避免高空间和低空间尺度的两个不同角色结合起来对捕获到的不同尺度目标图像进行识别带来的计算复杂、延迟大的缺点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明的方法框图;

图2为本发明的跌倒示意图;

图3为本发明的神经网络模型的结构示意图;

图4为本发明的方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和表示本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以下结合实施例对本发明的特征和性能作进一步的详细描述。

实施例1

传统老年人姿态特征提取方法依赖于对图像中老年人身体局部特征识别,必须要求准确检测,当光线等环境噪声较大时,可能会导致提取局部特征不准确;姿态特征提取方法无法获取高维空间中密集采样信息,进行连续估计时会导致数据丢失,导致识别精度与识别连续性无法保证。因此,本申请提出一种识别方法,克服以上问题,细节如下:

如图1、4所示,一种识别老年人跌倒的方法,包括如下步骤:

步骤1:采集检测对象的身体视频数据;

步骤2:利用yovo算法通过距离度量进行人体定位获取人体图像定位检测结果;

步骤3:基于人体图像定位检测结果,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;

步骤4:根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值hd、前后帧的头部和脚部高度差值hp、前后帧头部高度差值对应的速度v和肩膀宽度w;

步骤5:根据上述数据建立判定公式,输出结果“摔倒”或者“未摔倒”,根据上述数据计算距离度量误差,判断距离度量误差是否满足二分类条件,若满足,则采用建立的神经网络模型进行识别,若否,则返至步骤1;

判定公式如下:abs(head-foot)<abs(x2-x5)||abs(head_p-head)/abs(foot_p-foot)>2,其中,abs(head-foot)表示头部和脚部高度差绝对值,abs(x2-x5)表示肩宽绝对值,head_p、foot_p分别表示前一次头部质点位置和前一次脚部质点位置。

优选地,所述步骤2中包括距离度量,其计算如下:

d=(box,centroid)=1-iou(box,centroid)

其中,d表示跌倒的距离度量值,box表示预算的矩阵大小,centroid表示矩形框的中心坐标位置,iou(box,centroid)表示定义的欧式距离公式,计算如下:

其中,ρ表示(x1,y1)、(x2,y2)两点的欧式距离。

所述步骤4包括如下步骤:

步骤4.1:利用openpose算法检测身体视频数据中的关节点信息,openpose结果数据标准头部关键点序号为14、15、16、17,脚部关键点序号为10、13,左右肩部关键点序号为2、5;

步骤4.2:计算头部的质点高度:head=average(y14,y15,y16,y17);

步骤4.3:计算脚部质点位置:foot=average(y10,y13);

步骤4.4:计算肩宽绝对值:w=abs(x2-x5);

步骤4.5:计算头部与脚部的高度差值:d=abs(head-foot);

步骤4.6:计算前后5帧头部高度差值对应的速度v,v=24*abs(head1-head)/5,其中,视频数据每一秒24帧计算,head1、head分别表示前一帧和当前帧头部质点高度。

所述步骤5包括如下步骤:

步骤5.1:利用openpose算法检测身体视频数据中的关节点信息,openpose结果数据标准头部关键点序号为14、15、16、17,脚部关键点序号为10、13,左右肩部关键点序号为2、5;

计算头部的质点高度:head=average(y14,y15,y16,y17);

计算脚部质点位置:foot=average(y10,y13);

计算肩宽绝对值:w=abs(x2-x5);

计算头部与脚部的高度差值:d=abs(head-foot);

步骤5.2:判断d<w是否成立,若成立,则判定为横向摔倒;若否,则跳至步骤5.3;

步骤5.3:建立判定公式:abs(head-foot)<abs(x2-x5)||abs(headp-head)/abs(foot_p-foot)>2,若判定值为true,则判定为摔倒,若判定值为flase,则判定为未摔倒;

步骤5.4:计算距离度量误差m=abs(-hea-dfo,n=abs(head_p-head)-abs(foot_p-foot),则摔倒可能性权重值(m,n);

步骤5.5:建立并训练神经网络模型,判断是否满足条件(mmin,nmin)<(m,n)<(mmax,nmax),若满足,则使用神经网络模型进行识别;若否,则返至步骤1;其中,mmin、nmin、mmax、nmax为已知的摔倒阈值。

根据以上可知,本发明先进行人物提取,再判断跌倒行为的方式,可以很好的识别同一场景中多人跌倒行为,且不会影响跌倒行为识别精度。

使用判定公式判别摔倒行为方法对于摔倒相似行为活动难以正确识别的问题,如:蹲下、坐下等行为。采用现有的深度学习算法可精确地对复杂特征进行分类,但网络结构复杂,参数较多,处理较慢,实时性无法保障。因此本申请采用条件二次分类方法,即对满足条件(mmin,nmin)<(m,n)<(mmax,nmax)为可疑性大和复杂特征情况,才进行采用卷积神经网络(cnn)进行准确分类,其中mmin,nmin,mmax,nmax四个值是根据实际情况通过统计出的摔倒阈值。所述神经网络模型包括依次连接的卷积层a、大小为2*2的池化层、卷积层b、relu激活函数层、全连接层和softmax函数分类层,如图3所示,所述神经网络模型的训练数据包括当前图像数据、前5帧人的状态和各关节点5帧内的运动速度。人体定位采用yovov3,减少参数,加快速度,避免现有方法隐含层和输入层输入数据量大导致训练速度慢的缺点。

不需要对每一帧图像都进行多尺度感检测,在发现有多个目标时,动态使用上述方法精度确认和复检,与整个识别系统进行融合,可以解决多尺度检测在精度和速度方面的问题,避免高空间和低空间尺度的两个不同角色结合起来对捕获到的不同尺度目标图像进行识别带来的计算复杂、延迟大的缺点。

如图2所示,a、b、c分别表示纵向摔倒、站立状态、横向摔倒;根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后两帧的头部高度差值对应的速度v和肩膀宽度w,判断动态和静态特征,识别不同的姿态,提高识别准确率。

实施例2

基于实施例1的方法,本实施例提供一种识别老年人跌倒的陪伴机器人,细节如下:

一种识别老年人跌倒的陪伴机器人包括

采集装置,用于采集检测对象行为、体态等视频信息、语音信息和图像信息后发送至gpu集群服务器和数据库;

gpu集群服务器,对视频信息、图像信息和语音信息进行分析获取摔倒识别结果;

数据库,用于存储采集的视频信息、图像信息和语音信息和分析后的摔倒识别结果;

处理装置,用于调用数据库数据、接收摔倒识别结果进行显示、报警等动作。

所述gpu集群服务器包括摔倒识别模块,所述摔倒识别模块包括

形态采集单元,用于采集检测对象身体的视频数据;

人体检测单元,用于利用yovo算法进行人体检测获取人体检测结果;

距离度量单元,用于计算检测对象和摔倒识别模块距离;

关节点和骨架获取单元,用于根据人体检测结果和距离,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;

跌倒判断单元,用于根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后帧头部高度差值对应的速度v和肩膀宽度w,建立判定公式;并根据判定结果建立神经网络模型进行识别。

因采集装置等现有机器人现有的技术细节,在此不进行赘述;所述摔倒识别模块包括处理器、存储器和存储在所述存储器中并可在处理器上运行的计算机程序,例如“步骤1:采集检测对象的身体视频数据;步骤2:利用yovo算法通过距离度量进行人体定位获取人体图像定位检测结果;步骤3:基于人体图像定位检测结果,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;步骤4:根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值hd、前后帧的头部和脚部高度差值hp、前后帧头部高度差值对应的速度v和肩膀宽度w;步骤5:根据上述数据建立判定公式,输出结果“摔倒”或者“未摔倒”,根据上述数据计算距离度量误差,判断距离度量误差是否满足二分类条件,若满足,则采用建立的神经网络模型进行识别,若否,则返至步骤1;判定公式如下:abs(head-foot)<abs(x2-x5)||abs(head_p-head)/abs(foot_p-foot)>2,其中,abs(head-foot)表示头部和脚部高度差绝对值,abs(x2-x5)表示肩宽绝对值,head_p、foot_p分别表示前一次头部质点位置和前一次脚部质点位置。”程序,计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在系统中的执行过程。例如,所述计算机程序可以被分割成多个单元,如下:

形态采集单元,用于采集检测对象身体的视频数据;

人体检测单元,用于利用yovo算法进行人体检测获取人体检测结果;

距离度量单元,用于计算检测对象和摔倒识别模块距离;

关节点和骨架获取单元,用于根据人体检测结果和距离,利用openpose算法检测身体视频数据中的关节点信息,并根据关节点信息采用vggnet作为骨架,获取骨架信息;

跌倒判断单元,用于根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后帧头部高度差值对应的速度v和肩膀宽度w,建立判定公式;并根据判定结果建立神经网络模型进行识别。

神经网络模型包括依次连接的卷积层a、大小为2*2的池化层、卷积层b、relu激活函数层、全连接层和softmax函数分类层。

所述神经网络模型的训练数据包括当前图像数据、前5帧人的状态和各关节点5帧内的运动速度。

所述模块可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述摔倒识别模块可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是所述模块的示例,并不构成对所述模块的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述模块设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述分辨率提升系统的控制中心,利用各种接口和线路连接整个分辨率提升系统的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述分辨率提升系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

综上,陪伴机器人中的跌倒识别模块先进行人物提取,再判断跌倒行为的方式,可以很好的识别同一场景中多人跌倒行为,且不会影响跌倒行为识别精度;通过根据骨架信息中的头部、脚部、颈部、肩膀信息计算头部和脚部高度差值h、前后帧的头部和脚部高度差值dh、前后两帧的头部高度差值对应的速度v和肩膀宽度w,判断动态和静态特征,识别准确率更高;在判断复杂情况时才采用神经网络模型进行条件识别,减少运算量的同时提高识别精度,使陪伴机器人能及时、准确识老人摔倒。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1