一种Wi-Fi人体检测的方法和智能设备与流程

文档序号:25277224发布日期:2021-06-01 16:11阅读:238来源:国知局
一种Wi-Fi人体检测的方法和智能设备与流程

本发明涉及检测人体体征技术领域,特别是一种wi-fi人体检测的方法和智能设备。



背景技术:

人体行为识别是利用计算机技术实现肢体运动自动检测、分析和理解的技术,广泛应用于智能家居、安防监控、医疗康复、人机交互等新兴领域。人体行为识别通常可以分为两类:接触式和非接触式。可穿戴设备是接触式行为识别系统的关键载体,但是存在设备昂贵、用户穿戴不便、注意力侵扰等诸多限制。非接触式的行为识别能提供无设备的感知服务和友好的用户交互,因此得到了研究人员的广泛关注。

目前非接触式的行为识别主要依靠深度摄像头和无线电信号。然而,前者的普及受限于光照条件、视距路径干扰、监控死角和隐私问题;后者通常需要部署专用的实验设备,难以大规模推广。作为城市基础设施,商用wi-fi设备所提供的无线信号具有普适、易用、高性价比、传输距离远等优势,近年来在人体行为识别领域被广泛关注,早期工作基于wi-fi接收信号强度(rss,receivedsignalstrength)实现简单的室内人员运动检测。为了进一步提升感知粒度和识别精度,研究人员开始从wi-fi商业网卡中提取物理层的信道状态信息(csi,channelstateinformation)。csi能够刻画感知目标所引发多径链路变化,从而利用子载波层次的幅值和相位信息实现更复杂精细的行为识别,如室内活动监测、摔倒检测、步态认证和手势识别。然而大多数方法在建立wi-fi信号扰动与人体行为之间的映射关系时,需要丰富的专业知识和领域经验来指导模型设计、信号挖掘和特征选取,这使系统的稳定性、实用性和整体精度不高。如何利用最少的人为干预,实现稳健、普适、高精度的人体行为识别成为亟需解决的问题。



技术实现要素:

本发明的目的在于提供一种wi-fi人体检测的方法,主要解决上述现有技术存在的问题,它是一种可靠性高、用户体验好的wi-fi人体检测方法和智能设备,以解决上述背景技术中提出的问题。

为了实现上述目的,本发明所采用的技术方案是提供一种wi-fi人体检测的方法,其特征在于,利用智能设备的wi-fi连接的信道状态信息中的子载波信道频率响应的变化,来检测环境中的人体体征,包含:

在多种检测环境中,所述智能设备选定子载波数据来源设备、获取所述子载波数据来源设备的所述子载波信道频率响应、检查并过滤无效的所述子载波信道频率响应后,保存所述子载波信道频率响应;

所述智能设备从保存的所述子载波信道频率响应中得到子载波振幅,并分组得到多个数据集;在每个数据集中,根据所述子载波信道频率响应的不同部分,划分成多个子数据集,然后分别针对所述每个子数据集,计算包含在同一所述子数据集内的所述子载波振幅之间的相关系数,组成子数据集相关系数向量,计算包含在同一所述子数据集内的所述子载波振幅之间的马氏距离,组成子数据集距离向量;

然后得到人体活动检测值为多个所述子数据集相关系数向量的方差之间的平均数,人体存在检测值为多个所述子数据集距离向量的方差之间的平均数;当所述人体活动检测值大于人体活动阈值时,则判断为有人活动;当所述人体存在检测值小于人体存在阈值时,判断为有人状态,反之为无人状态。

进一步地,当所述智能设备判断为有人活动时,向云服务器上报人体活动状态。

进一步地,当所述智能设备检测到有人状态与无人状态之间的变化时,向云服务器上报人体存在状态。

进一步地,所述智能设备在生成子数据集距离向量时,通过计算包含在同一所述子数据集内的所述子载波振幅之间的欧式距离,组成子数据集距离向量。

进一步地,所述智能设备检查并过滤无效的所述子载波信道频率响应,还包含:所述智能设备计算所述子载波信道频率响应的不同部分中前3个所述子载波振幅之间的距离,如果所述距离大于距离阈值,则所述子载波信道频率响应为无效。

进一步地,所述距离阈值为8。

进一步地,每个所述数据集包含50个所述子载波振幅。

进一步地,所述检测环境包含一个智能设备和作为所述子载波数据来源的无线接入点;所述智能设备向所述无线接入点持续发送ping包,接收所述无线接入点返回的pingreplay包中携带的所述子载波信道频率响应。

进一步地,所述检测环境包含多个智能设备和作为所述子载波数据来源的无线接入点;所述智能设备向所述无线接入点持续发送ping包,从所述无线接入点接受由其他所述智能设备返回的pingreplay包中携带的所述子载波信道频率响应。

进一步地,所述检测环境包含一个或者多个智能设备和作为所述子载波数据来源的发包设备;所述发包设备不断切换信道,持续发送ping包;所述智能设备从所述ping包中获取所述子载波信道频率响应。

进一步地,所述智能设备选定所述子载波数据来源设备的过程,包含:

开启混杂模式的所述智能设备默认将所述无线接入点绑定为所述子载波数据来源设备;如果所述智能设备收到来自发包设备的数据,则将所述发包设备绑定为所述子载波数据来源设备;如果所述智能设备收到来自云服务器的绑定命令,则将所述绑定命令中指定的设备绑定为所述子载波数据源设备。

进一步地,还包含子载波选择流程;所述智能设备只将被所述子载波选择流程选中的子载波对应的所述子载波振幅进行分组,并放入所述数据集;当所述智能设备检测到所述子载波数据来源设备发生变化,或收到来自云服务器发起的子载波过滤请求命令时,所述智能设备开始子载波选择流程,所述子载波选择流程包含:

在环境中无人时,所述智能设备为每个子载波收集多次所述子载波信道频率响应,将每次所述子载波信道频率响应对应的所述子载波振幅组成子载波振幅向量,然后将所有所述子载波振幅向量组成子载波振幅矩阵;利用主成分分析算法,将所述子载波振幅矩阵降成一维的主成分向量;计算每个子载波振幅向量与所述主成分向量之间的相关系数,如果大于有效子载波阈值,则判定为有效子载波。

进一步地,所述智能设备为每个子载波收集500次所述子载波信道频率响应。

进一步地,还包含用于在不同的场景对所述人体活动阈值和所述人体存在阈值进行自动校准的阈值校准方法,包含:

在环境中无人时,当所述智能设备收到来自云服务器发起的阈值校准开始命令后,进入自动校准模式;在所述自动校准模式,所述智能设备不进行所述人体体征的检测;所述智能设备记录自进入所述自动校准模式后,持续计算所述人体活动检测值和所述人体存在检测值,并保存所述人体活动检测值中的最大值和所述人体存在检测值中的最小值,直到收到来自所述云服务器发起的阈值校准停止指令;在收到所述阈值校准停止指令后,所述智能设备设置新的所述人体活动阈值和新的所述人体存在阈值;新的所述人体活动阈值大于所述人体活动检测值的最大值,新的所述人体存在阈值小于人体存在检测值的最小值。

进一步地,新的所述人体活动阈值为所述人体活动检测值的最大值加10%,新的所述人体存在阈值为所述人体存在检测值的最小值减10%。

本发明还包含一种智能设备,其特征在于,包括:处理器、存储器和wi-fi收发模块,其中所述存储器存储有程序,所述程序被所述处理器执行时,实现上述人体检测的方法中的步骤。

鉴于上述技术特征,本发明具有如下优点:

1、基于嵌入式mcu获取更多的csi信息本发明使用的esp32、esp32-s2等嵌入式mcu,嵌入式的muc可获取更加底层的wi-ficsi信号,可以获取全部的子载波的数据,最多可以获取到306条子载波,并且还能获取当前rf底噪,接收时间和天线。本发明对算法进行了优化,去除了冗余的计算。

2、对cpu性能占用少,可以直接嵌入式mcu上运行,使用本发明在现有的智能电灯,智能家居等已有的智能设备上增加此功能,其成本更低,适用范围更广,同时通过边缘计算提高了设备的响应时间。

3、本发明根据不同场景设定了不同检测方式,包含适用于环境中仅存在一个智能设备且检测环境中存在无线接入点就能完成人体检测的第一方式、适用于环境中存在两个或以上的智能设备的不依赖无线接入点的位置,不受无线接入点下所接入的其他设备的影响的第二方式和利用专用发包设备的完全不受无线接入点的影响就可以实现高精度检测的第三方式。

4、本发明引入子载波过滤,使用pca主成分分析过滤无效的子载波的数据,从而排除无效的子载波对结果的影响,从而提高人体检测的准确率。

5、本发明可以根据不同的使用场景对其阈值进行自动的校准,有效的提高设备的稳定性,排除由于不同的环境、wi-fi天线的摆放和产品的形态等对子载波的影响。

6、本发明通过采用的子载波之间的相关系数和马氏距离或者欧氏距离来检测人体体征,从而可以有效的过滤环境中的干扰,因为相关系数和马氏距离均是与其当时的子载波主成分之间的关系。特别,结合主成分分析,可以有效减少误差。

附图说明

图1是本发明wi-fi人体检测的方法的一个较佳实施例中的系统示意图;

图2是本发明wi-fi人体检测的方法的一个较佳实施例中的第一检测环境的示意图;

图3是本发明wi-fi人体检测的方法的一个较佳实施例中的第二检测环境的示意图;

图4是本发明wi-fi人体检测的方法的一个较佳实施例中的第三检测环境的示意图;

图5是本发明wi-fi人体检测的方法的一个较佳实施例中的选定子载波数据来源设备的流程图;

图6是本发明wi-fi人体检测的方法的一个较佳实施例中的根据子载波信道频率响应进行人体体征检测的流程图;

图7是本发明wi-fi人体检测的方法的一个较佳实施例中的子载波选择流程的流程图;

图8是本发明wi-fi人体检测的方法的一个较佳实施例中的对人体活动阈值和人体存在阈值进行自动校准的阈值校准的流程图;

图9是本发明wi-fi人体检测的智能设备的一个较佳实施例的示意图。

图中:100-云服务器,200-无线接入点,300-智能设备,400-发包设备,500-处理器,600-存储器。

具体实施方式

下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

请参阅图1,本发明公开了一种wi-fi人体检测的方法的一个较佳实施例,由云服务器100、无线接入点200和智能设备300组成。智能设备300通过无线接入点200与云服务器300通信,接受来自云服务器300的控制命令并反馈执行结果,或者主动上报状态信息。智能设备300利用wi-fi连接的信道状态信息中的子载波信道频率响应的变化(例如与无线接入点200之间的ping包和pingreplay包中包含的子载波信道频率响应信息),来检测环境中的人体体征,包含是否有人(人体存在)或是否存在人体移动(人体活动)。

本发明的wi-fi人体检测的方法,可以根据所处的不同检测环境中,选定子载波数据来源设备。不同的检测环境用于适应不同的需求,包含3种典型的场景。

如图2所示,第一检测环境包含一个智能设备300和一个作为子载波数据来源的无线接入点200。智能设备300向无线接入点200持续发送ping包,然后接收由无线接入点200返回的pingreplay包,从pingreplay包中携带的子载波信道频率响应中取得信息,完成人体体征的检测。第一检测环境,仅一个智能设备300和无线接入点200就可以完成配置,简单方便。不过第一检测环境依赖于无线300接入点的具体状态,例如无线接入点300的摆放位置、支持的wi-fi协议等均可能对人体体征检测的结果造成影响。

如图3所示,第二检测环境包含多个智能设备300和一个作为子载波数据来源的无线接入点200。智能设备300向无线接入点持续发送ping包,从无线接入点200接受由其他智能设备300返回的pingreplay包,利用pingreplay包中携带的子载波信道频率响应中取得信息,完成人体体征的检测。第二检测环境是对第一检测环境的补充,它不依赖无线接入点200的位置,不受无线接入点200下所接入的其他网络设备的影响,但是依然依赖于无线接入点200的具体状态,例如无线接入点200支持的wi-fi协议等均可能对人体体征检测的结果造成影响。

如图4所示,第三检测环境包含一个或者多个智能设备300和作为子载波数据来源的发包设备400。发包设备400是专用硬件,会不断切换信道,在不同的信道上持续发送ping包。每个智能设备300均从发包设备400发送的ping包中获取子载波信道频率响应,完成人体体征的检测。第三检测环境的检测,完成不受无线接入点的影响,检测精度和确实度最高。特别,当环境中有多个网络设备时,仅有一个发包设备400在持续发包,对网络环境的干扰小。发包设备400直接使用数据链路层的接口,无需配网绑定无线接入点等操作,可以在无连接的情况下发送数据包,省去了网络层、传输层的包头,使得数据包更小,减少对周围网络的影响。但是,配置第三检测环境,除了需要设置普通的智能设备300外,还需要增加一个专门发包的发包设备400,成本相对较高。

如图5示出了一种智能设备选定子载波数据来源设备方法的流程图,在一些实施例中,当所处的检测环境中包含多个无线接入点或者还包含发包设备的话,那么智能设备可以根据以下流程来选定用于人体特征检测的子载波数据来源设备,在这种情况下,智能设备可以优先选择发包设备作为子载波数据来源设备。

所述方法包括以下步骤:

智能设备先开启混杂模式(步骤s101),然后连接无线接入点(步骤s102),向无线接入点的网关发送ping包(步骤s103)。如果无线接入点支持ping包,则会响应ping包发送pingrelay包。当智能设备接受到pingrelay包后,就将无线接入点绑定为子载波数据来源设备(步骤s104),分析无线接入点返回的pingrelay中携带的子载波信道频率响应,进行人体特征检测(步骤s109)。

如果智能设备通过混杂模式收到来自发包设备的ping包(步骤s105),则停止向无线接入点发送ping包,将子载波数据来源设备绑定为发包设备(步骤s106),分析发包设备发送的数据包中携带的子载波信道频率响应,进行人体特征检测(步骤s109)。

如果智能设备没有收到来自发包设备的ping包,就会监测是收到了云服务器的绑定命令(步骤s107),则将子载波数据源设备绑定为云服务器指定的设备(步骤s108),分析云服务器指定的设备发送的数据包中携带的子载波信道频率响应,进行人体特征检测(步骤s109)。

请参阅图6,在本实施例中,子载波数据来源设备与智能设备使用的wi-fimcu为同一个型号,如esp32、esp32-s2等嵌入式mcu,以避免兼容性问题。嵌入式的mcu可获取更加底层的wi-ficsi信号,可以获取全部的子载波的数据,最多可以获取到306条子载波,并且还能获取当前rf底噪,接收时间和天线本发明对算法进行了优化,去除了冗余的计算。

由于人体对子载波的振幅影响最大,本发明主要是针对子载波的振幅进行分析,子载波的每个信道频率响应均由两个字节来表示,第一个字节是虚部,第二个字节是实部,子载波的振幅α为:

其中,i为信道频率响应的虚部,r为信道频率响应的实部。

所述智能设备从保存的所述子载波信道频率响应中得到子载波振幅,并分组得到多个数据集;在每个数据集中,根据所述子载波信道频率响应的不同部分,划分成多个子数据集,然后分别针对所述每个子数据集,计算包含在同一所述子数据集内的所述子载波振幅之间的相关系数,组成子数据集相关系数向量,计算包含在同一所述子数据集内的所述子载波振幅之间的马氏距离或者欧式距离,组成子数据集距离向量;

进一步地得到人体活动检测值为多个所述子数据集相关系数向量的方差之间的平均数,人体存在检测值为多个所述子数据集距离向量的方差之间的平均数;当所述人体活动检测值大于人体活动阈值时,则判断为有人活动,所述智能设备向云服务器上报状态;当所述人体存在检测值小于人体存在阈值时,判断为有人状态,反之为无人状态,所述智能设备检测到有人状态与无人状态之间的变化时,向云服务器上报状态。

本实施例中,进行人体检测的具体步骤包含:

步骤s201、在多种检测环境中,智能设备在混杂模式下,在不同信道获取子载波信道频率响应。

步骤s202、智能设备检查获取到的子载波信道频率响应的数据包,如果数据包不是来自于选定的子载波数据来源设备,进入步骤s201。否则存储并处理这个数据包。

步骤s203、智能设备检查检查获取到的子载波信道频率响应的数据包的长度是否错误。不同状态的信道上接收到子载波总字节数是一个固定值,如果接收到的数据包与此固定值不同,则此包为无效数据包,进入步骤s201。

步骤s204、智能设备检查检查数据包的内容是否有错误。分别计算每个部分信道频率响应中有效的前三个子载波振幅之间的距离是否大于距离阈值,则此数据包无效,进入步骤s201。默认的子载波振幅之间的距离最大阈值为8,大于此值则子载波之间相关性太差,可能是智能设备硬件问题引起的,故而需要排除此包。

步骤s205、智能设备从保存的子载波信道频率响应中得到子载波振幅,并分组得到多个数据集,将每获取到50包有效子载波的振幅数据分组为一个数据集,组成矩阵a:

上述矩阵中,每一行为一条有效子载波振幅,每条子载波向量为am:

am=(am1,am2,…,amn),(n=50)

其中,有效的子载波由子载波选择流程确定。

步骤s206、矩阵a中子载波振幅分成lltf、ht-ltf、stbc-ht-ltf三个部分,两两子载波之间的相关系数,组成的相关系数向量,两两子载波之间的欧氏距离,组成的距离向量,

ci=(c1,c2…,cn),di=(d1,d2,…,cn),(n=(m*(m-1)/2),i=1,2,3)

m为信道频率响应每个部分中子载波的数目

信道频率响应最多包含三个部分lltf、ht-ltf、stbc-ht-ltf,但由于不同的无线接入点支持的协议不同,并非所有的情况下都由三个部分组成,有时仅有lltf一个部分。具体情况由子载波选择流程中确定。

步骤s207、ci的方差取平均值,得到人体活动检测值m,di的方差取平均值,得到人体存在检测值h。

步骤s208、如果当m大于人体活动阈值时,则判断为有人活动,进入步骤s209。反之进入步骤s210。

步骤s209、将人体活动状态上传到云服务器上,并进入步骤213。

步骤s210,如果h小于人体存在的阈值时则进入步骤s211,反之进入步骤s212。

步骤s211,判断为有人,进入步骤s213。

步骤s212,判断为无人,进入步骤s213。

步骤s213,结合之前检测状态和当前检测状态,如果检测状态在有人与无人转变时,进入步骤s214。否则进入步骤s201。

步骤s214,向云服务器上报的有人或无人的人体存在状态。

在本发明实施例中的wi-fi人体检测方法可以检测人体存在状态,还可以检测人体活动状态,从而可以拓展本发明的应用场景和应用范围。例如,通过综合人体活动状态和人体存在状态,可以监测人体睡眠情况,通过睡眠期间人体活动的次数来评估睡眠质量。

请参阅图7,由于不同的无线接入点的天线和物理层的限制,无法获取到所有子载波的数据,或者子载波的数据存在错误,如esp32接收的子载波前四条子载波是无效的,为了使用子载波过滤和选择更加自动化。本实施例中,当智能设备检测到子载波数据来源设备发生变化时,或收到云服务器发起的为子载波过滤请求命令时(步骤s301),智能设备进入子载波选择流程,挑选出有效子载波进行计算。子载波选择流程在处理的时候,必须保证环境中没有人,具体包含:

如步骤s302所示,利用主成分分析,得到子载波的主成分。先收集当前子载波500个子载波信道频率响应,计算对应的振幅数据,组成矩阵:

每一行为一条子载波子载波振幅,每条子载波向量为am:

am=(am1,am2,…,amn,(n=500))

计算矩阵的主成分,将矩阵降成一维有向量,获取主成分向量:

f=(f1,f2,…,fn),(n=500)

然后,在步骤s303中,计算每一条子载波am与主成分f之间的相关系数。在步骤s304中完成对相关系数的判断,如果大于0.8则由步骤s305标识这条子载波为有效子载波,否则由步骤s306标识这条子载波为无效子载波。无效子载波不参与后续的计算。

请参阅图8,为了让其适用在不同的场景中,本发明还提供了一种在不同的场景对人体活动阈值和人体存在阈值进行自动校准的阈值校准方法。在校准时,需要保证房间无人且智能设备已经安装完成与实际测试环境相同。具体的步骤包含:在步骤s401中,当智能设备收到来自云服务器发起的阈值校准开始命令后,即在步骤s402中进入自动校准模式,此时智能设备停止进行人体体征检测。如步骤s403所示,智能设备持续计算人体活动检测值和人体存在检测值,并将人体活动检测值的最大值和人体存在检测值的最小值记录下来。当收到来自云服务器发起的阈值校准停止指令后,智能设备进入步骤s404,此时智能设备停止计算人体活动检测值和人体存在检测值。在随后的步骤s405中,智能设备设置新的人体活动阈值和新的人体存在阈值。在具体实施中,可以智能设备设置新的人体活动阈值为人体活动检测值最大值加10%,将人体存在检测值的阈值设定为人体存在检测值的最小值减10%。

本发明的实施例中,ping包间隔为5ms,50个数据包作为一组检测数据集,最快能在200ms内检测到人体的活动,且5ms的发包间隔对网络环境影响最小。

请参阅图9,本发明的一个较佳实施例,还包含一种智能设备,包括:处理器500、存储器600和wi-fi收发模块。处理器500执行保存在存储器600中的程序,利用wi-fi收发模块,完成上述wi-fi人体检测的方法中的步骤。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1