基于fpga和深度学习的老人室内跌倒检测方法及装置
技术领域
本发明涉及数据处理
技术领域
,具体涉及一种基于FPGA和深度学习的老人室内跌倒检测方法及装置。背景技术
根据第七次全国人口普查数据,我国60岁及以上人口达到2.6亿,占我国人口总数的18.7%,其中65岁及以上人口比重达到13.5%,我国已进入深度老龄化社会。对于老年人,行动不便导致摔倒是损害健康的一种。卫生部公布的《老年人跌倒干预技术指南》指出“跌倒是我国65岁以上老年人伤害死亡的首位原因”。如果老人跌倒后,不进行及时的救助,可能会使结果恶化。如何能够检测老人跌倒,并在老人跌倒时能够及时报警并通知救护人员,具有极大的市场价值。
传统技术中,老人跌倒检测方法有三大类:穿戴式传感器法、声学信号法和视频图像法。
穿戴式传感器法将加速度传感器和陀螺仪等装置嵌入可穿戴设备中,实时采集人体角速度、加速度等参数。当这些特征参数发生较大变化时,可通过一定的算法判断是否发生了跌倒事件。穿戴式传感器方法需要老年人佩戴专用的检测设备,而老年人由于记忆功能衰退,往往容易遗忘,同时穿戴设备可使老年人感觉不舒适,因此,穿戴式传感器方法市场接受度比较小。
声学信号法通过识别老人跌倒时发出的声音来判定跌倒状态,这种方法对环境有很高的要求,在某些环境噪声下难以进行精确检测。
视频图像法使用图像处理技术来构建人体跌倒模型以检测跌倒状态。而基于深度学习的视频图像处理算法可准确地对人体行为进行姿态识别。然而,深度学习算法对算力要求高,往往在云端进行处理,而将含有人体姿态的视频流传输到云端处理具有隐私隐患,且时延长。
发明内容
为此,本发明提供一种基于FPGA和深度学习的老人室内跌倒检测方法及装置,实现老人的跌倒状态检测预警,解决传统检测技术复杂、精确度及效率低及缺少隐私保护的问题。
为了实现上述目的,本发明提供如下技术方案:基于FPGA和深度学习的老人室内跌倒检测方法,包括以下步骤:
S1、获取人体在预设姿态下的姿态图片数据,在所述姿态图片中标识出人体框的位置;
S2、构建所述人体框的深度学习网络模型,利用标注完毕的姿态图片进行所述深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;
S3、将训练完毕的深度学习网络模型加载到FPGA平台中;利用所述FPGA平台识别待检测的视频流图片;
S4、当所述FPGA平台判断所述视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。
作为基于FPGA和深度学习的老人室内跌倒检测方法的优选方案,步骤S1中,所述预设姿态下的姿态图片数据包括MSCOCO、MPII、LSP和FLIC公开人体姿态数据集,预设姿态下的姿态图片数据还包括用户自身采集的人体姿态数据集;
所述人体框的位置标识采用语义分割标注工具labelme进行标识,所述人体框为包含人体的矩形框。
作为基于FPGA和深度学习的老人室内跌倒检测方法的优选方案,步骤S2包括以下步骤:
S21、标注所述人体框的位置后,得到矩形的所述人体框中心点坐标(Xc,Yc)、宽度W和高度H;
S22、将标注好的姿态图片作为深度学习网络的输入,对每张姿态图片利用卷积神经网络CNN进行特征提取得到特征图;
S23、对所述特征图利用全连接层FC进行运算,得到矩形的所述人体框的坐标。
作为基于FPGA和深度学习的老人室内跌倒检测方法的优选方案,步骤S22中,通过所述卷积神经网络CNN对输入的姿态图片数据进行归一化处理并调整图像大小,对每张姿态图片利用八层卷积神经网络进行特征提取:
第一层为卷积层;
第二层为最大池化层;
第三层为卷积层;
第四层为最大池化层;
第五层为卷积层;
第六层为卷积层,第六层和第五层的卷积核大小和步长相同;
第七层为卷积层,第七层和第五层的卷积核大小和步长相同;
第八层为最大池化层。
作为基于FPGA和深度学习的老人室内跌倒检测方法的优选方案,步骤S23中,所述特征图经过全连接层FC得到矩形人体框的四个坐标(X`,Y`,X``,Y``),(X`,Y`)代表中心点坐标,X``代表矩形人体框的宽,Y``代表矩形人体框的高;
矩形人体框的四个坐标(X`,Y`,X``,Y``)均采用归一化的处理方式,即横纵坐标值分别除以图像像素的宽和高。
作为基于FPGA和深度学习的老人室内跌倒检测方法的优选方案,判断老人跌倒状态下的依据为:
当前人体的宽高比(X``/Y``)<1,且人体的重心下降速度Vy>5m/s;
所述人体重心下降速度计算方法Vy=S×(Y``t-Y``t-1)×FP;
式中:S为每一个像素所代表的实际长度,Y``t-1为视频流中前一帧人体的中心点坐标,Y``t为视频流中当前帧人体的中心点坐标,FP为视频的帧率。
本发明还提供一种基于FPGA和深度学习的老人室内跌倒检测装置,包括:
图像获取模块,用于获取人体在预设姿态下的姿态图片数据;
人体框标识模块,用于在所述姿态图片中标识出人体框的位置;
模型训练模块,用于构建所述人体框的深度学习网络模型,利用标注完毕的姿态图片进行所述深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;
跌倒检测模块,用于将训练完毕的深度学习网络模型加载到FPGA平台中;利用所述FPGA平台识别待检测的视频流图片;
预警模块,用于当所述FPGA平台判断所述视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。
作为基于FPGA和深度学习的老人室内跌倒检测装置的优选方案,图像获取模块中,所述预设姿态下的姿态图片数据包括MSCOCO、MPII、LSP和FLIC公开人体姿态数据集,预设姿态下的姿态图片数据还包括用户自身采集的人体姿态数据集;
人体框标识模块中,所述人体框的位置标识采用语义分割标注工具labelme进行标识,所述人体框为包含人体的矩形框。
作为基于FPGA和深度学习的老人室内跌倒检测装置的优选方案,所述模型训练模块包括:
第一数据处理子模块,用于标注所述人体框的位置后,得到矩形的所述人体框中心点坐标(Xc,Yc)、宽度W和高度H;
第二数据处理子模块,用于将标注好的姿态图片作为深度学习网络的输入,对每张姿态图片利用卷积神经网络CNN进行特征提取得到特征图;
第三数据处理子模块,用于对所述特征图利用全连接层FC进行运算,得到矩形的所述人体框的坐标。
作为基于FPGA和深度学习的老人室内跌倒检测装置的优选方案,第二数据处理子模块中,通过所述卷积神经网络CNN对输入的姿态图片数据进行归一化处理并调整图像大小,对每张姿态图片利用八层卷积神经网络进行特征提取:
第一层为卷积层;
第二层为最大池化层;
第三层为卷积层;
第四层为最大池化层;
第五层为卷积层;
第六层为卷积层,第六层和第五层的卷积核大小和步长相同;
第七层为卷积层,第七层和第五层的卷积核大小和步长相同;
第八层为最大池化层;
第三数据处理子模块中,所述特征图经过全连接层FC得到矩形人体框的四个坐标(X`,Y`,X``,Y``),(X`,Y`)代表中心点坐标,X``代表矩形人体框的宽,Y``代表矩形人体框的高;
矩形人体框的四个坐标(X`,Y`,X``,Y``)均采用归一化的处理方式,即横纵坐标值分别除以图像像素的宽和高。
作为基于FPGA和深度学习的老人室内跌倒检测装置的优选方案,跌倒检测模块中,判断老人跌倒状态下的依据为:
当前人体的宽高比(X``/Y``)<1,且人体的重心下降速度Vy>5m/s;
所述人体重心下降速度计算方法Vy=S×(Y``t-Y``t-1)×FP;
式中:S为每一个像素所代表的实际长度,Y``t-1为视频流中前一帧人体的中心点坐标,Y``t为视频流中当前帧人体的中心点坐标,FP为视频的帧率。
本发明具有如下优点:获取人体在预设姿态下的姿态图片数据,在姿态图片中标识出人体框的位置;构建人体框的深度学习网络模型,利用标注完毕的姿态图片进行深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;将训练完毕的深度学习网络模型加载到FPGA平台中;利用FPGA平台识别待检测的视频流图片;当FPGA平台判断视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。本发明以FPGA为核心,充分利用FPGA高速、大数据处理能力和硬件编程设计等特点,将深度学习算法植入到FPGA中,增强了人体跌倒检测的实时性和隐私性;本发明采用深度学习神经网络模型自动提取人体框坐标,准确度高;本发明能够有效解决老人跌倒的检测问题,并及时报警,可有效保护老人的健康问题。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例中提供的基于FPGA和深度学习的老人室内跌倒检测过程示意图;
图2为本发明实施例中提供的基于FPGA和深度学习的老人室内跌倒检测采用的深度学习网络模型示意图;
图3为本发明实施例中提供的基于FPGA和深度学习的老人室内跌倒检测装置示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图1和图2,提供一种基于FPGA和深度学习的老人室内跌倒检测方法,包括以下步骤:
S1、获取人体在预设姿态下的姿态图片数据,在所述姿态图片中标识出人体框的位置;
S2、构建所述人体框的深度学习网络模型,利用标注完毕的姿态图片进行所述深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;
S3、将训练完毕的深度学习网络模型加载到FPGA平台中;利用所述FPGA平台识别待检测的视频流图片;
S4、当所述FPGA平台判断所述视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。
本实施例中,步骤S1中,所述预设姿态下的姿态图片数据包括MSCOCO、MPII、LSP和FLIC公开人体姿态数据集,预设姿态下的姿态图片数据还包括用户自身采集的人体姿态数据集;
所述人体框的位置标识采用语义分割标注工具labelme进行标识,所述人体框为包含人体的矩形框。
具体的,MSCOCO数据集是微软开发维护的大型图像数据集,次数聚集的任务包括识别、分割及检测。COCO API提供了Matlab,Python和lua的API接口,该接口可以提供完整的图像标签数据的加载,分析和可视化。
MPII人体姿势数据集是人体姿势预估的一个基准,数据集包括了超过40k人的25000张带标注图片,这些图片是从You Tube video中抽取出来的。在测试集中还收录了身体部位遮挡、3D躯干、头部方向的标注。
LSP是一个体育姿势数据集,其被分为竞技、羽毛球、棒球、体操、跑酷、足球、排球和网球几类,共包含约2000个姿势注释,图像均来自于Flickr的运动人员。
FLIC截取自好莱坞电影片段,虽然场景内可能包含多人,但标注信息中仅包含一个人的关节信息,一共11个关节。
具体的,labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。
本实施例中,步骤S2包括以下步骤:
S21、标注所述人体框的位置后,得到矩形的所述人体框中心点坐标(Xc,Yc)、宽度W和高度H;
S22、将标注好的姿态图片作为深度学习网络的输入,对每张姿态图片利用卷积神经网络CNN进行特征提取得到特征图;卷积神经网络CNN包括5层卷积层和3层池化层,得到特征图;
S23、对所述特征图利用全连接层FC进行运算,得到矩形的所述人体框的坐标。
本实施例中,步骤S22中,通过所述卷积神经网络CNN对输入的姿态图片数据进行归一化处理并调整图像大小,对每张姿态图片利用八层卷积神经网络进行特征提取:
第一层为卷积层;
第二层为最大池化层;
第三层为卷积层;
第四层为最大池化层;
第五层为卷积层;
第六层为卷积层,第六层和第五层的卷积核大小和步长相同;
第七层为卷积层,第七层和第五层的卷积核大小和步长相同;
第八层为最大池化层。
参见图2,具体的,卷积神经网络对输入的图像数据做归一化处理,将图像大小调整为224*224,对每张图像利用8层卷积神经网络做特征提取:
第一层为卷积层,初始化一张224*224大小的图像,经过大小为9*9、步长为2的卷积滤波器之后,生成110*110*32,进入下一层;
第二层为最大池化层,大小为3*3、步长为2,得到55*55*32的输出,进入第三层;
第三层为卷积层,卷积核为5*5,步长为2,得到26*26*86的输出;
第四层为最大池化层,大小为3*3、步长为2,得到13*13*32的输出;
第五层为卷积层,卷积核大小为3*3、步长为1,得到13*13*128的输出;
第六层为卷积层,和第五层的卷积核大小和步长相同,得到13*13*128的输出;
第七层为卷积层,和第五层的卷积核大小和步长相同,得到13*13*128的输出;
第八层为最大池化层,大小为3*3、步长为2,得到13*13*128的特征图。
具体的,还包括FC全连接输出层,输出为代表矩形人体框的中心点坐标(X`,Y`)、矩形的宽(X``)和高Y``。
本实施例中,步骤S23中,所述特征图经过全连接层FC得到矩形人体框的四个坐标(X`,Y`,X``,Y``),(X`,Y`)代表中心点坐标,X``代表矩形人体框的宽,Y``代表矩形人体框的高;
矩形人体框的四个坐标(X`,Y`,X``,Y``)均采用归一化的处理方式,即横纵坐标值分别除以图像像素的宽和高。
具体的,判断老人跌倒状态下的依据为:
当前人体的宽高比(X``/Y``)<1,且人体的重心下降速度Vy>5m/s;
所述人体重心下降速度计算方法Vy=S×(Y``t-Y``t-1)×FP;
式中:S为每一个像素所代表的实际长度,Y``t-1为视频流中前一帧人体的中心点坐标,Y``t为视频流中当前帧人体的中心点坐标,FP为视频的帧率。
本实施例中,训练完成的神经网络模型指的是利用MSCOCO,MPII,LSP,FLIC公开人体姿态数据集和自建的数据集训练神经网络模型,自建数据集指的是通过模型实际过程中,收集人体不同行为的图片,之后采取人工标注的方式标注出用户人体框的位置,同时对一些不合要求的图片进行剔除。
参见图1,基于FPGA的老人跌倒检测主要是将离线训练的神经网络模型应用到实时老人跌倒检测中。FPGA在初始化完成后,加载训练好的深度学习网络模型参数,成像设备对室内进行成像,每幅图像的尺寸大小为224*224;FPGA将图像数据作为输入,传递给FPGA中的深度学习程序框架,利用已加载的网络模型参数进行老人跌倒检测,如果当前处理的图像中存在老人跌倒现象,开始报警。
具体的,老人室内跌倒检测视频采集过程以FPGA为核心,采用SAA7113H视频解码芯片,通过I2C总线协议对摄像头进行初始化配置,外接模拟PAL/NTAL制式的摄像头。
具体的,采用的FPGA芯片为Xilinx公司研发的Zynq系列Zynq-7020;采用的视频解码芯片为SAA7113H,视频解码芯片在FPGA的控制下通过I2C总线完成配置和初始化过程,输出8位与CCIR656兼容的视频数据。
本实施例中,深度学习神经网络具有检出率高,检测速度快的优势,但是计算量巨大,采用嵌入式处理器或者服务器CPU无法达到实时检测的效果。为了减轻FPGA的运算负荷,将成像算法部分放在独立于危险物品检测的一片FPGA中进行,网络模型中的前向传递运算放在另一片FPGA中进行,从而实现了深度学习网络的加速运行,使得整个危险物品的检测过程具有实时性。FPGA平台相对于传统的CPU有更好的并发性和更快的处理速度;相对于传统的GPU有更细的并发操作粒度和并发执行效率;相对于专用集成电路芯片有更好的功能可定制性优势。
实施例2
参见图3,本发明还提供一种基于FPGA和深度学习的老人室内跌倒检测装置,包括:
图像获取模块1,用于获取人体在预设姿态下的姿态图片数据;
人体框标识模块2,用于在所述姿态图片中标识出人体框的位置;
模型训练模块3,用于构建所述人体框的深度学习网络模型,利用标注完毕的姿态图片进行所述深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;
跌倒检测模块4,用于将训练完毕的深度学习网络模型加载到FPGA平台中;利用所述FPGA平台识别待检测的视频流图片;
预警模块5,用于当所述FPGA平台判断所述视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。
本实施例中,图像获取模块1中,所述预设姿态下的姿态图片数据包括MSCOCO、MPII、LSP和FLIC公开人体姿态数据集,预设姿态下的姿态图片数据还包括用户自身采集的人体姿态数据集;
人体框标识模块2中,所述人体框的位置标识采用语义分割标注工具labelme进行标识,所述人体框为包含人体的矩形框。
本实施例中,所述模型训练模块3包括:
第一数据处理子模块31,用于标注所述人体框的位置后,得到矩形的所述人体框中心点坐标(Xc,Yc)、宽度W和高度H;
第二数据处理子模块32,用于将标注好的姿态图片作为深度学习网络的输入,对每张姿态图片利用卷积神经网络CNN进行特征提取得到特征图;
第三数据处理子模块33,用于对所述特征图利用全连接层FC进行运算,得到矩形的所述人体框的坐标。
本实施例中,第二数据处理子模块32中,通过所述卷积神经网络CNN对输入的姿态图片数据进行归一化处理并调整图像大小,对每张姿态图片利用八层卷积神经网络进行特征提取:
第一层为卷积层;
第二层为最大池化层;
第三层为卷积层;
第四层为最大池化层;
第五层为卷积层;
第六层为卷积层,第六层和第五层的卷积核大小和步长相同;
第七层为卷积层,第七层和第五层的卷积核大小和步长相同;
第八层为最大池化层;
第三数据处理子模块33中,所述特征图经过全连接层FC得到矩形人体框的四个坐标(X`,Y`,X``,Y``),(X`,Y`)代表中心点坐标,X``代表矩形人体框的宽,Y``代表矩形人体框的高;
矩形人体框的四个坐标(X`,Y`,X``,Y``)均采用归一化的处理方式,即横纵坐标值分别除以图像像素的宽和高。
本实施例中,跌倒检测模块4中,判断老人跌倒状态下的依据为:
当前人体的宽高比(X``/Y``)<1,且人体的重心下降速度Vy>5m/s;
所述人体重心下降速度计算方法Vy=S×(Y``t-Y``t-1)×FP;
式中:S为每一个像素所代表的实际长度,Y``t-1为视频流中前一帧人体的中心点坐标,Y``t为视频流中当前帧人体的中心点坐标,FP为视频的帧率。
综上所述,本发明获取人体在预设姿态下的姿态图片数据,在姿态图片中标识出人体框的位置;构建人体框的深度学习网络模型,利用标注完毕的姿态图片进行深度学习网络模型的训练,得到训练完毕的深度学习网络模型以用于老人室内跌倒检测;将训练完毕的深度学习网络模型加载到FPGA平台中;利用FPGA平台识别待检测的视频流图片;当FPGA平台判断视频流图片中某一帧图片人体状态为跌倒时,输出预警信号进行语音提醒和报警。本发明以FPGA为核心,充分利用FPGA高速、大数据处理能力和硬件编程设计等特点,将深度学习算法植入到FPGA中,增强了人体跌倒检测的实时性和隐私性;本发明采用深度学习神经网络模型自动提取人体框坐标,准确度高;本发明能够有效解决老人跌倒的检测问题,并及时报警,可有效保护老人的健康问题。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请实施例1中的方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
实施例3
本发明实施例3提供一种计算机可读存储介质,所述计算机可读存储介质中存储用于基于FPGA和深度学习的老人室内跌倒检测方法的程序代码,所述程序代码包括用于执行实施例1或其任意可能实现方式的基于FPGA和深度学习的老人室内跌倒检测方法的指令。
计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidStateDisk、SSD))等。
实施例4
本发明实施例4提供一种电子设备,所述电子设备包括处理器,所述处理器与存储介质耦合,当所述处理器执行存储介质中的指令时,使得所述电子设备执行实施例1或其任意可能实现方式的基于FPGA和深度学习的老人室内跌倒检测方法。
具体的,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于所述处理器之外,独立存在。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。