基于大数据的滞留人员统计预警方法和装置与流程

文档序号:15079687发布日期:2018-08-03 12:41阅读:287来源:国知局

本发明涉及大数据处理技术领域,特别涉及一种基于大数据的滞留人员统计预警方法和装置。



背景技术:

对于一些人员密集区域或者其他重要区域,及时了解区域内的人员流动和人员停留情况,实时进行预警提醒,避免发生一些不必要的麻烦,是很有必要的,但目前对于人员在指定区域内的停留情况进行统计提醒、分析预警的方法比较少。

现有技术中,也只有基于小数据量的分析一些历史数据,来确定在特定区域内需要预警或提醒的滞留人员。这样的统计是不准确的,因此也不能很好的起到提醒和预警的作用,尤其是在数据量比较大的情况下,针对小数据量的分析方法,也不能获得准确有效的分析结果。

因此,在大数据环境下,如何准确的统计指定区域内的人员停留情况,并根据人员停留情况进行有针对性的提醒。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于大数据的滞留人员统计预警方法和装置。

第一方面,本发明实施例提供一种基于大数据的滞留人员统计预警方法,包括:

获取抓拍到的人脸抓拍数据和抓拍时间;

根据所述人脸抓拍数据中包含的人脸标识信息,查询是否存在当前人脸的抓拍数据记录;

当不存在时,记录所述人脸抓拍数据和对应的抓拍时间;

当存在时,将获取的抓拍时间和记录的抓拍时间进行比较;当获取的抓拍时间和记录的抓拍时间的差值介于第一时间阈值和第二时间阈值之间时,更新当前人脸对应的滞留天数;

当滞留天数满足设定的滞留条件时,进行预警提醒。

在一些可选的实施例中,所述获取抓拍到的人脸抓拍数据和抓拍时间,包括:

通过抽取-转换-加载ETL工具将人脸抓拍数据写入大数据的Kafka实时数据流中;

从Kafka实时数据流中获取包括人脸标识信息和抓拍时间的人脸抓拍数据。

在一些可选的实施例中,上述方法还包括:

当获取的抓拍时间和记录的抓拍时间的差值小于所述第一时间阈值时,继续获取抓拍到的人脸抓拍数据;

当获取的抓拍时间和记录的抓拍时间的差值大于所述第二时间阈值时,更新当前人脸的记录的抓拍时间,继续获取抓拍到的人脸抓拍数据。

在一些可选的实施例中,所述更新当前人脸对应的滞留天数,包括:

判断当前统计日内,当前人脸对应的滞留天数是否已经更改过;

若是,保持当前人脸对应的滞留天数不变;

若否,将当前人脸对应的滞留天数加1。

在一些可选的实施例中,所述当滞留天数满足设定的滞留条件时,进行预警提醒,包括:

确定滞留天数与记录天数的比值,当所述比值大于设定的比例阈值时,进行提醒预警;或

判断滞留天数是否大于设定的滞留天数阈值,当判断为是时,进行提醒预警。

第二方面,本发明实施例提供一种基于大数据的滞留人员统计预警装置,包括:

抓拍模块,用于获取抓拍到的人脸抓拍数据和抓拍时间;

查询模块,用于根据所述人脸抓拍数据中包含的人脸标识信息,查询是否存在当前人脸的抓拍数据记录;

记录模块,用于当不存在时,记录所述人脸抓拍数据和对应的抓拍时间;

统计模块,用于当存在时,将获取的抓拍时间和记录的抓拍时间进行比较;当获取的抓拍时间和记录的抓拍时间的差值介于第一时间阈值和第二时间阈值之间时,更新当前人脸对应的滞留天数;

预警模块,用于当滞留天数满足设定的滞留条件时,进行预警提醒。

在一些可选的实施例中,所述抓拍模块,具体用于:

通过抽取-转换-加载ETL工具将人脸抓拍数据写入大数据的Kafka实时数据流中;

从Kafka实时数据流中获取包括人脸标识信息和抓拍时间的人脸抓拍数据。

在一些可选的实施例中,所述统计模块,还用于:

当获取的抓拍时间和记录的抓拍时间的差值小于所述第一时间阈值时,继续获取抓拍到的人脸抓拍数据;

当获取的抓拍时间和记录的抓拍时间的差值大于所述第二时间阈值时,更新当前人脸的记录的抓拍时间,继续获取抓拍到的人脸抓拍数据。

在一些可选的实施例中,所述统计模块,具体用于:

判断当前统计日内,当前人脸对应的滞留天数是否已经更改过;

若是,保持当前人脸对应的滞留天数不变;

若否,将当前人脸对应的滞留天数加1。

在一些可选的实施例中,所述预警模块,具体用于:

确定滞留天数与记录天数的比值,当所述比值大于设定的比例阈值时,进行提醒预警;或

判断滞留天数是否大于设定的滞留天数阈值,当判断为是时,进行提醒预警。

本发明实施例提供的上述技术方案的有益效果至少包括:

通过获取抓拍人脸抓拍数据,确定有当前人脸的抓拍数据记录时,将当前抓拍时间与之前记录的当前人脸的抓拍时间进行比较,确定当前人脸对应的滞留天数,从而确定当前人员是否符合滞留提醒的条件,当符合条件时进行提醒,从而能够准确的统计滞留人员的滞留时间,并及时的进行提醒,该方法能够快速的对大数据进行处理,处理效率高,提高了统计的准确性和提醒的及时性,实现了有针对性的对人员在特定区域的停留情况进行有针对性的统计和提醒。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中基于大数据的滞留人员统计预警方法的流程图;

图2为本发明实施例中人脸抓拍数据抓拍的流程图;

图3为本发明实施例中基于大数据的滞留人员统计预警方法的流程图;

图4为本发明实施例中基于大数据的滞留人员统计预警装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为了解决现有技术中存在的不能准确地统计人员在指定区域内的停留情况,不能进行及时有效地提醒的问题,本发明实施例提供一种基于大数据的滞留人员统计预警方法,能够准确的统计人员停留的时间,进行及时、有效的提醒,对大数据的处理速度快,效率高。

下面通过具体的实施例进行详细描述。

本发明实施例提供一种基于大数据的滞留人员统计预警方法,其流程如图1所示,包括如下步骤:

步骤S101:获取抓拍到的人脸抓拍数据和抓拍时间。

获取抓拍到的人脸抓拍数据的过程,包括通过抽取-转换-加载(Extract-Transform-Load,ETL)工具将人脸抓拍数据写入大数据的Kafka实时数据流中,从Kafka实时数据流中获取包括人脸标识信息和抓拍时间的人脸抓拍数据。

ETL工具用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,在这种架构下用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作包括网页浏览、搜索和其他用户的行动等,是在现代网络上的许多社会功能的一个关键因素。些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。

例如:如图2所示,获取抓拍到的人脸抓拍数据的过程包括:

S201:获取人脸抓拍实时数据。

通过图像或视频设备获取对指定区域内进行抓拍,得到包含人脸图像的人脸抓拍实时数据。

S202:通过ETL工具,抽取实时数据中的人脸抓拍数据。

S203:将抽取的人脸抓拍数据加入Kafka消息队列中。

图2所示的是将抓拍的人脸原始数据入库的流程。

步骤S102:根据获取到的人脸抓拍数据中包含的人脸标识信息,查询是否存在当前人脸的抓拍数据记录;当不存在时,执行步骤S103;当存在时,执行步骤S104。

获取的人脸抓拍数据中的人脸标识信息可以是人脸标识ID,也可以是人脸编号等其他可以对人脸进行区分识别的人脸特征。

将获取的人脸抓拍数据中的人脸特征提取出来,确定获取的人脸抓拍数据中包含的当前人脸,查询记录的人脸抓拍数据中是否有当前人脸的相关记录,例如记录中有人脸ID相同或相匹配,人脸编号相同或相匹配,或者人脸特征如五官的形状、位置等都相同或相匹配的情况下,则认为记录的人脸抓拍数据中是否有当前人脸的相关记录。

步骤103:记录获取的人脸抓拍数据和对应的抓拍时间。

当记录中没有当前人脸的人脸抓拍数据时,认为是第一次抓拍到当前人脸,则记录获取的当前人脸的人脸抓拍数据和对应的抓拍时间。

步骤104:将获取的抓拍时间和记录的抓拍时间进行比较。

当记录中有当前人脸的人脸抓拍数据时,则认为当前人脸对应的人员在统计区域内已经停留一段时间,则比较当前抓拍时间和之前记录的抓拍时间,来确定停留时间的长短。

步骤105:当获取的抓拍时间和记录的抓拍时间的差值介于第一时间阈值和第二时间阈值之间时,更新当前人脸对应的滞留天数。

可以预先设定两个时间阈值,比如第一时间阈值小于第二时间阈值,当获取的抓拍时间和记录的抓拍时间的差值介于这两个时间阈值之间时,认为是滞留。比如第一时间阈值设置为几分钟或十几分钟,第二时间阈值设置为十几分钟或几十分钟、几个小时等。

当确认停留时间属于滞留时间范围时,可以直接更新滞留天数,比如使滞留天数加1。

可选的,还可以进一步判断是否需要更新滞留天数,包括:判断当前统计日内,当前人脸对应的滞留天数是否已经更改过;若是,保持当前人脸对应的滞留天数不变;若否,将当前人脸对应的滞留天数加1。这种情况使得一个统计日内滞留天数只增加一次,即如果同一人脸在同一统计日内第二次或更多次被判定为停留时间属于滞留时间范围,也只会将滞留天数加1。

步骤106:当滞留天数满足设定的滞留条件时,进行预警提醒。

可以预先设置统计预警提醒的条件,比如设置滞留天数超过一定比例进行提醒预警,或滞留天数超过一定天数进行提醒预警。

例如:确定滞留天数与记录天数的比值,当确定出的比值大于设定的比例阈值时,进行提醒预警。

或例如:判断滞留天数是否大于设定的滞留天数阈值,当判断为是时,进行提醒预警。

步骤107:当获取的抓拍时间和记录的抓拍时间的差值小于第一时间阈值时,返回步骤S101继续获取抓拍到的人脸抓拍数据。

当获取的抓拍时间和记录的抓拍时间的差值小于第一时间阈值时,认为是在统计区域内正常的停留,不属于滞留,不更新滞留天数,并继续进行人脸数据抓拍识别。

步骤108:当获取的抓拍时间和记录的抓拍时间的差值大于第二时间阈值时,更新当前人脸的记录的抓拍时间,返回步骤S101继续获取抓拍到的人脸抓拍数据。

当获取的抓拍时间和记录的抓拍时间的差值大于第二时间阈值时,认为是在统计区域内不属于滞留,即不属于一次来到统计区域后一直滞留在此区域的情况,而属于再次来到该区域,重新计算停留时间,即更新记录的当前人脸的抓拍时间,使用于计算停留时间的起始时间点得到更新。

本发明实施例提供的上述基于大数据的滞留人员统计预警方法的一种具体实现过程示例如图3所示,包括如下步骤:

步骤S301:通过ETL工具,将人脸抓拍实时数据写入大数据的Kafka中。

步骤S302:从Kafka实时数据流中实时获取人脸抓拍数据。

可以添加一个针对待统计区域的区域布控任务,比如设置滞留时间在5-15分钟内算作滞留一天,布控周期为15天,滞留天数超过周期的66%,则作为需要提醒的人员。

从Kafka实时数据流中获取目标人脸的抓拍数据,获取对应人脸识别信息的抓拍数据。以人脸标识信息为人脸ID为例,比如目标人脸ID:A,抓拍时间C_TIME:2017-11-0114:34:21。

步骤S303:判断当前人脸ID是否有对应的人脸抓拍数据记录。若有,执行步骤S305;若没有,执行步骤S304。

从REDIS缓存中查询当前人脸ID为A的人脸抓拍数据,可以通过人脸ID进行人脸抓拍数据匹配查询,当缓存中存在当前人脸ID对应的数据记录时执行步骤S305,不存在时,执行步骤S304。REDIS是一个键-值key-value存储系统,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、键-值(Key-Value)数据库,并提供多种语言的应用程序编程接口(Application Programming Interface,API)。

步骤S304:将该人脸ID和抓拍时间缓存到REDIS中。

若当前人脸ID在REDIS缓存中不存在,则表示是第一次抓拍到该人脸,进行记录后返回执行步骤S302继续获取数据。

若REDIS缓存中不存在人脸ID为A的人脸抓拍数据,缓存人脸ID:A和抓拍时间C_TIME:2017-11-0114:34:21。

步骤S305:将当前抓拍时间和记录的抓拍时间进行比较。

若是,执行步骤S307;若否,返回继续执行步骤S305。

若当前人脸ID在REDIS缓存中已存在,且记录的时间为R_TIME,则需要计算当前人脸两次抓拍时间的时间差D=C_TIME-R_TIME,从而确定其停留的时间,假设第一时间阈值为I分钟,第二时间阈值为K分钟,若时间差大于K分钟,执行步骤S306;若时间差小于I分钟,返回继续执行步骤S302;若时间差介于I分钟和K分钟之间,则执行步骤S307。

比如:若当前人脸ID在REDIS缓存中存在,REDIS缓存中该人脸ID对应时间R_TIME,且当前抓拍时间C_TIME,符合0分钟≤C_TIME-R_TIME<I分钟时,返回执行步骤S302;符合K分钟<C_TIME-R_TIME时,执行步骤S306;符合I分钟≤C_TIME-R_TIME≤K分钟时,执行步骤S307。

步骤S306:更新REDIS缓存中该人脸ID的抓拍时间为C_TIME。

若当前人脸ID在REDIS缓存中存在,缓存中该人脸ID对应时间R_TIME,且当前抓拍时间C_TIME,符合(K分钟<C_TIME-R_TIME),更新REDIS缓存中该人脸ID的抓拍时间为C_TIME,返回执行步骤S302。

步骤S307:将该人脸ID的滞留记录中添加当天日期并存入REDIS缓存中。

该步骤实现REDIS缓存人脸ID和滞留日期。

若当前人脸ID在REDIS缓存中存在,REDIS缓存中该人脸ID对应时间R_TIME,且当前抓拍时间C_TIME,符合I分钟≤C_TIME-R_TIME≤K分钟,则将该人脸ID的滞留记录中添加当天日期并存入REDIS缓存中,并更新REDIS缓存该人脸ID的抓拍时间为C_TIME。

比如:若REDIS缓存中存在人脸ID:A的数据,REDIS缓存中的抓拍时间R_TIME:2017-11-0114:20:21,C_TIME-R_TIME=14分钟,符合滞留,则将2017-11-01人脸ID:A的滞留记录,并缓存到REDIS。

步骤S308:获取滞留天数和记录天数。

获取当前统计周期的天数T,即记录天数或说总天数,获取该人脸ID的滞留天数Z,其中,当前统计周期的天数T为当前日期D和周期起始日期Q的差,即T=D-Q。

步骤S309:判断滞留天数占记录天数的比例是否大于设定的比例阈值。若是,执行步骤S310和步骤S311,否则返回执行步骤S302,继续获取抓拍到的人脸抓拍数据。

假设比例阈值为M%,若满足(Z/T)*100%≥M%,则该人脸ID符合提醒预警人员的条件。

步骤S310:推送该人脸数据到kafka中进行预警提醒。

比如:取出人脸ID:A最近15天内的滞留日期,比如2017-10-18到2017-10-28和2017-10-30和2017-11-01,共滞留13天,13/15>66%,则人脸ID:A符合需要提醒预警的滞留人员的条件,推送预警。

步骤S311:持久化到solr中供历史查询。

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。

基于同一发明构思,本发明实施例还提供一种基于大数据的滞留人员统计预警装置,该装置可以设置在服务器、计算机、终端设备等设备中,该装置的结构如图4所示,包括:抓拍模块401、查询模块402、记录模块403、统计模块404和预警模块405。

抓拍模块401,用于获取抓拍到的人脸抓拍数据和抓拍时间;

查询模块402,用于根据获取的人脸抓拍数据中包含的人脸标识信息,查询是否存在当前人脸的抓拍数据记录;

记录模块403,用于当不存在时,记录人脸抓拍数据和对应的抓拍时间;

统计模块404,用于当存在时,将获取的抓拍时间和记录的抓拍时间进行比较;当获取的抓拍时间和记录的抓拍时间的差值介于第一时间阈值和第二时间阈值之间时,更新当前人脸对应的滞留天数;

预警模块405,用于当滞留天数满足设定的滞留条件时,进行预警提醒。

可选的,抓拍模块401,具体用于:

通过抽取-转换-加载ETL工具将人脸抓拍数据写入大数据的Kafka实时数据流中;

从Kafka实时数据流中获取包括人脸标识信息和抓拍时间的人脸抓拍数据。

可选的,统计模块404,还用于:

当获取的抓拍时间和记录的抓拍时间的差值小于第一时间阈值时,继续获取抓拍到的人脸抓拍数据;

当获取的抓拍时间和记录的抓拍时间的差值大于第二时间阈值时,更新当前人脸的记录的抓拍时间,继续获取抓拍到的人脸抓拍数据。

可选的,统计模块404,具体用于:

判断当前统计日内,当前人脸对应的滞留天数是否已经更改过;

若是,保持当前人脸对应的滞留天数不变;

若否,将当前人脸对应的滞留天数加1。

可选的,预警模块405,具体用于:

确定滞留天数与记录天数的比值,当所述比值大于设定的比例阈值时,进行提醒预警;或

判断滞留天数是否大于设定的滞留天数阈值,当判断为是时,进行提醒预警。

关于上述实施例中的基于大数据的滞留人员统计预警装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本发明实施例的上述方法和装置,针对统计区域内的人员进行统计,在该区域内停留时间在I到K分钟算作滞留一天,滞留天数超过总天数的M%或达到一定的天数即为需要提醒预警的人员。不同于现有技术中只能基于小数据量分析历史数据,来确定哪些人滞留人员,不能很好的起到非访预警的效果。本发实施例的统计提醒方法,时效性强,主动推送,一旦出现滞留人员可实时推送预警,分析速度快,处理速度高达7000条/秒,能保证每日数据量达到6亿的情况下依旧实时预警。

除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

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