基于红外阵列的人体存在检测方法、装置、存储介质与流程

文档序号:19416226发布日期:2019-12-14 00:56阅读:382来源:国知局
基于红外阵列的人体存在检测方法、装置、存储介质与流程
本发明涉及红外检测领域,尤其涉及一种基于红外阵列的人体存在检测方法、装置、存储介质。
背景技术
:目前很多场所都需要实时了解其占用情况,以提高使用效率,例如,需要实时检测会议室内是有人存在,进而确定是否被占用。另外,这些场所因为涉及隐私,所以不便于安装摄像头,必须采用其它技术来做人体存在的检测。红外辐射检测是目前使用最多的一种方式,该方式具有成本低、技术成熟的优点。目前的红外辐射人体检测算法都属于动态检测,即,依赖于人体的移动,但很多时候,当人员在会议室开会时,并不会大幅度地移动,那么这种情况下,对于会议室的使用状态,就会大概率的判断错误。因此,现有的红外辐射人体检测算法具有一定的局限性,准确率较低。技术实现要素:本发明要解决的技术问题在于,针对现有技术中的上述人体检测准确率低的缺陷,提供一种基于红外阵列的人体存在检测方法、装置、存储介质。本发明解决其技术问题所采用的技术方案是:构造一种基于红外阵列的人体存在检测方法,包括:帧获取步骤:实时获取红外阵列所采集的各点的温度数据,并形成数据帧,而且,将所述数据帧分别存入第一缓存器和第二缓存器中;动态检测步骤:从所述第二缓存器中获取当前数据帧及与所述当前数据帧间隔预设时间的历史数据帧,并将当前数据帧与所述历史数据帧相减,以获取当前温差帧,并判断当前温差帧中是否存在大于第一阈值的数据,若是,则确定有人体存在,并清空所述第一缓存器;若否,则执行静态检测步骤;静态检测步骤:开一滑动窗口,从所述第一缓存器中获取当前滑动窗口内的多个数据帧,并对当前滑动窗口内的各个数据帧进行特征识别,以确定是否有人体存在。优选地,对当前滑动窗口内的数据帧进行特征识别,以确定是否有人体存在,包括:分别获取当前滑动窗口内每个数据帧的最大值的坐标信息;判断当前滑动窗口内各个数据帧中最大值的坐标信息是否满足预设的位置变动条件,并根据判断结果确定是否有人体存在。优选地,对当前滑动窗口内的数据帧进行特征识别,以确定是否有人体存在,包括:针对当前滑动窗口内的每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,计算所述数据帧中所述正值数的数值之和/数量之和;对当前滑动窗口内每一数据帧所对应的数值之和/数量之和进行离散傅里叶变换或离散余弦变换,并去除直流分量;按预设规则获取低频分量和高频分量,并判断所述低频分量和所述高频分量是否满足预设的分量大小条件,且根据判断结果确定是否有人体存在。优选地,对当前滑动窗口内的数据帧进行特征识别,以确定是否有人体存在,包括:针对当前滑动窗口内每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,计算所述数据帧中所述正值数的数值之和/数量之和,并对所述数值之和/数量之和做归一化处理,以获取所述数据帧所对应的归一化值;根据当前滑动窗口内所有数据帧分别所对应的归一化值判断是否满足波动幅度条件,且根据判断结果确定是否有人体存在。优选地,对当前滑动窗口内的数据帧进行特征识别,以确定是否有人体存在,包括:针对当前滑动窗口内的每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,根据所述数据帧中正值数的坐标信息确定热源的大小,并判断所述热源的大小是否在预设范围内,若是,则确定满足热源大小条件;若否,则确定不满足热源大小条件;根据当前滑动窗口内每一数据帧的热源大小条件的判断结果,确定是否有人体存在。优选地,所述动态检测步骤中,在判断当前温差帧中存在大于第一阈值的数据时,还进行:启动一超时计时器,并清空所述第一缓存器,而且,在超时时间未到达时,认为人体存在。优选地,在所述帧获取步骤之后,还包括:温差检测步骤:查找当前数据帧中的最大值和最小值,并判断所述最大值与所述最小值的差值是否小于第二阈值,若是,则确定无人体存在,并清空所述第一缓存器;若否,则执行所述动态检测步骤。本发明还构造一种基于红外阵列的人体存在检测装置,包括红外阵列和处理器,所述处理器在执行所存储的计算机程序时实现以上所述的基于红外阵列的人体存在检测方法的步骤。优选地,所述红外阵列为m*n的点阵红外阵列;或者,所述红外阵列为1*n的点阵红外阵列,且所述1*n的点阵红外阵列通过旋转扫描来采集各点的温度数据;其中,m、n为大于1的自然数。本发明还构造一种存储介质,存储有计算机程序,所述计算机程序在被处理器执行时实现以上所述的基于红外阵列的人体存在检测方法的步骤。本发明所提供的技术方案,当从红外阵列获取到采集数据后,首先通过动态检测确定是否有人体移动,只有在无人体移动时,才通过对滑动窗口内的各个数据帧进行特征识别(由于人体具有独特的特性)来确定热源到底为人体还是普通热源,从而确定是否有人体存在,因此,即使会议室中的人不动或微动,也能准确检测出会议室的占用状态。附图说明为了更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:图1是本发明基于红外阵列的人体存在检测方法实施例一的流程图;图2是本发明一个实施例中数值之和在频域上的分布图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1是本发明基于红外阵列的人体存在检测方法实施例一的流程图,该实施例的人体存在检测方法可检测微动/静态状态下的人体是否存在,且包括:帧获取步骤s10:实时获取红外阵列所采集的各点的温度数据,并形成数据帧,而且,将所述数据帧分别存入第一缓存器和第二缓存器中;关于该步骤,红外阵列一般安装在室内的天花板上,而且,在一种实现方式中,红外阵列为m*n的点阵红外阵列,其中,m、n为大于1的自然数,例如为8*8的点阵红外阵列。在另一种实现方式中,红外阵列为1*n(例如1*8)的点阵红外阵列,且该1*n的点阵红外阵列通过旋转扫描来采集各点的温度数据。当从红外阵列获取到各点的温度数据后,按各点的坐标顺序将所对应的温度数据进行排列,即可构成一数据帧,所以,在数据帧中,对于某一温度数据,只要知道其在数据帧中的排列位置,即可确定采集该温度数据的点温度传感器的坐标信息。另外,通过设置第一缓存器来存放静态检测数据,通过设置第二缓存器来存放动态检测数据,这样,在每获取到一数据帧后,便可将其分别存入第一缓存器和第二缓存器中。动态检测步骤s20:从所述第二缓存器中获取当前数据帧及与所述当前数据帧间隔预设时间的历史数据帧,并将当前数据帧与所述历史数据帧相减,以获取当前温差帧,并判断当前温差帧中是否存在大于第一阈值的数据,若是,则执行步骤s40;若否,则执行静态检测步骤s30;在该步骤中,通过采用延时相减法做人体移动/动态的检测,即,按某时间间隔,例如200ms,将当前帧与历史帧相减,然后判断是否存在大于第一阈值的数据。步骤s40.确定有人体存在,并清空所述第一缓存器在该步骤中,如果存在超出第一阈值的大值,则认为检测到人体移动,进而确定有人体存在,此时还清空第一缓存器,从而避免动态检测数据导致静态算法的误判。静态检测步骤s30:开一滑动窗口,从所述第一缓存器中获取当前滑动窗口内多个的数据帧,并对当前滑动窗口内的各个数据帧进行特征识别,以确定是否有人体存在。在该步骤中,关于滑动窗口,其长度可预先设定,例如设置为3秒或10秒,而且,滑动窗口内数据帧的数量与滑动窗口的长度和红外阵列的采样率相关。当收集好了滑动窗口内的数据帧后,就可根据人体所具有的独特特性,来对滑动窗口内的各个数据帧进行特征识别,从而确定红外阵列的辐射范围内是否有人体存在。在该实施例中,将静态(人体微动/静止)检测方案和动态检测方案相结合,且优先使用动态检测方案,只有在动态检测方案确定无人体移动时才使用静态检测方案来确定是否有人体存在,即,静态检测的结果输出受动态检测结果的控制,只有动态检测无效的情况下,才输出静态检测结果。在第一个可选实施例中,首先说明的是,由于普通热源(例如水杯、笔记本、投影仪等)在短时间内一般是静止的,而对于人体,即使短时间也很难保证完全静止,通常会有轻微晃动。基于此,静态检测步骤s30可根据以下方式来确定是否有人体存在:分别获取当前滑动窗口内每个数据帧的最大值的坐标信息;判断当前滑动窗口内各个数据帧中最大值的坐标信息是否满足预设的位置变动条件,并根据判断结果确定是否有人体存在,其中,位置变动条件与红外阵列的安装位置、安装角度相关,且在安装后需要经过测试获取到。在该实施例中,若红外阵列的辐射范围内的热源为人体,则所检测到的每个数据帧中最大值的坐标信息会有小幅变动;若红外阵列的辐射范围内的热源为普通热源,则所检测到的每个数据帧中最大值的坐标信息几乎不会变动,因此,可通过判断当前滑动窗口内每个数据帧的最大值的坐标信息是否满足预设的位置变动条件,来确定是否有人体存在。在第二个可选实施例中,首先说明的是,人的呼吸是一种有规律的波动,从而影响周边空气的辐射温度,而且低频信号的能量较强。而普通热源没有这种特性,虽然也会有波动,但这是随机噪声的波动,频率较高。基于此,静态检测步骤s30可根据以下方式来确定是否有人体存在:针对当前滑动窗口内的每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,计算所述数据帧中所述正值数的数值之和/数量之和;对当前滑动窗口内每一数据帧所对应的数值之和/数量之和进行离散傅里叶变换或离散余弦变换,并去除直流分量;按预设规则获取低频分量和高频分量,并判断所述低频分量和所述高频分量是否满足预设的分量大小条件,且根据判断结果确定是否有人体存在。下面以计算数值之和为例来说明,应理解计算数量之和的方式与其类似。首先将每一数据帧中的各个温度数据进行分割,具体为:将大于参考值(可设置为环境温度)的温度数据作为正值数,将不大于参考值的温度数据作为负值数,然后将该数据帧中所有的正值数进行累加,以获取数值之和。当获取到滑动窗口内每一数据帧分别所对应的数值之和后,便形成一温度与时间(数据帧的采样时间)的函数,然后对该函数进行离散傅里叶变换(dft)或离散余弦变换(dct),从而将温度数值之和的波动变换到频域,如图2所示。由于人体呼吸对温度辐射的波动在频域上集中在低频分量上,而高频分量较少,所以,可通过判断对低频分量和高频分量是否满足预设的分量大小条件,来确定是否有人体存在。在一个具体实施例中,可根据以下方式来获取低频分量和高频分量:根据预先获得的频率经验值来确定低频分量和高频分量的划分点,频率经验值例如为k*fmax,其中,k为系数,且与红外阵列的特性及数据采样率相关,例如可为0.25、0.5、0.75,fmax为离散傅里叶变换或离散余弦变换后的最大频率值。在一个具体实施例中,可根据以下方式判断所述低频分量和所述高频分量是否满足预设的分量大小条件:将低频分量上所有频率点的幅值相加以获取低频分量值,将高频分量上所有频率点的幅值相加以获取高频分量值,然后判断低频分量值是否大于高频分量值,若是,则确定满足预设的分量大小条件,进而确定有人体存在;反之则确定不满足预设的分量大小条件,进而确定无人体存在。以图2为例,假设k取0.25,显然,低频分量上所有频率点的幅值相加的和,远大于高频分量上所有频率点的幅值相加的和,所以可确定有人体存在。在第三个可选实施例中,首先说明的是,人体在呼吸时,会使得温度辐射有波动,从而影响周边的空气。而普通热源没有这种特性,虽然也会有波动,但这是随机噪声的波动,幅度相对较小。基于此,静态检测步骤s30可根据以下方式来确定是否有人体存在:针对当前滑动窗口内每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,计算所述数据帧中所述正值数的数值之和/数量之和,并对所述数值之和/数量之和做归一化处理,以获取所述数据帧所对应的归一化值;根据当前滑动窗口内所有数据帧分别所对应的归一化值判断是否满足波动幅度条件,且根据判断结果确定是否有人体存在。在一个具体实施例中,可采用以下方式对正值数的数值之和做归一化处理:m=s1/s2,其中,m为该数据帧所对应的归一化值,s1为数据帧中所有正值数的数值之和,s2为数据帧中所有温度数据的数值之和。当然,在其它例子中,也可根据m=v1/v2对正值数的数值之和做归一化处理,其中,v1为数据帧中所有正值数的平均值,v2为数据帧中所有温度数据的平均值。例如,表1是分别对滑动窗口内的64个数据帧的数值之和做归一化处理后获取的64个归一化值:0.0502620.0509080.0509210.0504150.0505460.0501550.0504690.0505480.0511930.0511540.0493230.0512660.0498130.0513470.0509910.0512930.0506530.0507880.0510250.0513510.0507960.0510280.0510170.0492620.0515020.0512810.0506700.0506150.0519240.0507410.0512820.0524770.0501960.0515100.0516890.0515770.0501830.0497210.0495470.0511170.0516790.0734430.0722770.0508750.0728130.0508130.0507920.0503390.0519060.0501730.0510660.0510660.0715160.0715280.0713510.0707760.0717220.0723000.0501290.0721320.0723440.0510800.0510800.071077表1在另一个具体实施例中,可采用以下方式对正值数的数量之和做归一化处理:m=a1/a2,其中,a1为数据帧中所有正值数的数量之和,a2为数据帧中所有温度数据的数量之和,例如为64个。在一个具体实施例中,可采用以下方式来判断是否满足波动幅度条件:在获取到当前滑动窗口内每一数据帧分别所对应的归一化值后,假设滑动窗口内共有64个数据帧,那么便可获得64个归一化值,然后从这64个归一化值中查找出最大的归一化值和最小的归一化值,并计算最大的归一化值与最小的归一化值的差值,以获取波动幅度值,然后判断该波动幅度值是否大于设定的幅度阈值,若是,则认为满足波动幅度条件,进而可确定有人体存在;反之,如果波动幅度值不大于设定的幅度阈值,则认为不满足波动幅度条件,进而确定无人体存在。结合表1,假设幅度阈值为0.02,在滑动窗口内64个数据帧分别所对应的归一化值中,最大的归一化值为0.073443,最小的归一化值为0.049262,两者相减所获得的波动幅度值为0.024181,大于幅度阈值,因此可确定有人体存在。在第四个可选实施例中,首先说明的是,对于某一红外阵列,其视角、点温度传感器的个数及排列是确定的,那么其各个点温度传感器的辐射角度就可确定,例如,对于8*8的红外阵列,假设上下视角为60度,左右视角也为60度,那么一个点温度传感器的上下和左右视角分别为7.5度(60度/8)。而每个点传感器的辐射范围还受距离的影响,即,与安装位置相关,假设距离为1.5米,那么每个点温度传感器的辐射范围为:长度约为19.6厘米(1.5米*sin7.5度);宽度约为19.6厘米(1.5米*sin7.5度),因此可根据红外阵列所采集的温度数据来确定热源的大小,再通过对热源大小的识别可过滤掉茶杯等小件物品。基于此,静态检测步骤s30可根据以下方式来确定是否有人体存在:针对当前滑动窗口内的每一数据帧,均进行以下处理:使用预设参考值对所述数据帧进行分割,并将所述数据帧中大于所述参考值的温度数据作为正值数,而且,根据所述数据帧中正值数的坐标信息确定热源的大小,并判断所述热源的大小是否在预设范围内,若是,则确定满足热源大小条件;若否,则确定不满足热源大小条件;根据当前滑动窗口内每一数据帧的热源大小条件的判断结果,确定是否有人体存在。在该实施例中,在红外阵列的安装位置和安装角度确定好后,由于人体头部距离红外阵列的距离基本是固定的,例如为1.5米,且人体头部的直径大小也基本是固定的,约为22cm,所以,在所检测的数据帧中,假如有四个点的温度数据为正值数,且这四个正值数的坐标具有连续性此时可确定有人体存在;假如只有两个点的温度数据为正值数,就可确定热源为小件物品,进而可确定无人体存在。进一步地,在动态检测步骤s50中,在判断当前温差帧中存在大于第一阈值的数据时,还进行:启动一超时计时器,并清空所述第一缓存器,而且,在超时时间未到达时,认为人体存在。该步骤中,超时时间例如为3秒,在超时时间内,认为人体存在,并输出人体存在的结果。另外,清空第一缓存器是因为动态检测数据可能会导致静态算法误判。最后需说明的是,由于环境等各方面因素的影响,上述实施例中利用单一特征进行识别会导致准确率较低。为了提高识别的准确率,进一步地,可结合两种或两种以上特征识别方式来确定人体是否存在。在一个具体实施例中,首先根据热源大小过滤掉小件热源(第四实施例),再判断最大值的位置是否有小幅变动(第一实施例),接着判断频域上的能量是否集中在低频成分上(第二实施例),最后判断是否满足波动幅度条件(第三实施例),当所有条件都满足时才确定有人体存在,这样人体识别的准确率更高。在上述实施例的基础上,进一步地,在帧获取步骤s10之后,还包括:温差检测步骤s20:查找当前数据帧中的最大值和最小值,并判断所述最大值与所述最小值的差值是否小于第二阈值,若是,则确定无人体存在,并清空所述第一缓存器;若否,则缓存步骤s30。在该步骤中,当获取到当前数据帧后,除了将其进行缓存,还会从中查找出最大值和最小值,应理解,最大值不可能超过人体体温值,最小值也不可能小于环境温度值,若查找出的最大值和最小值不符条件,则认为该数据帧为无效帧,将其丢弃即可。当查找出了最大值和最小值后,可计算出最大值和最小值的差值,并判断该差值是否小于第二阈值。如果当前数据帧中的最大值与最小值的差值小于第二阈值,说明红外阵列的辐射范围内没有热源(包括人体、热水杯、笔记本、投影仪等)存在,是纯背景,进而可确定无人体存在,此时还会清空第一缓存器,即,不使用静态检测步骤检测人体是否存在。应理解,滑动窗口内的数据帧为连续记录的数据帧,因为,在温差判断步骤s20中,只要判断出某一数据帧中的最大值与最小值的差值小于第二阈值,就会清空第一缓存器,即,丢弃历史数据帧,重新开始缓存。如果当前数据帧中的最大值与最小值的差值不小于第二阈值,则说明红外阵列的辐射范围内有热源存在,然后在动态检测步骤中通过延时检测方法来确定是否有人体移动,只有在确定无人体移动时,才通过静态检测步骤确定热源到底为人体还是普通热源(包括热水杯、笔记本、投影仪等)。另外还需说明的是,不管是通过温差检测确定无人体存在,还是通过动态检测确定有人体移动,或者是通过特征识别确定无人体存在,除了将确定结果输出,还都应将第一缓存器清空。本发明还构造一种基于红外阵列的人体存在检测装置,包括红外阵列和处理器,所述处理器在执行所存储的计算机程序时实现上述基于红外阵列的人体存在检测方法的步骤。进一步地,所述红外阵列为m*n的点阵红外阵列;或者,所述红外阵列为1*n的点阵红外阵列,且所述1*n的点阵红外阵列通过旋转扫描来采集各点的温度数据;其中,m、n为大于1的自然数。本发明还构造一种存储介质,存储有计算机程序,所述计算机程序在被处理器执行时实现上述基于红外阵列的人体存在检测方法的步骤。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何纂改、等同替换、改进等,均应包含在本发明的权利要求范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1