
1.本技术属于动作检测技术领域,尤其涉及一种摔倒行为检测方法、装置、设备及可读介质。
背景技术:2.在日常生活和工作中,用户可能发生摔倒行为,尤其是老年人或儿童。而老年人或儿童摔倒存在较大的生命安全隐患。因此,能够及时发现并避免摔倒行为造成更大的伤害,尤为重要。
3.目前,相关技术中,主要采用计算视觉分析技术,通过对监控视频中用户进行行为分析,具体为首先将颈部作为稳定的参考点,再根据定义整个人的边界框计算人的感知高度,最后通过逐帧比较,通过确定颈部所在关键点的垂直距离是否为用户的感知身高的一半,来判断用户是否摔倒。
4.然而,相关技术无法区分如下场景:
5.一、用户在弯腰时,可能发生颈部所在关键点的垂直距离为用户的感知身高的一半的情况,导致误判为摔倒;
6.二、颈部所在关键点并不是比较稳定的,除了摔倒的场合,还可在正常跑、跳等情景下可能产生较大的位置变动,导致误判为摔倒。
技术实现要素:7.本技术提供了一种摔倒行为检测方法、装置、设备及可读介质,可以避免通过颈部所在关键点的垂直距离确定是否摔倒的方法导致误判概率较大的问题,保证了对是否摔倒的判定更加准确,降低了是否摔倒误判概率。
8.第一方面,本技术提供一种摔倒行为检测方法,包括:
9.获取目标体的待检测视频,所述待检测视频包括多帧图像;
10.获取每帧图像的目标部位的姿态数据,所述目标部位包括:颈部、腰部和脚部中的至少两个部位,所述目标部位的姿态数据用于表示所述目标体的姿态变化;
11.根据所述目标部位的姿态数据,确定所述目标体是否摔倒。
12.在第一方面的一种可能的实现方式中,所述获取每帧图像的目标部位的姿态数据,包括:
13.获取每帧图像的所述目标体的姿态数据;
14.根据所述目标体的姿态数据,获取所述目标部位的姿态数据。
15.在第一方面的一种可能的实现方式中,所述获取每帧图像的所述目标体的姿态数据,包括:
16.针对所述多帧图像中的任意一帧图像而言,确定所述一帧图像的多个关键点,每个关键点用于标识所述目标体的部位;
17.对所述多个关键点进行两两连接,得到多个关节连线;
18.从所述多个关节连线中选择属于所述目标体的关节连线;
19.根据属于所述目标体的关节连线,生成所述目标体的姿态图,所述目标体的姿态图用于表示所述目标体的当前姿态;
20.根据所述目标体的姿态图,获取所述目标体的姿态数据。
21.在第一方面的一种可能的实现方式中,所述根据所述目标体的姿态数据,获取所述目标部位的姿态数据,包括:
22.按照所述多帧图像的时间先后顺序,采用预设时间窗口在所述多帧图像上进行多次滑动,获取每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据;
23.按照所述预设时间窗口的滑动顺序,从每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据中,获取所述目标部位的姿态数据。
24.在第一方面的一种可能的实现方式中,所述预设时间窗口的长度为多帧图像中的一帧或多帧;
25.或者,所述预设时间窗口的长度为预先设置的长度。
26.在第一方面的一种可能的实现方式中,所述根据所述目标部位的姿态数据,确定所述目标体是否摔倒,包括:
27.对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵,所述多个矩阵用于指示所述目标部位的姿态变化;
28.根据每个矩阵,确定所述目标部位中每个部位对应的概率值,以获得多个概率值;
29.在确定所述多个概率值均大于预设阈值时,确定所述目标体摔倒;
30.在确定所述多个概率值中存在至少一个概率值小于或等于预设阈值时,确定所述目标体未摔倒。
31.在第一方面的一种可能的实现方式中,所述对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵之后,所述方法还包括:
32.对每个矩阵进行放大,以更新每个矩阵。
33.本技术提供的摔倒行为检测方法,避免了对判断是否摔倒存在较大误判概率的情况,有利于更好的对摔倒行为进行检测,提高了摔倒检测的准确度,降低了是否摔倒误判概率。
34.第二方面,本技术提供了一种摔倒行为检测装置,该装置用于执行上述第一方面或第一方面的任一可能的实现方式中的方法。具体地,该装置可以包括用于执行第一方面或第一方面的任一可能的实现方式中摔倒行为检测方法的模块。
35.第三方面,本技术提供了一种摔倒行为检测设备,该设备包括存储器与处理器。该存储器用于存储指令;该处理器执行该存储器存储的指令,使得该设备执行第一方面或第一方面的任一可能的实现方式中摔倒行为检测方法。
36.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中摔倒检测方法。
37.第五方面,本技术提供一种包含指令的计算机程序产品,当该指令在设备上运行
时,使得设备执行第一方面或第一方面的任一可能的实现方式中摔倒检测方法。
38.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
39.为了更清楚地说明本技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是本技术一实施例提供的摔倒行为检测方法的流程示意图;
41.图2a是本技术一实施例提供的摔倒行为检测方法的流程示意图;
42.图2b是本技术一实施例提供的关键点的示意图;
43.图2c是本技术一实施例提供的多个关节连线的示意图;
44.图2d是本技术一实施例提供的选择属于目标体的关节连线的示意图;
45.图2e是本技术一实施例提供的目标体的姿态图;
46.图2f是本技术一实施例提供的目标体的姿态数据的示意图;
47.图3a是本技术一实施例提供的摔倒行为检测方法的流程示意图;
48.图3b是本技术一实施例提供的预设时间窗口的滑动过程示意图;
49.图4是本技术一实施例提供的摔倒行为检测方法的流程示意图;
50.图5是本技术一实施例提供的摔倒行为检测方法的流程示意图;
51.图6是本技术一实施例提供的摔倒行为检测装置的结构示意图;
52.图7是本技术一实施例提供的摔倒行为检测设备的结构示意图。
53.附图标记说明:
54.每个实心点表示一帧图像中的每个关键点;
55.线11、线12、线13、线14、线15和线16分别表示关键点a与其他关键点的关节连线,其中,线16为无效关节连线,线17为不属于目标体的关节连线;
56.目标体的姿态图标记为100;
57.每个空心点表示目标体中每个部位所在的关键点;
58.空心点a表示颈部所在关键点;
59.(x1,y1)表示颈部的坐标;
60.空心点b表示腰部所在关键点;
61.(x2,y2)表示腰部的坐标;
62.空心点c
l
表示左脚所在关键点;
63.(x
l3
,y
l3
)表示左脚的坐标;
64.空心点cr表示右脚所在关键点;
65.(x
r3
,y
r3
)表示右脚的坐标。
具体实施方式
66.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具
体细节,以便透彻理解本技术。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
67.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
68.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
69.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0070]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0071]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0072]
本技术提供一种摔倒行为检测方法、装置、设备及可读介质,该方法可以通过摔倒行为检测装置进行实现,且应用于公共场所或者家庭内部的监控场景中。
[0073]
其中,摔倒行为检测装置与摔倒行为检测设备通信连接。例如,摔倒行为检测装置可通过图像处理器的形式,与摔倒行为检测设备进行相互通信,使得摔倒行为检测装置与摔倒行为检测设备相互传递信息。摔倒行为检测装置可以通过图像处理器实现摔倒行为检测的过程。
[0074]
其中,摔倒行为检测设备指的是可以对摔倒行为进行检测的设备。摔倒行为检测设备可以为具有摄像头硬件以及相应软件支持的设备,例如,监控摄像头。
[0075]
基于上述场景描述,下面,结合摔倒行为检测装置,对本技术一实施例提供的摔倒行为检测方法进行详细说明。
[0076]
请参阅图1,图1示出了本技术一实施例提供的摔倒行为检测方法的流程示意图。
[0077]
如图1所示,本技术提供的摔倒行为检测方法,可以包括:
[0078]
s101、获取目标体的待检测视频,所述待检测视频包括多帧图像。
[0079]
目标体的待检测视频可以为监控场景下的具有目标体的视频。
[0080]
摔倒行为检测装置可以与摔倒行为检测设备进行通信。摔倒行为检测设备可以通过拍摄的形式,实时获取目标体的待检测视频,并发送给摔倒行为检测装置,摔倒行为检测装置可以从摔倒行为检测设备中获取目标体的待检测视频。本技术对摔倒行为检测装置从摔倒行为检测设备中获取目标体的待检测视频的具体实现方式不做限定。
[0081]
其中,摔倒行为检测装置从摔倒行为检测设备中获取目标体的待检测视频后,可
以对目标体的待检测视频中的每帧图像进行提取,得到多帧图像,为获取每帧图像的目标部位的姿态数据做好数据准备。
[0082]
在一种实施例中,目标体可以包括但不限于人体、机器人和动物。
[0083]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,且目标体为人体时,图像处理器可以从监控摄像头中实时获取监控场景下的人体的待检测视频,并将人体的待检测视频进行提取,得到多帧图像。
[0084]
s102、获取每帧图像的目标部位的姿态数据,所述目标部位包括:颈部、腰部和脚部中的至少两个部位,所述目标部位的姿态数据用于表示所述目标体的姿态变化。
[0085]
其中,每个目标体中包括有多个目标部位,则每帧图像中包括有多个目标部位。目标部位的姿态数据用于标识目标体的姿态变化。例如,通过目标部位的姿态数据变化确定目标体为站姿、摔倒、卧姿和躺姿等姿态变化。
[0086]
由于目标体的动作变化,目标部位的姿态可能发生变化,每帧图像的目标部位的姿态可能不同,因此,摔倒检测装置需要获取每帧图像中目标部位的姿态数据,为确定目标体是否摔倒提供数据准备。
[0087]
在一些实施例中,目标部位包括:颈部、腰部和脚部中的至少两个部位,例如,目标部位可以包括颈部、腰部和脚部(左脚和右脚)。
[0088]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,且目标部位包括颈部、腰部和脚部时,图像处理器在获取到多帧图像后,获取每帧图像的颈部、腰部和脚部的姿态数据。
[0089]
s103、根据所述目标部位的姿态数据,确定所述目标体是否摔倒。
[0090]
由于目标体的动作变化,摔倒检测装置获取的每帧图像的目标部位的姿态数据可能不同,摔倒检测装置可以根据目标部位的姿态数据判定目标体是否摔倒。
[0091]
在一些实施例中,摔倒检测装置可以根据目标部位的姿态数据判定目标体为站姿、卧姿、躺姿或者摔倒。
[0092]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,且目标部位包括颈部、腰部和脚部时,图像处理器在获取每帧图像的颈部、腰部和脚部的姿态数据后,根据颈部、腰部和脚部的姿态数据确定是否摔倒。
[0093]
可以理解的是,目标体可以有至少一个。当具有一个目标体时,摔倒检测装置可以采用图1所示s101、s102和s103的方法进行摔倒行为检测。当具有两个及以上目标体时,摔倒检测装置也可以采用图1所示s101、s102和s103的方法进行摔倒行为检测。
[0094]
本技术提供的摔倒行为检测方法,摔倒检测装置通过先获取目标体的待检测视频对应的多帧图像,再获取每帧图像的目标部位的姿态数据,最后根据目标部位的姿态数据,确定目标体是否摔倒。通过颈部、腰部和脚部中的至少两个部位的姿态数据确定是否摔倒的方式,更好的保证了摔倒行为检测的准确度,避免了对判断是否摔倒存在较大误判概率的情况,降低了是否摔倒的误判概率。基于图1所示s102实施例的描述,摔倒检测装置获取每帧图像的目标部位的姿态数据,可以通过先获取每帧图像的目标体的姿态数据,再根据目标体的姿态数据,获取目标部位的姿态数据来实现。
[0095]
下面,结合图2a和图3a,详细介绍本技术的摔倒行为检测方法的具体实现过程。
[0096]
请参阅图2a,图2a示出了本技术一实施例提供的摔倒检测方法的流程示意图。
[0097]
如图2a所示,本技术提供的摔倒检测方法包括:
[0098]
s201、针对所述多帧图像中的任意一帧图像而言,确定所述一帧图像的多个关键点,每个关键点用于标识所述目标体的部位。关键点可以包括但不限于头部、颈部、肘部、手腕、肩部、腰部、膝盖以及脚部(左脚和右脚)等目标体的部位所在的关键点。
[0099]
在一些实施例中,摔倒检测装置可以通过人体姿态估计(human pose estimation)算法确定多帧图像中每帧图像的关键点。其中,人体姿态估计算法包括但不限于openpose算法。
[0100]
openpose算法是用于确定目标体的待检测视频对应的多帧图像中目标体的关键点的技术。openpose算法为首先通过检测器识别出每帧图像中的目标体,再确定每个目标体对应的关键点。
[0101]
其中,openpose算法为预先训练的openpose算法,摔倒检测装置可以预先训练openpose算法,训练完成后,摔倒检测装置将预先训练的openpose算法存储在摔倒检测装置和/或存储设备中。
[0102]
预先训练的openpose算法可以通过目标体摔倒的图像和未摔倒的图像的数据集对openpose算法进行训练得到。其中,目标体摔倒的图像和未摔倒的图像的数据集可以为预先拍摄准备的数据集,也可以为从现有的目标体摔倒的图像和未摔倒的图像数据集中选取得到的。
[0103]
在一些实施例中,目标体为人体时,一帧图像中可以至少包括一个人体,摔倒检测装置通过openpose算法确定出的关键点包括至少一个人体的关键点。在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,且目标体为人体时,图像处理器在获取到多帧图像后,获取存储设备预先存储的预先训练的openpose算法,通过预先训练的openpose算法,可以得到每帧图像中人体的多个关键点。
[0104]
假设其中一帧图像中具有人体甲的整体和人体乙的部分。如图2b所示,从此帧图像中通过openpose算法确定出的关键点包括:人体甲的所有关键点和人体乙的一个关键点。
[0105]
s202、对所述多个关键点进行两两连接,得到多个关节连线。
[0106]
关键点具有多个,每个关节连线为将多个关键点两两连线连接而成。在一些实施例中,摔倒检测装置可以通过部位亲和域算法,将多个关键点连接成多个关节连线。
[0107]
其中,部位亲和域算法是用于将关键点相互连接的技术。
[0108]
其中,摔倒检测装置可以预先设定部位亲和域算法,并将部位亲和域算法预先存储在摔倒检测装置和/或存储设备中。
[0109]
在一些实施例中,在目标体为人体时,通过将人体关键点两两连接得到的关节连线可以包括但不限于:颈部和肩部连接得到的关节连线、肩部和肘部连接得到的关节连线、肘部和手腕连接得到的关节连线、腰部和膝盖连接得到的关节连线。
[0110]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,且目标体为人体时,图像处理器在通过预先训练
的openpose算法获取每帧图像的人体的多个关键点后,通过部位亲和域算法,将人体的多个关键点进行两两连接,得到多个关节连线。
[0111]
其中,如图2c所示,通过将关键点a与其他关键点连接的关节连线可以包括:人体甲的头部和颈部连成的关节连线11、人体甲的颈部和左肩部连成的关节连线12、人体甲的颈部和左肩部连成的关节连线13、人体甲的颈部和腰部连成的关节连线14、人体甲的颈部和肘部连成的关节连线15以及人体甲的颈部和人体乙的头部连接成的关节连线16。
[0112]
s203、从所述多个关节连线中选择属于所述目标体的关节连线。
[0113]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,且目标体为人体时,图像处理器在通过部位亲和域算法,将人体的多个关键点连接成关节连线后,由于线15为无效关节连线,线16为不属于人体甲的关节连线,因此,如图2d所示,将线15和线16去除,即可得到属于人体甲的关节连线。
[0114]
s204、根据属于所述目标体的关节连线,生成所述目标体的姿态图,所述目标体的姿态图用于表示所述目标体的当前姿态。
[0115]
以未摔倒为参见,目标体的当前姿态可以为发生扭动/倾斜时的角度和位移。
[0116]
在一些实施例中,摔倒检测装置可以通过匈牙利算法根据属于目标体的关节连线,生成目标体姿态图。
[0117]
摔倒检测装置可以预先设定匈牙利算法,并将匈牙利算法预先存储在摔倒检测装置和/或存储设备中。
[0118]
其中,匈牙利算法是用于获取各个关节的有效(最优)连接方式并形成目标体的姿态图的技术。
[0119]
在一些实施例中,在目标体为人体时,生成的目标体的姿态图为人体的姿态图。
[0120]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,且目标体为人体时,在筛选出属于人体甲的关节连线后,通过匈牙利算法根据属于人体甲的关节连线,生成人体甲的姿态图。其中,如图2e所示,为通过匈牙利算法生成的人体甲的姿态图。
[0121]
s205、根据所述目标体的姿态图,获取所述目标体的姿态数据。
[0122]
可以理解的是,s205获取的目标体的姿态数据为多帧图像中的任意一帧图像的目标体的姿态数据。
[0123]
任意一帧图像的目标体的姿态数据用于表示目标体在当前帧图像中的当前姿态。
[0124]
在一些实施例中,姿态数据包括但不限于坐标数据。在获取坐标数据时,通过在目标体的姿态图对应的每帧图像中构建平面直角坐标系,以获取每帧图像的目标部位的坐标数据。其中,在构建平面直角坐标系时,以每帧图像的左下角为原点,划分水平的y坐标和竖直的y坐标。
[0125]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,且姿态数据为坐标数据时,图像处理器在通过匈牙利算法生成人体甲的姿态图后,在人体甲的姿态图对应的每帧图像中构建平面直角坐标系,以获取人体甲的各个部位对应的关键点的坐标数据。
[0126]
如图2f所示,空心点a表示颈部所在关键点,空心点b表示腰部所在关键点,空心点cl
表示左脚所在关键点,空心点cr表示右脚所在关键点,其中,颈部所在关键点a可以与关键点a重合,也可以不与关键点a重合。(x1,y1)表示颈部的坐标,(x2,y2)表示腰部的坐标,(x
l3
,y
l3
)表示左脚的坐标,(x
r3
,y
r3
)表示右脚的坐标。
[0127]
本技术中,摔倒检测装置通过先确定每帧图像的多个关键点,然后对多个关键点进行两两连接成多个关节连线,并从多个关节连线中选择属于目标体的关节连线,再根据属于目标体的关节连线,生成目标体的姿态图,最后根据目标体的姿态图,获取目标体的姿态数据。由此,本技术提供的方法可以避免以下情况:
[0128]
1、将图像目标体的关键点两两连接时产生的无效关节连线。比如,在目标体为人体时,本应该颈部和肩部连接成关节连线,而将颈部和肘部连接成关节连线。
[0129]
2、图像上有多个目标体时,将不同目标体的关键点连接产生的无效关节连接。比如,在目标体为人体时,将人体甲的颈部和人体乙的头部连接成的关节连线。
[0130]
基于图2a所示实施例的描述,摔倒检测装置在获取每帧图像的目标体的姿态数据后,再根据目标体的姿态数据,获取目标部位的姿态数据。
[0131]
下面,结合图3a,详细介绍摔倒检测装置执行上述过程的具体实现方式。
[0132]
请参阅图3a,图3a示出了本技术一实施例提供的摔倒行为检测方法的流程示意图。
[0133]
如图3a所示,本技术的摔倒行为检测方法可以包括:
[0134]
s301、按照所述多帧图像的时间先后顺序,采用预设时间窗口在所述多帧图像上进行多次滑动,获取每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据。
[0135]
摔倒检测装置可以预先设置预设时间窗口,并将预设时间窗口预先存储在摔倒检测装置和/或存储设备中。
[0136]
摔倒检测装置可以根据预设时间窗口的长度,将预设时间窗口映射在于预设窗口对应的帧数的图像上,预设时间窗口每向后滑动一格,可以提取每个预设时间窗口中图像的姿态数据。相当于一个长度确定的滑块在刻度尺上面滑动,每滑动一个单位即可反馈滑块内的数据。
[0137]
可以理解的时,预设时间窗口内的图像帧数与预设时间窗口的长度相对应。
[0138]
其中,所述预设时间窗口的长度为多帧图像中的一帧或多帧;或者,所述预设时间窗口的长度为预先设置的长度。
[0139]
在一些实施例中,预设时间窗口的长度可以为n,且预设时间窗口每向后滑动一次的时间为m秒。例如,n可以设置为10,m可以设置为1秒。在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,且目标部位包括颈部、腰部和脚部时,图像处理器在获取每帧图像的人体的姿态数据后,从存储设备中获取预先储存的预设时间窗口,通过长度为10的预设时间窗口在多帧图像上每1秒滑动一次,每1秒采集10帧图像的人体的姿态数据。
[0140]
其中,如图3b所示,预设时间窗口采用黑框进行表示,假设从目标体的待检测视频中提取的多帧图像为20帧,每个预设时间窗口的长度为10,预设时间窗口滑动一次的时间为1秒,滑动完20帧图像需要滑动11次。
[0141]
基于上述内容,摔倒检测装置可以按照20帧图像的时间先后顺序,采用长度为10
的时间窗口从第1帧图像开始滑动,每过1秒,向后滑动1个窗口,滑动第11次时,预设时间窗口长度中最后一个窗口到达最后一帧图像。在滑动的过程中,依次获取每次滑动对应的长度10的预设时间窗口内10帧图像的目标体的姿态数据。例如,第1次滑动获取第1帧至第10帧图像的目标体的姿态数据。
[0142]
s302、按照所述预设时间窗口的滑动顺序,从每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据中,获取所述目标部位的姿态数据。
[0143]
获取目标体中目标部位的姿态数据,可以为确定目标体是否摔倒提供数据准备。
[0144]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,目标部位包括颈部、腰部和脚部,从目标体的待检测视频中提取的多帧图像为20帧,且姿态数据为坐标数据时,图像处理器在获取每次滑动对应的预设时间窗口内图像的目标体的姿态数据后,按照预设时间窗口的滑动顺序,获取每次滑动所对应的位于预设时间窗口中颈部、腰部和脚部的坐标数据。
[0145]
其中,第1帧图像中颈部的坐标数据为(x
10
,y
10
),第10帧图像中颈部的数据为(x
19
,y
19
);第1帧图像中腰部的坐标数据为(x
20
,y
20
),第10帧图像中腰部的坐标数据为(x
29
,y
29
);第1帧图像中左脚的坐标数据为(x
30l
,y
30l
),第1帧图像中左脚的坐标数据为(x
30r
,y
3r
),第10帧图像中左脚的坐标数据为(x
39l
,y
39l
),第10帧图像中右脚的坐标数据为(x
39r
,y
39r
)。
[0146]
本技术中,摔倒检测装置按照多帧图像的时间先后顺序,采用预设时间窗口在多帧图像上依次进行滑动,获取每次滑动所对应的位于预设时间窗口内图像的目标体的姿态数据,再按照预设时间窗口的滑动顺序,从预设时间窗口内图像的目标体的姿态数据中获取目标部位的姿态数据。摔倒检测装置借助多帧图像的时间先后顺序获取目标部位的姿态数据,以目标部位的姿态数据为依据判定目标体是否摔倒,不仅可以减少运算量,还可以使得目标体是否摔倒的判定更加准确。
[0147]
基于图1所示s103实施例的描述,摔倒检测装置可以通过多种方式,确定目标体是否摔倒。例如,摔倒检测装置可以通过以下方式判定目标体是否摔倒:
[0148]
1、根据目标部位的姿态与摔倒时的姿态进行比较,判定目标体是否摔倒;
[0149]
2、根据目标部位的姿态数据与摔倒时的姿态数据进行比较,判定目标体是否摔倒;
[0150]
3、根据目标部位的姿态数据与预设阈值进行比较,判定目标体是否摔倒。
[0151]
基于图2a和图3a所示实施例的描述,摔倒检测装置采用上述第3种确定目标体是否摔倒的方式可以通过图4所示实施例的描述来实现。
[0152]
下面,结合图4,详细介绍本技术的摔倒检测方法的具体实现过程。
[0153]
请参阅图4,图4示出了本技术一实施例提供的摔倒检测方法的流程示意图。
[0154]
如图4所示,本技术提供的摔倒检测方法包括:
[0155]
s401、对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵,所述多个矩阵用于指示所述目标部位的姿态变化。
[0156]
其中,矩阵(matrix)用于对每次滑动所对应的位于预设时间窗口中图像的目标体的姿态数据进行归一化处理。
[0157]
在一些实施例中,由于预设时间窗口的长度为n,将每次滑动所对应的位于预设时间窗口内的图像的目标体的姿态数据进行归一化处理后,得到的矩阵为2*3n的矩阵。例如,
预设时间窗口的长度为10时,转换后的矩阵为2*30的矩阵。
[0158]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,目标部位为颈部、腰部和脚部,从目标体的待检测视频中提取的多帧图像为20帧,且姿态数据为坐标数据时,图像处理器在获取到每次滑动所对应的位于预设时间窗口内的图像的目标体的坐标数据后,可以将每次滑动所对应的位于预设时间窗口中图像的颈部、腰部和脚部的坐标数据转换为矩阵a。
[0159]
其中,矩阵a可以表示为:
[0160][0161]
s402、根据每个矩阵,确定所述目标部位中每个部位对应的概率值,以获得多个概率值。
[0162]
概率值用于表示根据目标部位的姿态数据变化确定是否摔倒的概率。其中,多个概率值对应于多个矩阵。
[0163]
在一些实施例中,摔倒检测装置可以通过分类模型,根据每个矩阵确定目标部位中每个部位对应的概率值,以获得多个概率值。
[0164]
分类模型属于判别模型,分类模型是用于计算矩阵对应的概率值,并将概率值进行识别和分类的技术。
[0165]
其中,分类模型为预先训练的分类模型,摔倒检测装置可以预先训练分类模型,训练完成后,摔倒检测装置将预先训练的分类模型存储在摔倒检测装置和/或存储设备中。
[0166]
预先训练的分类模型可以通过目标体摔倒的图像和未摔倒的图像对应的矩阵数据集进行训练。
[0167]
在一些实施例中,分类模型可以包括但不限于支持向量机模型(support vector machine,svm)。支持向量机模型是一种二分类模型,属于判别模型。摔倒检测装置可以通过将矩阵输入支持向量机模型,输出得到矩阵对应的概率值。
[0168]
其中,在目标体为目标体为人体,目标部位包括为颈部、腰部和脚部时,多个概率值分别为颈部、腰部和脚部的概率值。
[0169]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,目标部位为颈部、腰部和脚部,且姿态数据为坐标数据时,图像处理器在将每个预设时间窗口中图像的颈部、腰部、脚部的坐标数据转换为矩阵后,图像处理器从存储设备中调取预先训练的支持向量机模型,通过预先训练的支持向量机模型,可得到每个矩阵对应的多个概率值,多个概率值分别为颈部、腰部和脚部的概率值。
[0170]
例如,多个概率值可以表示为:[k,w,l
l
,lr],其中,k表示颈部的概率值,w表示腰部的概率值,l
l
表示左脚的概率值,lr表示右脚的概率值。
[0171]
s403、确定所述多个概率值是否均大于预设阈值。
[0172]
在确定所述多个概率值均大于预设阈值时,摔倒检测装置可执行s3041;在确定所述多个概率值中存在至少一个概率值小于或等于预设阈值时,摔倒检测装置可执行s3042。
[0173]
s4041、确定所述目标体摔倒。
[0174]
摔倒检测装置可以预设阈值,并将预设阈值预先设置存储在摔倒检测装置中。
[0175]
在一些实施例中,摔倒行为检测装置在确定概率值中目标部位的概率值均大于预设阈值时,确定人体摔倒。
[0176]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,目标部位为颈部、腰部和脚部,且计算得到的多个概率值中颈部、腰部和脚部的概率值分别为70、80和70,预先储存的颈部、腰部和脚部的预设阈值分别为50、70和60时,摔倒行为检测装置可以确定概率值中颈部、腰部和脚部的概率值均大于预设阈值,可以判定目标体摔倒。
[0177]
s4042、确定所述目标体未摔倒。
[0178]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,目标部位为颈部、腰部和脚部,图像处理器计算得到的多个概率值中颈部、腰部和脚部的概率值分别为40、70和50,且预先储存的颈部、腰部和脚部的预设阈值分别为50、70和60时,摔倒行为检测装置可以确定概率值中颈部和脚部的概率值均小于预设阈值,且腰部的概率值等于预设阈值,可以判定目标体未摔倒。
[0179]
本技术中,摔倒检测装置通过先对每次滑动所对应的位于预设时间窗口内的图像的目标体的姿态数据进行矩阵转换,根据每个矩阵,确定目标部位中每个部位对应的概率值以获得多个概率值,再根据多个概率值与预设阈值的比较确定是否摔倒,更加精确的保证了摔倒行为检测的准确度,避免了对目标体是否摔倒误判概率。
[0180]
基于图4实施例的描述,摔倒行为检测装置在对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换之后,还可以对矩阵做放大处理。
[0181]
下面结合图5,详细介绍摔倒行为检测装置执行上述过程的实现方式。
[0182]
请参阅图5,图5示出了一实施例提供的摔倒检测方法的流程示意图。
[0183]
如图5所示,本技术提供的摔倒检测方法可以包括:
[0184]
s501、对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵,所述多个矩阵用于指示所述目标部位的姿态变化。
[0185]
s502、对每个矩阵进行放大,以更新每个矩阵。
[0186]
需要说明的是,s502为可选地步骤。
[0187]
摔倒检测装置可以通过放大处理算法对矩阵进行放大,并更新每个矩阵。
[0188]
其中,摔倒检测装置可以预先将放大处理算法存储在摔倒检测装置和/或存储设备中。
[0189]
在一些实施例中,放大处理算法可以为非线性与线性组合模型。其中,对每个矩阵进行矩阵放大可以使保证输出的每个矩阵的质量,为计算每个矩阵对应概率值的准确性提供数据保障。
[0190]
在一个具体的实施例中,假设摔倒行为检测设备为监控摄像头,摔倒行为检测装置为连接在监控摄像头上的图像处理器,目标体为人体,且目标部位为颈部、腰部和脚部时,图像处理器对每次滑动所对应的位于预设时间窗口内的图像的目标体的姿态数据进行矩阵转换后,图像处理器从存储设备中获取预先储存的非线性与线性组合模型对矩阵进行放大,以使得在计算概率值时,计算的概率值更加精确。
[0191]
s503、根据每个矩阵,确定所述目标部位中每个部位对应的概率值,以获得多个概率值。
[0192]
s504、确定所述多个概率值是否均大于预设阈值。
[0193]
在确定所述多个概率值均大于预设阈值时,摔倒检测装置可执行s5051;在确定所述多个概率值中存在至少一个概率值小于或等于预设阈值时,摔倒检测装置可执行s5052。
[0194]
s5051、确定所述目标体摔倒。
[0195]
s5052、确定所述目标体未摔倒。
[0196]
其中,s501、s503、s504、s5051和s5052分别与图4所示实施例中的s401、s402、s403、s4041和s4042的实现方式类似,本技术此处不再赘述。
[0197]
本技术中,摔倒行为检测装置在对每次滑动所对应的位于预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换后,将矩阵进行处理,可以保证输出矩阵的质量,以使得计算的概率值更加精确,进一步保证摔倒行为的检测更加准确。
[0198]
对应于上述图1实施例所述的摔倒检测方法,本技术还提供了摔倒检测装置。
[0199]
下面,结合图6,对本技术一实施例提供的摔倒检测装置进行详细说明。
[0200]
请参阅图6,图6示出了本技术一实施例提供的摔倒检测装置的示意性框图。
[0201]
如图6所示,本技术一实施例提供的摔倒检测装置600,包括第一获取模块601、第二获取模块602和判定模块603。
[0202]
第一获取模块601,用于获取目标体的待检测视频,所述待检测视频包括多帧图像。
[0203]
第二获取模块602,用于获取每帧图像的目标部位的姿态数据,所述目标部位包括:颈部、腰部和脚部中的至少两个部位,所述目标部位的姿态数据用于表示所述目标体的姿态变化。
[0204]
判定模块603,用于根据所述目标部位的姿态数据,确定所述目标体是否摔倒。
[0205]
在一些实施例中,第二获取模块602,具体用于:
[0206]
获取每帧图像的所述目标体的姿态数据;
[0207]
根据所述目标体的姿态数据,获取所述目标部位的姿态数据。
[0208]
在一些实施例中,第二获取模块602,具体用于:
[0209]
针对所述多帧图像中的任意一帧图像而言,确定所述一帧图像的多个关键点,每个关键点用于标识所述目标体的部位;
[0210]
对所述多个关键点进行两两连接,得到多个关节连线;
[0211]
从所述多个关节连线中选择属于所述目标体的关节连线;
[0212]
根据属于所述目标体的关节连线,生成所述目标体的姿态图,所述目标体的姿态图用于表示所述目标体的当前姿态;
[0213]
根据所述目标体的姿态图,获取所述目标体的姿态数据。
[0214]
在一些实施例中,第二获取模块602,具体用于:
[0215]
按照所述多帧图像的时间先后顺序,采用预设时间窗口在所述多帧图像上进行多次滑动,获取每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据;
[0216]
按照所述预设时间窗口的滑动顺序,从每次滑动所对应的位于所述预设时间窗口
内的图像的所述目标体的姿态数据中,获取所述目标部位的姿态数据。
[0217]
在一些实施例中,所述预设时间窗口的长度为多帧图像中的一帧或多帧;
[0218]
或者,所述预设时间窗口的长度为预先设置的长度。
[0219]
在一些实施例中,判定模块603,具体用于:
[0220]
对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵,所述多个矩阵用于指示所述目标部位的姿态变化;
[0221]
根据每个矩阵,确定所述目标部位中每个部位对应的概率值,以获得多个概率值;
[0222]
在确定所述多个概率值均大于预设阈值时,确定所述目标体摔倒;
[0223]
在确定所述多个概率值中存在至少一个概率值小于或等于预设阈值时,确定所述目标体未摔倒。
[0224]
在一些实施例中,摔倒检测装置600还包括:放大模块(图6中未进行示意)。
[0225]
放大模块,用于在判定模块603对每次滑动所对应的位于所述预设时间窗口内的图像的所述目标体的姿态数据进行矩阵转换,得到多个矩阵之后,对每个矩阵进行放大,以更新每个矩阵。
[0226]
应理解的是,本技术的摔倒检测装置600可以通过专用集成电路(application-specific integrated circuit,asic)实现,或可编程逻辑器件(programmable logic device,pld)实现,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现图1所示的摔倒检测方法,当通过软件实现图1所示的摔倒检测方法时,装置600及其各个模块也可以为软件模块。
[0227]
图7为本技术提供的摔倒检测设备的结构示意图。如图7所示,其中设备700包括处理器701、存储器702、通信接口703和总线704。其中,处理器701、存储器702、通信接口703通过总线704进行通信,也可以通过无线传输等其他手段实现通信。该存储器702用于存储指令,该处理器701用于执行该存储器702存储的指令。该存储器702存储程序代码7021,且处理器701可以调用存储器702中存储的程序代码7021执行图1所示摔倒检测方法。
[0228]
应理解,在本技术中,处理器701可以是cpu,处理器701还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
[0229]
该存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器702还可以包括非易失性随机存取存储器。该存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data date sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同
步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0230]
该总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图7中将各种总线都标为总线704。
[0231]
应理解,根据本技术的设备700可对应于本申中的装置600,并可以对应于本技术图1所示方法中的设备,当设备700对应于图1所示方法中的设备时,设备700中的各个模块的上述和其它操作和/或功能分别为了实现图1中的由设备执行的方法的操作步骤,为了简洁,在此不再赘述。
[0232]
本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0233]
本技术提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动设备执行时实现可实现上述各个方法实施例中的步骤。
[0234]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术的实施过程构成任何限定。
[0235]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0236]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0237]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0238]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0239]
在本技术所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0240]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术方案的目的。
[0241]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。