1.本发明涉及睡觉检测技术领域,具体为一种基于前端相机的睡觉检测方法及装置。
背景技术:2.睡觉,一般是指人类睡眠,是人类不可缺少的一种生理现象,人的一生中,睡眠占了近三分之一的时间,它的质量好坏与人体健康有密切关系,由此可见睡眠对每一个人是多么重要。
3.从某种意义上说,睡眠的质量决定着生活的质量,睡觉同时是记忆细胞新陈代谢的过程,老化的细胞将每个记忆信息所使用的排列方式输入新细胞内,以备储存,其中包括运动、语言区和平衡键,以及日常生活中的一些往事和回忆,它们都是物质的,所以也以物质的方式存在。
4.例如专利号为cn 111000528 a一种人体睡觉姿势的检测方法,是基于床体表面的压力传感器,检测人体在睡觉时的压力数据,得到压力图像,并根据测得的压力数据提取以下特征值,可以检测人体位置、平睡、侧睡和坐等状态,这种方法的优点是检测较为直接,缺点是对睡眠设备有特别的要求。
5.例如专利号为cn 113313084 a一种基于深度学习的睡岗检测方法,通过收集使用场景下的人员睡岗和非睡岗图片组成样本集,通过训练样本集训得到目标检测模型,利用目标检测模型对所有的人员睡岗和非睡岗图片进行遍历,将检测出的人体区域截图保存,将保存的图片进行分类,睡岗图片分为正样本,非睡岗图片分为负样本,正负样本组成样本集分为训练集和测试集,采用resnet50深度学习网络模型进行训练,得到最终的目标检测模型,并通过部署监控设备实现睡岗行为检测,该算法可以部署在嵌入式终端上,提高了检测的灵活性和实时性,缺点对于不同的使用场景要通过增加样本来提高检测的准确度。
6.例如专利号为cn 113269142 a一种检察领域值班人员睡觉行为识别方法,通过收集标注使用场景下的样本图片(训练集和验证集)使用yolov5目标检测预训练模型,获取值班干警人体目标检测模型,通过加载值班干警人体目标检测模型、目标跟踪模型以及人脸识别模型,进行目标标识;上述两个专利中均没有关于检测不到人体目标的解决方案。
7.例如专利号为cn 112926541 a一种睡岗检测方法、装置及相关设备,该方法是通过对图像序列中的各图像帧进行目标检测,获得目标人体中各目标骨骼点的位置信息,根据所述位置信息判断所述图像帧中的目标骨骼点与历史图像帧中的匹配目标骨骼点是否存在于同一预设范围,若是,则将所述目标骨骼点标记为睡眠状态,并根据处于所述睡眠状态的目标骨骼点的数量计算获得所述图像帧的睡眠概率,骨骼检测算法网络模型极其复杂,往往需要部署至高端的显卡主机才可以使用,而高端显卡主机费用高昂,这就限制了其实用价值。
8.此外,上述方法均没考虑到采用光流法描述人体运动幅度、运动轨迹和运动频率来判断人体是否处于睡觉状态,而本专利通过申请采用光流法可解决检测不到人体目标判
断人体是否处于睡觉状态的问题;通过采用运动放大算法,减少了运动较小或无运动时造成睡觉结果误判的概率;使用睡觉样本和非睡觉样本一起训练建模,降低了非睡觉样本的干扰;将睡觉识别检测移植到前端相机上,可节约设备成本。
技术实现要素:9.(一)解决的技术问题
10.针对现有技术的不足,本发明提供了一种基于前端相机的睡觉检测方法及装置,该基于前端相机的睡觉检测方法及装置在检测不到人体目标时,通过光流法描述人体运动幅度、运动轨迹和运动频率来判断人体是否处于睡觉状态,解决了检测不到人体目标如何判断睡觉检测的问题,具备快速检测人体睡觉目标等优点。
11.(二)技术方案
12.为实现上述快速检测人体目标的目的,本发明提供如下技术方案:一种基于前端相机的睡觉检测方法,包括以下步骤:
13.1)在系统启动之前,调整固定前端相机的位置、角度和成像范围,确保前端相机无遮挡,检测图片清晰,根据人体所处位置设置人体检测区域,并将检测区域切分成的小区域,以供前端相机做局部检测;
14.2)由于所监测的人体常规情况处于躺下的静止状态,因此监控的人体区域一般按照人躺下的人体大小设置即可,考虑到前端相机计算小区域图像数据所涵盖的足够的信息特征要求,这里以经验值给出的大小为6,即将所监测的人体区域切分成6*6共36个小区域,各小区域的图像数据独立送入睡觉特征计算模块;
15.3)前端相机小区域的周期性运动特征,衡量了人体在睡觉过程中产生的身体上的局部图像运动变化,对于运动的描述有很多方法,例如光流法、块匹配法、差分法和局部相似度计算法等,选用光流法是因为光流法既可以描述运动大小还可以描述运动方向,因此选取图像光流的运动方向和运动大小作为运动周期性特征;
16.4)由于睡觉运动特征比较小,需要采用视频运动放大以获得明显特征,视频运动放大技术是一种从视频到视频的滤波处理,可以使我们看到在视频中肉眼看不到的小的运动,运动放大方法有evm算法和基于深度学习的微小运动放大,由于我们描述的运动很小,因此放大后的效果容易产生噪音或过度模糊,所以我们这里用的是基于深度学习的微小运动放大算法;
17.5)为了获取人体睡觉模型,预先采集一组人体数据样本,以前端相机采集的视频样本为主,分为睡觉视频样本和非睡觉视频样本,针对采集的视频样本运动周期性特征,包括亮度特征序列l,对比度特征序列c、结构特征序列s基于这些特征序列联合建立睡觉识别模型,常用的特征序列建模方法有支持向量机、神经网络和判别分析等方法,由于我们的人体睡觉识别分为睡觉和非睡觉两类,因此采用fisher判别分析方法,首先利用已知类别的样本建立判别模型,然后对未知类别的样本进行分类。
18.优选的,所述依据光流法的基本假设条件,我们认为该像素在运动前后的光强度是不变的,即像素f(x,y,t)在第一帧的光强度(其中t代表其所在的时间维度),移动了(dx,dy)的距离到下一帧,用了dt时间,由于该像素在运动前后的光强度是不变的,即
19.f(x,y,t)=f(x+dx,y+dy,t+dt),
20.其中f是亮度值,dx,dy表示位移,dt表示过去的时间,
21.根据等式右边的泰勒展开公式,可以消去f(x,y,t),从而得到一个方程:
22.f
x
dx+fydy+f
t
dt=0,
23.两边除以dt得到:
[0024][0025]
一般把写成u,写成v,(u,v)就是我们要计算的光流,也就是像素点的运动速度和方向,我们采用lucas-kanade方法求解(u,v),根据上述公式有:
[0026]fx1
u+f
y1
v=-f
t
,
[0027]fx2
u+f
y2
v=-f
t
,
[0028]
…
[0029]fxn
u+f
yn
v=-f
t
,
[0030]
其中1,2,,,n是局部窗口内的像素,把上述等式写成矩阵形式:
[0031]
au=b,
[0032]
有:
[0033][0034]
由上述公式可以得到如下方程组:
[0035]
即求得像素(x,y)的位移向量:
[0036][0037]
优选的,所述原始信号i(x,t)表示图像在位置x和时刻t的亮度值,而δ(t)表示运动偏差,目标就是通过调试运动放大系数α来生成放大后的信号通过网络来学习前后帧(xa,xb)的空间特征,然后通过两帧特征差异来得到δ(x,t);
[0038]
接着通过对感兴趣部分的运动特征进行放大α叠加回前帧xa,最后生成运动放大的后帧(即的集合),
[0039]
即如下公式:
[0040][0041]
优选的,所述fisher算法,又称lda算法,是无监督硬分类算法,解决二分类问题,算法步骤如下:
[0042]
训练样本集:x=x1,x2,
…
,x
n1
,w1类的样本w2类的样本
每个样本都是一个d维列向量,把来自两类w1,w2的训练样本集分为w1和w2分别对应训练样本集x1和x2。
[0043]
优选的,所述计算各类样本的均值向量mi,ni是wi的样本个数,
[0044][0045]
计算样本类内离散矩阵si和总类内离散度矩阵sw[0046][0047]
sw=s1+s2,
[0048]
计算样本类间离散度矩阵sb,
[0049]
sb=(m
1-m2)(m
1-m2)
t
,
[0050]
求向量w*,为此定义fisher准则函数,
[0051][0052]
使得jf(w)取得最大的值w*为:
[0053]
将训练集内所以样本进行投影:y=(w*)
t
x,
[0054]
计算在投影空间上的分割阈值y0,阈值的选取可以有不同的方案,比较常用的一种为:
[0055][0056]
其中,为在一维空间个样本的均值:
[0057][0058]
对于给定的x,计算它在w*上的投影点y,即y=(w*)
t
x,
[0059]
根据决策规则分类,有
[0060][0061]
一种基于前端相机的睡觉检测装置,所述检测装置包括监控模块和采集模块,监控模块包括前端相机,进行视频的采集,采集模块当监控模块采集完成后,提取样本特征,建立fisher判别模型,然后进行fisher识别,最后输出判别结果。
[0062]
(三)有益效果
[0063]
与现有技术相比,本发明提供了一种基于前端相机的睡觉检测方法及装置,具备以下有益效果:
[0064]
1、该基于前端相机的睡觉检测方法及装置,通过基于前端相机的视频睡觉检测方法,将待检测区域划分为若干个小区域,根据局部小区域变化情况,提取具有周期性运动的区域作为睡觉疑似区域,通过计算小区域在固定时间窗口内的图像特征变化过程,作为小
区域睡觉特征值,人体睡觉时具有均匀呼吸的特性,表现为上半身部位周期性的运动,对于被检测的人体,存在盖被子等将人体覆盖遮挡的情况,通过对检测区域做局部的划分,可在人体被遮挡的情况下检测局部细节的周期性运动,避免了全局检测需要做人体检测定位以及对于人体关键点跟踪的问题,人体睡觉行为会维持一定的时间,通过一定时间周期内的变化计算,可以较为快速的描述出这种周期性的变化,通过机器学习的方式建立睡觉模型,可以描述这种运动特征,避免环境光线变化以及其它周期性运动带来的干扰误检测。
[0065]
2、该基于前端相机的睡觉检测方法及装置,通过基于前端相机的视频睡觉检测方法,对特征变化较小或无明显变化的小区域,采用运动放大方法使特征变化容易被描述,再进行特征判断,当检测不到运动或运动较小时采用运动放大算法对视频帧进行处理之后在进行一次光流检测,以提高睡觉检测的准确度,基于前端相机的睡觉检测方法,通过相机采集睡觉和非睡觉的视频,提取视频中睡觉和非睡觉特征,并训练模型,以识别睡觉行为,将睡觉行为和非睡觉行为建模,保证了检测结果的准确度,也可以避免光线变化带来的误检测,以睡觉样本数据特征训练建模,模型更准确的描述睡觉行为,同时前端相机属于非接触式测量,为人体睡觉检测提供了一种无感的检测方式,在相机可以覆盖的范围内,通过区域划分可同时检测多个人员目标的睡觉情况。
附图说明
[0066]
图1为本发明提出的一种基于前端相机的睡觉检测方法及装置整体流程图;
[0067]
图2为本发明提出的一种基于前端相机的睡觉检测方法及装置睡觉模型建立及睡觉检测流程图。
具体实施方式
[0068]
下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0069]
1)在系统启动之前,调整固定前端相机的位置、角度和成像范围,确保前端相机无遮挡,检测图片清晰,根据人体所处位置设置人体检测区域,并将检测区域切分成的小区域,以供前端相机做局部检测;
[0070]
2)由于所监测的人体常规情况处于躺下的静止状态,因此监控的人体区域一般按照人躺下的人体大小设置即可,考虑到前端相机计算小区域图像数据所涵盖的足够的信息特征要求,这里以经验值给出的大小为6,即将所监测的人体区域切分成6*6共36个小区域,各小区域的图像数据独立送入睡觉特征计算模块;
[0071]
3)前端相机小区域的周期性运动特征,衡量了人体在睡觉过程中产生的身体上的局部图像运动变化,对于运动的描述有很多方法,例如光流法、块匹配法、差分法和局部相似度计算法等,选用光流法是因为光流法既可以描述运动大小还可以描述运动方向,因此选取图像光流的运动方向和运动大小作为运动周期性特征;
[0072]
4)由于睡觉运动特征比较小,需要采用视频运动放大以获得明显特征,视频运动放大技术是一种从视频到视频的滤波处理,可以使我们看到在视频中肉眼看不到的小的运
动,运动放大方法有evm算法和基于深度学习的微小运动放大,由于我们描述的运动很小,因此放大后的效果容易产生噪音或过度模糊,所以我们这里用的是基于深度学习的微小运动放大算法;
[0073]
5)为了获取人体睡觉模型,预先采集一组人体数据样本,以前端相机采集的视频样本为主,分为睡觉视频样本和非睡觉视频样本,针对采集的视频样本运动周期性特征,包括亮度特征序列l,对比度特征序列c、结构特征序列s基于这些特征序列联合建立睡觉识别模型,常用的特征序列建模方法有支持向量机、神经网络和判别分析等方法,由于我们的人体睡觉识别分为睡觉和非睡觉两类,因此采用fisher判别分析方法,首先利用已知类别的样本建立判别模型,然后对未知类别的样本进行分类。
[0074]
依据光流法的基本假设条件,我们认为该像素在运动前后的光强度是不变的,即像素f(x,y,t)在第一帧的光强度(其中t代表其所在的时间维度),移动了(dx,dy)的距离到下一帧,用了dt时间,由于该像素在运动前后的光强度是不变的,即
[0075]
f(x,y,t)=f(x+dx,y+dy,t+dt),
[0076]
其中f是亮度值,dx,dy表示位移,dt表示过去的时间,
[0077]
根据等式右边的泰勒展开公式,可以消去f(x,y,t),从而得到一个方程:
[0078]fx
dx+fydy+f
t
dt=0,
[0079]
两边除以dt得到:
[0080][0081]
一般把写成u,写成v,(u,v)就是我们要计算的光流,也就是像素点的运动速度和方向,我们采用lucas-kanade方法求解(u,v),根据上述公式有:
[0082]fx1
u+f
y1
v=-f
t
,
[0083]fx2
u+f
y2
v=-f
t
,
[0084]
…
[0085]fxn
u+f
yn
v=-f
t
,
[0086]
其中1,2,,,n是局部窗口内的像素,把上述等式写成矩阵形式:
[0087]
au=b,
[0088]
有:
[0089][0090]
由上述公式可以得到如下方程组:
[0091]
即求得像素(x,y)的位移向量:
[0092]
[0093]
原始信号i(x,t)表示图像在位置x和时刻t的亮度值,而δ(t)表示运动偏差,目标就是通过调试运动放大系数α来生成放大后的信号通过网络来学习前后帧(xa,xb)的空间特征,然后通过两帧特征差异来得到δ(x,t);
[0094]
接着通过对感兴趣部分的运动特征进行放大α叠加回前帧xa,最后生成运动放大的后帧(即的集合),
[0095]
即如下公式:
[0096][0097]
fisher算法,又称lda算法,是无监督硬分类算法,解决二分类问题,算法步骤如下:
[0098]
训练样本集:x=x1,x2,...,x
n1
,w1类的样本w2类的样本每个样本都是一个d维列向量,把来自两类w1,w2的训练样本集分为w1和w2分别对应训练样本集x1和x2。
[0099]
计算各类样本的均值向量mi,ni是wi的样本个数,
[0100][0101]
计算样本类内离散矩阵si和总类内离散度矩阵sw[0102][0103]
sw=s1+s2,
[0104]
计算样本类间离散度矩阵sb,
[0105]
sb=(m
1-m2)(m
1-m2)
t
,
[0106]
求向量w*,为此定义fisher准则函数,
[0107][0108]
使得jf(w)取得最大的值w*为:
[0109]
将训练集内所以样本进行投影:y=(w*)
t
x,
[0110]
计算在投影空间上的分割阈值y0,阈值的选取可以有不同的方案,比较常用的一种为:
[0111][0112]
其中,为在一维空间个样本的均值:
[0113][0114]
对于给定的x,计算它在w*上的投影点y,即y=(w*)
t
x,
[0115]
根据决策规则分类,有
[0116][0117]
一种基于前端相机的睡觉检测装置,检测装置包括监控模块和采集模块,监控模块包括前端相机,进行视频的采集,采集模块当监控模块采集完成后,提取样本特征,建立fisher判别模型,然后进行fisher识别,最后输出判别结果。
[0118]
本发明的有益效果是:通过基于前端相机的视频睡觉检测方法,将待检测区域划分为若干个小区域,根据局部小区域变化情况,提取具有周期性运动的区域作为睡觉疑似区域,通过计算小区域在固定时间窗口内的图像特征变化过程,作为小区域睡觉特征值,人体睡觉时具有均匀呼吸的特性,表现为上半身部位周期性的运动,对于被检测的人体,存在盖被子等将人体覆盖遮挡的情况,通过对检测区域做局部的划分,可在人体被遮挡的情况下检测局部细节的周期性运动,避免了全局检测需要做人体检测定位以及对于人体关键点跟踪的问题,人体睡觉行为会维持一定的时间,通过一定时间周期内的变化计算,可以较为快速的描述出这种周期性的变化,通过机器学习的方式建立睡觉模型,可以描述这种运动特征,避免环境光线变化以及其它周期性运动带来的干扰误检测,通过基于前端相机的视频睡觉检测方法,对特征变化较小或无明显变化的小区域,采用运动放大方法使特征变化容易被描述,再进行特征判断,当检测不到运动或运动较小时采用运动放大算法对视频帧进行处理之后在进行一次光流检测,以提高睡觉检测的准确度,基于前端相机的睡觉检测方法。通过相机采集睡觉和非睡觉的视频,提取视频中睡觉和非睡觉特征,并训练模型,以识别睡觉行为,将睡觉行为和非睡觉行为建模,保证了检测结果的准确度,也可以避免光线变化带来的误检测,以睡觉样本数据特征训练建模,模型更准确的描述睡觉行为,同时前端相机属于非接触式测量,为人体睡觉检测提供了一种无感的检测方式,在相机可以覆盖的范围内,通过区域划分可同时检测多个人员目标的睡觉情况。
[0119]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。