本发明属于智能监控技术领域,具体涉及一种基于视觉检测电梯中人员晕倒方法、装置、设备和介质。
背景技术:
近年来,老年人的健康和安全话题也逐渐成为社会关注的热点。同时,据《全球年龄观察指数》显示,老年人独居比例逐年攀升。而随着现代技术的不断发展,生活质量的不断提升,电梯已然成为日常生活中使用频率极高的交通工具,其中老年人由于身体素质下降更是经常使用电梯。由于电梯空间相对狭隘密闭,并且老年人自身容易患有心脑血管等疾病从而导致晕倒的风险也随之增加。当老年人独自乘坐电梯意外晕倒时,能否及时救治直接决定着晕倒对老年人造成的伤害。然而传统的监控系统仅能通过人力监督此类事件,面临成本高、风险大的问题,因此开发一种晕倒检测算法,自动监测电梯场景下的单人晕倒行为,并及时报警提示,对于提高老年人的生活质量,减少社会公共资源的浪费具有重要意义。
目前主要有三种类型晕倒检测方法,分别是基于可穿戴式设备、基于环境传感器和基于计算机视觉的晕倒检测方法。基于可穿戴式设备的晕倒检测方法大多将加速度、压力等传感器集成到晕倒检测电路中,同时配备电源模块和无线通讯模块。这种方法不受空间的限制,但由于外界噪声的干扰和系统自身的不稳定性容易造成误报警问题。同时,可穿戴式设备需要被检测者长时间佩戴,因此老年人的舒适感较差。基于环境传感器的晕倒检测方法克服了舒适感较差的问题,把传感器装备在被检测者的活动区域内,具有无需穿戴、检测范围大的优点。但这种方法对于设备成本要求较高,同时也易受环境干扰,容易误报警。基于计算机视觉的晕倒检测方法不受时空的限制,没有传感器设备的桎梏,根据监控摄像头拍摄到的视频图像进行判断,具有检测准确率高、成本低等优点。
基于计算机视觉的晕倒检测方法可分为基于传统机器学习和基于深度学习两大类。基于传统机器学习的方法由于手工设计特征,在复杂环境下鲁棒性较差。随着深度学习技术的迅速发展,尤其自2012年卷积神经网络(convolutionalneuralnetworks,cnn)被提出,基于深度学习的晕倒检测方法可以利用神经网络自动提取图像特征。目前基于深度学习的方法主要是利用3d卷积和与长短时记忆网络(longshort-termmemory,lstm),此类方法虽然识别准确率较高,但无法满足实时检测的要求;且现有的晕倒检测方法主要在模拟数据集上进行算法验证,真实场景下使用时存在误报率高等问题。
技术实现要素:
针对现有晕倒检测方法在实际应用时存在误检率高、检测效率低、受传感器设备桎梏等问题,本发明提供一种电梯场景下的实时晕倒检测方法、装置、设备和介质,能够从监控视频中实时监测晕倒事件发生,具有简单高效、误检率低、鲁棒性较好的优点。
为达到上述目的,本发明所述的电梯场景下的实时晕倒检测方法,包括以下步骤:
步骤1、从电梯监控视频流中采集图像数据,形成电梯人员数据集;将电梯人员数据集作为样本,训练出人员检测模型和单人晕倒检测模型;
步骤2、从电梯监控视频流中提取图像,利用人员检测模型得到提取图像中的人员头部预测框;
步骤3、通过对人员头部预测框计数得到电梯内人数统计,当人数为1时,转至步骤4,否则转至步骤2;
步骤4、利用单人晕倒检测模型预测图像中人员是否晕倒;
步骤5、重复步骤2-4,根据连续多幅图像的晕倒预测结果判断是否发生一次晕倒事件,若发生晕倒事件,发出报警信号;
步骤6、重复步骤2-5。
进一步的,步骤2包括以下步骤:
2.1、对电梯人员数据集,利用目标检测标注工具标注人员的头部位置和类别,类别标签为head,训练人员检测模型,训练时用darknet19提取特征;
2.2、利用人员检测模型获得单帧图像的人员头部预测框。
进一步的,步骤3的过程为:计算当前图像以及与当前图像前、后各相邻2幅图像中的人员头部测框数目,选择出现次数最多的人员头部预测框数作为最终的人数,若各幅图像的人员头部预测框数的均不相同,则将当前帧图像的人员头部预测框数目作为最终的人数。
进一步的,步骤1中,用resnet18分类算法训练单人晕倒检测模型。
进一步的,步骤1中,训练单人晕倒检测模型包括以下步骤:
s1、在resnet18网络第一层和最后一层中引入cbam注意力模块,并在最后一个全连接层中引入dropout层;
s2、取带权重的交叉熵损失函数,利用resnet18分类算法在电梯人员数据集上训练单人晕倒检测模型。
进一步的,步骤4包括以下步骤:
步骤4.1、对当前图像采用2次数据增强得到2张新图像,结合原始图像,一次输入到单人晕倒检测模型中,得到3张图像的晕倒预测结果;
步骤4.2、对3张图像的晕倒预测结果投票,当有2个或2个以上预测结果为晕倒时,判定当前帧的预测结果为晕倒,否则预测结果为没有晕倒。
一种实时晕倒检测装置,包括:
采集模块,用于从电梯监控视频流中采集图像,并将采集的图像传递至处理模块;处理模块,用于根据采集的图像判断电梯中是否有人晕倒。
一种计算机设备,包括电连接的存储器和处理器,所述存储器上存储有可在处理器上运行的计算程序,所述处理器执行所述计算程序时,实现上述的检测方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的检测方法的步骤。
与现有技术相比,本发明至少具有以下有益的技术效果:
1.本发明使用高性能的yolov4算法检测人数,当检测到电梯中的人员数量为1时,进行晕倒判定,大大节约了计算资源,并引入相邻帧平滑滤波机制提高人数检测结果的稳定性。针对实时性差和密集场景下准确率低两个难点进行以下优化:
1)用相对轻量的darknet19进行特征提取,在保持检测效果指标map基本不降低的基础上大幅度提高了检测速度;
2)针对密集场景下人员相互遮挡问题,采用人员头部进行计数,并用diounms在考虑相邻检测框中心点距离的前提下剔除冗余检测框,提高了人数统计的准确率。
2.本发明使用resnet18分类算法进行晕倒识别,并针对数据集中晕倒、非晕倒样本严重不平衡,以及实际使用时晕倒误检率高、模型容易过拟合等问题,进行以下优化:
1)在resnet18网络第一层和最后一层中引入cbam注意力模块,使网络关注更加重要的区域,并提高特征工程质量;
2)为了防止过拟合,在最后一个全连接层后添加dropout层;
3)针对训练过程中晕倒数据集正负样本不平衡问题,使用带权重的交叉熵损失函数改进分类损失函数;
4)在实际测试时使用数据增强技巧,降低了晕倒误检率。
附图说明
图1是基于视觉检测电梯中人员晕倒方法流程图;
图2是利用人员检测模型获得的人员头部预测框示意图;
图3是利用单人晕倒检测模型获得的单帧图像晕倒预测结果图一;
图4是利用单人晕倒检测模型获得的单帧图像晕倒预测结果图二;
图5为本发明提供的检测装置的模块结构示意图;
图6为本发明提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的和技术方案更加清晰和便于理解。以下结合附图和实施例,对本发明进行进一步的详细说明,此处所描述的具体实施例仅用于解释本发明,并非用于限定本发明。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面结合附图和实施例对本发明方法的实施方式做详细说明。
如图1所示,为本发明实现过程的总体流程图,本发明提供了一种基于视觉检测电梯中人员晕倒的方法,该方法首先从监控视频流中跳帧提取图像;然后利用由改进的yolov4算法训练得到的人员检测模型统计每一帧图像人数,当人数为1时,利用由改进的resnet18分类算法训练得到的单人晕倒检测模型实时预测图像中人员是否晕倒。
本发明提供的一种基于视觉检测电梯中人员晕倒的方法,其具体实现过程如下:
步骤1:从电梯监控视频流中采集图像数据形成电梯人员数据集;将电梯人员数据集作为样本,训练出人员检测模型和单人晕倒检测模型;
s1.1-s1.3为训练人员检测模型的过程:
s1.1:对电梯人员数据集,利用labelimg软件标注人员的头部位置和类别,类别标签为head,人员头部矩形框坐标为(xmin,ymin,xmax,ymax)。将人员头部矩形框坐标转换成yolov4需要的标注格式(x,y,w,h,c)。xmin、ymin、xmax、ymax代表矩形框左上角和右下角坐标,x、y代表矩形框中心点坐标,w、h代表矩形框的宽和高,c代表类别。
s1.2:在原始yolov4目标检测算法(darknet版本)的基础上将原始特征提取网络cspdarknet53替换为相对轻量的网络darknet19,利用darknet19进行特征提取,并将非极大值抑制方式greedynms替换为diounms,利用diounms在考虑相邻检测框中心点距离的前提下剔除冗余预测框,得到改进的yolov4算法;
s1.3:先利用改进的yolov4算法在coco数据集上预训练一个基准模型,然后在电梯人员数据集上以较小的学习率,按照表1所示的训练参数对基准模型进行微调,得到人员检测模型。
表1:yolov4训练过程参数
训练单人晕倒检测模型的过程为:
s1:在resnet18网络第一层和最后一层中引入cbam注意力模块,并在最后一个全连接层中引入dropout层;
s2:将原始损失函数替换为带权重的交叉熵损失函数,得到改进的resnet18分类算法,利用改进的resnet18分类算法在电梯人员数据集上训练一个单人晕倒检测模型;
训练过程需要20个epoch,采用带动量的随机梯度下降sgd优化器,初始学习率、初始动量分别为0.001、0.9。数据增强方式采用灰度变化、水平翻转以及色彩抖动,具体参数设置见表2所示。带权重的交叉熵损失函数选择样本占比倒数作为权重,给予占比低的晕倒样本更高的损失权重,并降低占比高的非晕倒样本的损失权重,具体形式如式(1)所示:
表2:resnet18训练过程参数
步骤2:利用由改进的yolov4算法训练得到的人员检测模型定位图像中的人员头部位置,得到人员头部预测框。具体过程如下:
步骤2.1:从电梯监控视频流中提取一幅图像,记为xi0,i为监控视频流中的图像帧数序号;所述图像和上一次提取的图像相隔10帧;
步骤2.2:通过opencvdnn模块调用步骤1得到的人员检测模型,进而定位图像xi0中的人员头部位置,得到人员头部预测框(b1,b2,…,bn),参见图2,其中网络输入尺寸、置信度阈值、nms阈值分别设置为416、0.5、0.4;
步骤3:对人员头部预测框计数,得到人数。当人数为1时,执行步骤4,进入晕倒检测流程,否则执行步骤2。
其中计算人数的具体过程如下:
分别计算当前帧图像、与当前帧相隔±10帧的图像以及与当前帧相隔±20帧的图像,即x(i-20)0,x(i-10)0,xi0,x(i+10)0,x(i+20)0的5个图像的人员头部预测框数目(c1,c2,c3,c4,c5),选择出现次数最多的人员头部预测框数作为最终的人数,若c1,c2,c3,c4和c5均不相同,则将当前帧图像的人员头部预测框数目c3作为最终的人数。
步骤4:利用由改进的resnet18分类算法训练得到的单人晕倒检测模型,实时预测图像中人员是否晕倒,预测结果记为yi,参见图3和图4,具体过程如下:
步骤4.1:对图像xi0采用2次数据增强生成新的图像(xi1,xi2),结合原始图像xi0,一次输入到单人晕倒检测模型中进行batch推理,得到3张图像的晕倒预测结果(yi0,yi1,yi2),其中数据增强方式采用水平翻转和保持图像长宽比不变缩放;
步骤4.2:对3张图像的晕倒预测结果(yi0,yi1,yi2)投票,当有2个或2个以上预测结果为晕倒时,判定当前帧的预测结果为晕倒,反之为非晕倒。
步骤5:结合连续5幅图像的晕倒预测结果判断最终是否发生一次晕倒事件,并转至步骤2,若有3帧以上的预测结果为晕倒,则认为发生晕倒事件,发出报警信号。
实施例2
本发明提供的一种实时晕倒检测装置,如图5所示,包括采集模块和处理模块;
其中,采集模块,用于从电梯监控视频流中采集图像,并将采集的图像传递至处理模块;处理模块,用于根据采集的图像判断电梯中是否有人晕倒。
实施例3
本发明提供的一种计算机设备,如图6所示,包括电连接的存储器和处理器,其中,存储器上存储有可在处理器上运行的计算程序,所述处理器执行所述计算程序时,实现上述的yy方法的步骤。例如图1所示的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
所述实时晕倒检测装置/终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述实时晕倒检测装置/终端设备可包括,但不仅限于,处理器、存储器。
所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等……
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述**装置/终端设备的各种功能。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
实施例4
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。