摔倒报警方法、电子设备及计算机可读存储介质
技术领域
本发明实施例涉及防摔倒监控领域,特别涉及一种摔倒报警方法、电子设备及计算机可读存储介质。
背景技术
根据世界疾病控制与预防组织统计,世界上超过65岁的老人,每年有l/3会摔倒,其中有一半为再发性摔倒,摔倒率随年龄增长而增长;摔倒的老年人中有20%-30%的人发生中度和重度损伤(髋骨骨折和头创伤),60%活动受限或不能活动,造成巨大的医疗负担和健康伤害。医院里,病人摔倒不及时救治也会产生很严重的后果。减小老年人以及病人摔倒带来的伤害问题已成为国际上新的研究热点。医学研究标明:减小人摔倒时给身体带来的冲击可以有效减轻摔倒事故带来的伤害;而对于已经摔倒的老人及病人,救助等待时间的长短直接决定了患病的程度。现有技术中的摔倒监测解决方案一般分为两类:通过使被监测人佩戴相应的可穿戴设备进行监测;通过被监测人所在场景的实时视频进行监测。
发明人发现现有技术中至少存在如下问题:依赖于可穿戴设备,一旦被监测人不愿意佩戴或忘记佩戴相关设备,摔倒监测系统便无法有效工作;通过实时视频进行监测,现有的方法是对摄取到的单帧图像直接进行特征提取和分类,或综合相邻帧图像之间的光流信息对视频片段进行特征提取和分类,由于有人摔倒/没人摔倒两类样本之间的图像类间差异过小,导致分类的准确率不高,从而使判断人物是否摔倒的准确率不高,且计算相邻帧图像之间的光流非常耗时,使得算法难以达到实时性,从而导致人物摔倒时报警不及时。
发明内容
本发明实施方式的目的在于提供一种摔倒报警方法、电子设备及计算机可读存储介质,其能够快速、准确的判断人物是否摔倒,并在人物摔倒后及时报警。
为解决上述技术问题,本发明的实施方式提供了一种摔倒报警方法,包括:
获取监控区域内的监控视频;将所述监控视频输入预设神经网络模型,得到所述监控视频中人物的多个人体关键点,根据所述多个人体关键点确定所述人物的姿态,并判断所述姿态是否为摔倒;在判定所述姿态为摔倒时,发送警报信息。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的摔倒报警方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的摔倒报警方法。
本发明的实施方式相对于现有技术而言,通过获取监控区域内的监控视频,以便于后续步骤中通过该监控视频判断视频内的人物是否摔倒,再将监控视频输入预设神经网络模型中,得到所述监控视频中人物的姿态,并判断所述姿态是否为摔倒,由于所述姿态根据所述人物的多个人体关键点获取,而人物在各个姿态下的关键点相对位置差异很大,因此通过该特征判别其身体姿态具有很高的精度,从而能够准确判断人物是否摔倒;又由于通过人体关键点获取人物姿态更方便,速度也更快,因此判断人体姿态消耗的时间较短,从而能够快速判断人物是否摔倒,在判定所述姿态为摔倒时,发送警报信息,使得人物在摔倒后能够及时报警,避免了“通过综合相邻帧图像之间的光流信息对视频片段进行特征提取和分类时,分类的准确率不高、报警不及时”的情况的发生;此外,也无需被监测人佩戴任何设备,提高了用户的体验。
另外,所述预设神经网络模型包括第一级神经网络和第二级神经网络;所述将所述监控视频输入预设神经网络模型,得到所述监控视频中人物的多个人体关键点,根据所述多个人体关键点确定所述人物的姿态,并判断所述姿态是否为摔倒,具体包括:将所述监控视频输入第一级神经网络,得到多个所述人体关键点,并根据所述人体关键点,得到用于表征人体姿态的特征向量;将所述特征向量输入第二级神经网络,得到所述姿态,并判断所述姿态是否为摔倒。
另外,在所述将所述监控视频输入第一级神经网络之前,还包括:从所述监控视频中提取预设帧数的视频图像;所述将所述监控视频输入第一级神经网络,具体包括:将所述预设帧数的视频图像输入所述第一级神经网络。通过此种方式,能够减小预设神经网络模型的计算量。
另外,所述根据多个所述人体关键点,得到用于表征人体姿态的特征向量,具体包括:获取多个所述人体关键点在所述视频图像中的多个坐标位置,其中,每个所述人体关键点对应一个所述坐标位置;连接所述多个所述人体关键点,并根据所述坐标位置得到多个向量;将多个所述向量首尾相连,得到所述特征向量。通过此种方式,能够消除人体在视频图像中的绝对位置对人体是否摔倒的判断结果的影响,同时使特征向量能更好地反映各个关键点之间的相对位置。
另外,在所述将所述特征向量输入第二级神经网络之前,还包括:对所述特征向量进行归一化处理;所述将所述特征向量输入第二级神经网络,具体包括:将归一化处理后的特征向量输入所述第二级神经网络。通过此种方式,消除了人体绝对位置信息以及尺寸和比例信息,使得第二级神经网络能更快、更准确地判断人物是否摔倒。
另外,所述对所述特征向量进行归一化处理,具体包括:根据以下公式对所述特征向量进行归一化处理:K=(k1,k2...km);ki=(xi1,yi1,xi2,yi2,...,xi,n,yi,n);其中,K为所述特征向量,m为所述预设帧数,n为所述关键点个数,(xij,yij)表示第i帧图像中第个j关键点的特征值,表示归一化后的第i帧图像中第个j关键点的特征值,为归一化后的特征向量。
另外,所述姿态至少包括:站立、下蹲、弯腰、向前摔倒、向后摔倒。
另外,在所述判定所述姿态为摔倒之后,还包括:在所述监控视频中标记所述人物。通过此种方式,能够在发出警报的同时定位视频图像中发生摔倒的人物,从而能够迅速找到该人物并及时救助。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式提供的摔倒报警方法的流程图;
图2是根据本发明第二实施方式提供的摔倒报警方法的流程图;
图3是根据本发明第三实施方式提供的摔倒报警方法的流程图;
图4是根据本发明第三实施方式提供的神经网络训练方法的流程图;
图5是根据本发明第四实施方式提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种摔倒报警方法,本实施方式的核心在于:获取监控区域内的监控视频;将所述监控视频输入预设神经网络模型,得到所述监控视频中人物的多个人体关键点,根据所述多个人体关键点确定所述人物的姿态,并判断所述姿态是否为摔倒;在判定所述姿态为摔倒时,发送警报信息,从而能够快速、准确的判断人物是否摔倒,并在人物摔倒后及时报警。下面对本实施方式的摔倒报警方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
本实施方式中的摔倒报警方法具体流程如图1所示,包括:
S101:获取监控区域内的监控视频。
关于步骤S101,具体的说,本实施方式可以通过安装在固定位置的摄像头或配备摄像头的机器人摄取包含单个或多个被监测人的视频。值得一提的是,由于同一视频相邻帧之间的人物姿态的差异不大,为了减小后续步骤中预设神经网络模型的计算量,本实施方式中可以从监控视频中提取预设帧数的视频图像。为了便于理解,下面对本实施方式中如何从监控视频中提取预设帧数的视频图像进行举例说明:
假设监控视频是时长1秒的视频片段,包含25帧,从中等距抽取5帧,即提取出5帧的视频图像,可以理解的是,本实施方式中并不对抽取的视频图像的帧数作具体限定,也不对抽取方式作具体限定,如25帧的视频片段可以随机抽取第一帧、第三帧、第十帧等。
S102:将监控视频输入第一级神经网络,得到多个人体关键点。
关于步骤S102,具体的说,将监控视频输入第一级神经网络,可以为:将预设帧数的视频图像输入第一级神经网络。本实施方式的第一级神经网络可以为AlphaPose模型,AlphaPose既可以在图片、视频或多图中进行姿态估计,也能在画面中对动作进行追踪。通过使用AlphaPose模型提取视频图像中的人体关键点,训练模型所用的数据集为MSCOCO所提供的17个人体关键点标注图像,17个人体关键点包括:眼睛(2个)、耳朵(2个)、鼻子(1个)、左右肩(2个)、手肘(2个)、手腕(2个)、左右胯(2个)、膝盖(2个)、脚踝(2个)。
S103:根据多个人体关键点,得到用于表征人体姿态的特征向量。
关于步骤S103,具体的说,本实施方式中根据多个人体关键点,得到用于表征人体姿态的特征向量,可以为:获取多个所述人体关键点在所述视频图像中的多个坐标位置,其中,每个所述人体关键点对应一个所述坐标位置;连接所述多个所述人体关键点,并根据所述坐标位置得到多个向量;将多个所述向量首尾相连,得到所述特征向量。也就是说,上述步骤中的每个关键点的位置可以用两个数值表示,即该关键点在视频图像中的坐标(x,y),为了消除人体在图像中的绝对位置对算法的影响,同时使特征向量能更好地反映各个关键点之间的相对位置,本实施方式通过“关键点连线”的方式构造特征向量,具体方法如下:
先根据左右肩的坐标位置计算出中点的坐标,并将其作为人体的“中心点”,然后每个关键点的表示方式从原来的坐标值变更为从邻接关键点指向该关键点的向量值,因而构成如下17个向量(中心点->鼻子,鼻子->左/右眼,左/右眼->左/右耳朵;中心点->左/右肩,左/右肩->左/右手肘,左/右手肘->左/右手腕;中心点->左/右胯,左/右胯->左/右膝盖,左/右膝盖->左/右脚踝),每个向量由两个数值(Δx,Δy)表示,以上述步骤中抽取5帧视频图像为例,每组关键点构造的向量包含34个特征值,将每个人在5帧图像中对应的5组关键点分别表示为34维特征向量,并将5个特征向量首尾连接,即得到每个人所对应的170维特征向量。
S104:将特征向量输入第二级神经网络,得到人物姿态,在判定姿态为摔倒时发送警报信息。
关于步骤S104,具体的说,本实施方式的姿态至少包括:站立、下蹲、弯腰、向前摔倒、向后摔倒。值得一提的是,在实际应用中,姿态可以只包含“正常”和“摔倒”两大类。为了缩小“正常”类别的类内差异,可以对其进行细化分类,如“站立”、“下蹲”、“弯腰”等;为了缩小“摔倒”类别的类内差异,也可以对其进行细化分类,如“向前摔倒”、“向后摔倒”等。通过此种方式,使得第二级神经网络能够更准确的判断人物姿态,从而进一步提高判断人物是否摔倒的准确率。
值得一提的是,本实施方式中的第二神经网络可以使用基于人工神经网络的多层感知机模型。多层感知机模型包含1层输入层、3层隐含层和1层输出层。输入层和输出层包含的神经元个数分别与输入特征向量维数和所定义的姿态数一致,每个隐含层均由170个神经元构成。在实际应用中,可以适当调整隐含层的层数和神经元个数。隐含层所用的激活函数为ReLU(Rectified Linear Unit),输出层所用的激活函数为Softmax。需要说明的是,为了进一步提高判断人物是否摔倒的准确率,将特征向量输入多层感知机模型后,多层感知机模型通过特征向量计算出人物的姿态,若计算出的姿态类别是“摔倒”或其细分类别,且置信度高于所设定的阈值时,才会判定此人摔倒,并发出警报。可以理解的是,为了便于人物摔倒的判断,在多层感知机模型计算出人物摔倒的置信度后,可以在视频图像中标记出来。
本发明的实施方式相对于现有技术而言,通过获取监控区域内的监控视频,以便于后续步骤中通过该监控视频判断视频内的人物是否摔倒,再将监控视频输入预设神经网络模型中,得到所述监控视频中人物的姿态,并判断所述姿态是否为摔倒,由于所述姿态根据所述人物的多个人体关键点获取,而人物在各个姿态下的关键点相对位置差异很大,因此通过该特征判别其身体姿态具有很高的精度,从而能够准确判断人物是否摔倒;又由于通过人体关键点获取人物姿态更方便,速度也更快,因此判断人体姿态消耗的时间较短,从而能够快速判断人物是否摔倒,在判定所述姿态为摔倒时,发送警报信息,使得人物在摔倒后能够及时报警,避免了“通过综合相邻帧图像之间的光流信息对视频片段进行特征提取和分类时,分类的准确率不高、报警不及时”的情况的发生。
本发明的第二实施方式涉及一种摔倒报警方法,第二实施方式是在第一实施方式的基础上做了进一步的改进,具体改进之处在于:在第二实施方式中,在所述将所述特征向量输入第二级神经网络之前,还包括:对所述特征向量进行归一化处理;所述将所述特征向量输入第二级神经网络,具体包括:将归一化处理后的特征向量输入所述第二级神经网络。由于人体的姿态与其各个关键点之间的相对位置相关性强,而与人体在图像中出现的绝对位置,以及人体骨架的尺寸和比例相关性弱,因此通过对构造的特征向量进行归一化处理,能够使特征向量中只包含相邻关键点连线的方向信息,消除了人体绝对位置信息以及尺寸和比例信息,使得第二级神经网络能更快、更准确地学习到各个姿态所对应的特征。
本实施方式的具体流程如图2所示,包括:
S201:获取监控区域内的监控视频。
S202:将监控视频输入第一级神经网络,得到多个人体关键点。
S203:根据多个人体关键点,得到用于表征人体姿态的特征向量。
本实施方式的步骤S201至步骤S203与第一实施方式中的步骤S101至步骤S103类似,为了避免重复,此处不再赘述。
S204:对特征向量进行归一化处理。
关于步骤S204,具体的说,本实施方式中根据以下公式对所述特征向量进行归一化处理:K=(k1,k2...km);ki=(xi1,yi1,xi2,yi2,...,xi,n,yi,n); 其中,K为所述特征向量,m为所述预设帧数,n为所述关键点个数,(xij,yij)表示第i帧图像中第个j关键点的特征值,表示归一化后的第i帧图像中第个j关键点的特征值,为归一化后的特征向量。通过对构造的特征向量进行归一化处理,能够使特征向量中只包含相邻关键点连线的方向信息,消除了人体绝对位置信息以及尺寸和比例信息,使得第二级神经网络能更快、更准确地学习到各个姿态所对应的特征。
S205:将归一化处理后的特征向量输入第二级神经网络,得到人物姿态,在判定姿态为摔倒时发送警报信息。
本发明的实施方式相对于现有技术而言,通过获取监控区域内的监控视频,以便于后续步骤中通过该监控视频判断视频内的人物是否摔倒,再将监控视频输入预设神经网络模型中,得到所述监控视频中人物的姿态,并判断所述姿态是否为摔倒,由于所述姿态根据所述人物的多个人体关键点获取,而人物在各个姿态下的关键点相对位置差异很大,因此通过该特征判别其身体姿态具有很高的精度,从而能够准确判断人物是否摔倒;又由于通过人体关键点获取人物姿态更方便,速度也更快,因此判断人体姿态消耗的时间较短,从而能够快速判断人物是否摔倒,在判定所述姿态为摔倒时,发送警报信息,使得人物在摔倒后能够及时报警,避免了“通过综合相邻帧图像之间的光流信息对视频片段进行特征提取和分类时,分类的准确率不高、报警不及时”的情况的发生。
本发明的第三实施方式涉及一种摔倒报警方法,第三实施方式是在第二实施方式的基础上做了进一步的改进,具体改进之处在于:在第三实施方式中,监控视频为多个,且监控视频中的人物也为多个,在判定第一个监控视频中存在人物摔倒时,会继续判断第一个监控视频中的其他人物是否摔倒,直至第一个监控视频中的所有人物判断完成后,继续下一个监控视频的判断;在所述判定所述姿态为摔倒之后,还包括:在所述监控视频中标记所述人物。通过此种方式,能够在发出警报的同时定位视频图像中发生摔倒的人物,从而能够迅速找到发生摔倒的人物并及时救助。
本实施方式的具体流程如图3所示,包括:
S301:获取监控区域内未判别人物姿态的监控视频。
S302:将监控视频输入第一级神经网络,得到监控视频中多个人物的多组人体关键点。
S303:根据多组人体关键点中未判别人物姿态的一组人体关键点,得到用于表征人体姿态的特征向量。
S304:对特征向量进行归一化处理。
S305:将归一化处理后的特征向量输入第二级神经网络,得到人物姿态,判断姿态是否为摔倒,若是,则执行步骤S306;若否,则执行步骤S307。
S306:标记被判定为摔倒的人物,发送警报信息。
S307:判断监控视频中是否还有人未判别,若是,则执行步骤S303;若否,则执行步骤S301。
值得一提的是,如图4所示,本实施方式中的第一级神经网络和第二级神经网络的训练方式如下:
首先准备训练数据,由于会在视频图像中标记摔倒的人物,因此为了标记的唯一性,确保训练出来的神经网络模型具有较高的判断准确率,选取只包含单人的监控视频,然后按照上述实施方式中的方法从监控视频中抽取5帧视频图像,传入第一级神经网络,若第一级神经网络只提取出一个人的人体关键点,则构造特征向量并归一化,并将特征向量与所标注的姿态对应写入数据文件,否则丢弃此样本。重复以上操作,直到数据集中的所有视频片段都已被预处理。
再初始化第二神经网络的所有可训练参数,将数据文件的特征向量分批传入网络的输入层,并将对应的标注类别作为正确值;进行前向传递,并计算预测值与正确值的交叉熵损失函数;利用随机梯度下降法优化网络参数;重复以上步骤,直到模型收敛。
本发明的实施方式相对于现有技术而言,通过获取监控区域内的监控视频,以便于后续步骤中通过该监控视频判断视频内的人物是否摔倒,再将监控视频输入预设神经网络模型中,得到所述监控视频中人物的姿态,并判断所述姿态是否为摔倒,由于所述姿态根据所述人物的多个人体关键点获取,而人物在各个姿态下的关键点相对位置差异很大,因此通过该特征判别其身体姿态具有很高的精度,从而能够准确判断人物是否摔倒;又由于通过人体关键点获取人物姿态更方便,速度也更快,因此判断人体姿态消耗的时间较短,从而能够快速判断人物是否摔倒,在判定所述姿态为摔倒时,发送警报信息,使得人物在摔倒后能够及时报警,避免了“通过综合相邻帧图像之间的光流信息对视频片段进行特征提取和分类时,分类的准确率不高、报警不及时”的情况的发生。
本发明第四实施方式涉及一种电子设备,如图5所示,包括:
至少一个处理器401;以及,
与至少一个处理器401通信连接的存储器402;其中,
存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述摔倒报警方法。
其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。
处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。
本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。