一种大规模多品类网络摄像头识别及状态感知方法及装置转让专利

申请号 : CN202310232023.4

文献号 : CN115955508B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈永立秦小禹李毓琪何建新李翔

申请人 : 边无际(北京)科技有限公司

摘要 :

本文涉及物联网领域,提供了一种大规模多品类网络摄像头识别及状态感知方法及装置,方法应用于物联网中各路由器的程序插件,包括:按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组;按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息;根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息发送至云端服务器,本文能够降低路由器运营成本,提高识别效率,降低云端服务器负载压力。

权利要求 :

1.一种大规模多品类网络摄像头识别及状态感知方法,其特征在于,应用于物联网中各路由器,所述方法包括:按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包;

按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息,其中,标准设备信息包括网络摄像头产品序列号、网络摄像头产品名称、摄像头厂商标识、子网IP、网络摄像头产品型号和MAC地址;

根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器;

按照全量心跳时间间隔发送全量补偿心跳信息至云端服务器,以由云端服务器根据全量补偿心跳信息确定网络摄像头状态及路由器状态;

其中,全量补偿心跳信息包括本路由器中最近状态为在线的标准设备信息;

全量心跳时间间隔采用如下分布式均衡性方式确定:

在固定时间间隔范围内,生成随机时间;

随机时间与固定时间间隔之和作为所述全量心跳时间间隔;

其中,按照预设数据格式对每一网络摄像头的响应数据包进行格式转换,得到标准设备信息包括:从该网络摄像头的响应数据包中获取预设数据格式中各字段的数据;

对各字段的数据进行标准化预处理,其中,标准化预处理包括:字段数据长度限定,字段数据中非法字符和非标信息做过滤丢弃处理。

2.如权利要求1所述的方法,其特征在于,根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头包括:从每一标准设备信息中提取网络摄像头的标识;

在缓存中查询该网络摄像头的标识及最近状态;

若缓存中不存在该网络摄像头的标识,则设置该网络摄像头为第一增量网络摄像头;

若缓存中存在该网络摄像头的标识且最近状态为下线,则设置该网络摄像头为第二增量网络摄像头;

若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则设置该网络摄像头为减量网络摄像头;

由第一增量网络摄像头、第二增量网络摄像头及减量网络摄像头组成状态变动的网络摄像头。

3.如权利要求2所述的方法,其特征在于,所述第一增量网络摄像头及第二增量网络摄像头的确定步骤执行于得到标准设备信息之后;

所述减量网络摄像头的确定步骤每间隔预定时间阈值执行一次。

4.如权利要求1所述的方法,其特征在于,根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间包括:从每一标准设备信息中提取网络摄像头的标识;

在缓存中查询该网络摄像头的标识及最近状态;

若缓存中不存在该网络摄像头的标识,则该网络摄像头最新状态为在线,在缓存中新增该网络摄像头的状态为在线及在线时间为当前系统时间;

若缓存中存在该网络摄像头的标识且最近状态为在线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头的在线时间为当前系统时间;

若缓存中存在该网络摄像头的标识且最近状态为下线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头状态为在线及在线时间为当前系统时间;

若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则该网络摄像头最新状态为下线,在缓存中修改该网络摄像头的状态为下线。

5.如权利要求1所述的方法,其特征在于,还包括:

接收云端服务器发送的配置信息,配置信息包括目标组播组IP、功能开关信息及全量心跳时间间隔;

根据配置信息修改路由器中的相关参数。

6.一种大规模多品类网络摄像头识别及状态感知装置,其特征在于,应用于物联网中各路由器,包括:设备信息识别单元,用于按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包;

数据转换单元,用于按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息,其中,标准设备信息包括网络摄像头产品序列号、网络摄像头产品名称、摄像头厂商标识、子网IP、网络摄像头产品型号和MAC地址;

状态识别单元,用于根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器;

按照全量心跳时间间隔发送全量补偿心跳信息至云端服务器,以由云端服务器根据全量补偿心跳信息确定网络摄像头状态及路由器状态;

其中,全量补偿心跳信息包括本路由器中最近状态为在线的标准设备信息;

全量心跳时间间隔采用如下分布式均衡性方式确定:

在固定时间间隔范围内,生成随机时间;

随机时间与固定时间间隔之和作为所述全量心跳时间间隔;

其中,按照预设数据格式对每一网络摄像头的响应数据包进行格式转换,得到标准设备信息包括:从该网络摄像头的响应数据包中获取预设数据格式中各字段的数据;

对各字段的数据进行标准化预处理,其中,标准化预处理包括:字段数据长度限定,字段数据中非法字符和非标信息做过滤丢弃处理。

7.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器执行时实现权利要求1至5任意一项所述方法。

说明书 :

一种大规模多品类网络摄像头识别及状态感知方法及装置

技术领域

[0001] 本文涉及物联网领域,尤其涉及一种大规模多品类网络摄像头设备信息识别及状态实时感知方法及装置。

背景技术

[0002] 随着物联网行业的高速发展,网络摄像头作为物联网场景中常见的物联网设备,广泛的应用于各种场景中。网络摄像头种类、厂商繁多,在采集网络摄像头数据时面临时间长、步骤繁琐的困难。现有网络摄像头制造厂商各自为战,提供的网络摄像头识别程序仅能够识别和发现自家厂商型号摄像设备,无法识别和发现其他厂商的网络摄像头设备,对于包含多厂商的物联网,需要在路由器中安装各厂商的网络摄像头识别程序才能实现各厂商设备信息的识别,当物联网中包含大规模(例如百万级别)网络摄像头及大规模(例如万级别)路由器时,每台路由器上均需安装不同厂商的识别程序,因此,存在路由器运维成本高、识别方案复杂及效率低的问题。
[0003] 具体实施时,各厂商的网络摄像头识别程序每间隔较大固定时间间隔识别一次设备信息,并将所有识别到的设备信息发送至云端服务器,实际上,识别到的设备信息的信息量巨大,大约每台摄像头会产生10KB的信息,一个百万级别的大规模物联网中,每次采样将产生将近10G的信息,对于云端服务器来说,会产生流量波峰和波谷,导致云端服务器一方面在波峰出现资源过载,在流量波谷出现资源闲置的现象,从而导致运维事故。同时,当物联网中各厂商包含大规模网络摄像头时,服务器同一时刻接收到巨量的设备信息,会对云端服务器产生很大压力,存在网络瘫痪的风险。
[0004] 另外,现有网络摄像头制造厂商的网络摄像头识别程序中对于本厂商设备的各类参数定义并不一致,各厂商的网络摄像头识别程序在识别本厂商的网络摄像头设备时,所发送的设备识别信息存在字段名称不一致,字段类型不一致的问题,进而导致需针对每一厂商设置一物联网应用,无法同时管理各厂商网络摄像头设备。

发明内容

[0005] 本文用于解决现有物联网中多厂商网络摄像头识别方法未利用网络摄像头状态及不能对多厂商网络摄像头统一识别及管理,进而导致大规模多品类网络摄像头识别存在运维成本高、复杂、效率低的问题。
[0006] 为了解决上述技术问题,本文一实施例中,提供一种大规模多品类网络摄像头识别及状态感知方法,应用于物联网中各路由器中的程序插件,所述方法包括:
[0007] 按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包;
[0008] 按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息;
[0009] 根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、网络摄像头的最新状态并更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器。
[0010] 作为本文进一步实施例中,根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头包括:
[0011] 从每一标准设备信息中提取网络摄像头的标识;
[0012] 在缓存中查询该网络摄像头的标识及最近状态;
[0013] 若缓存中不存在该网络摄像头的标识,则设置该网络摄像头为第一增量网络摄像头;
[0014] 若缓存中存在该网络摄像头的标识且最近状态为下线,则设置该网络摄像头为第二增量网络摄像头;
[0015] 若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则设置该网络摄像头为减量网络摄像头;
[0016] 由第一增量网络摄像头、第二增量网络摄像头及减量网络摄像头组成状态变动的网络摄像头。
[0017] 作为本文进一步实施例中,所述第一增量网络摄像头及第二增量网络摄像头的确定步骤执行于得到标准设备信息之后;
[0018] 所述减量网络摄像头的确定步骤每间隔预定时间阈值执行一次。
[0019] 作为本文进一步实施例中,根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定网络摄像头的最新状态并更新缓存中网络摄像头的状态和在线时间,包括:
[0020] 从每一标准设备信息中提取网络摄像头的标识;
[0021] 在缓存中查询该网络摄像头的标识及最近状态;
[0022] 若缓存中不存在该网络摄像头的标识,则该网络摄像头最新状态为在线,在缓存中新增该网络摄像头的状态为在线及在线时间为当前系统时间;
[0023] 若缓存中存在该网络摄像头的标识且最近状态为在线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头的在线时间为当前系统时间;
[0024] 若缓存中存在该网络摄像头的标识且最近状态为下线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头状态为在线及在线时间为当前系统时间;
[0025] 若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则该网络摄像头最新状态为下线,在缓存中修改该网络摄像头的状态为下线。
[0026] 作为本文进一步实施例中,大规模多品类网络摄像头识别及状态感知方法还包括:
[0027] 按照全量心跳时间间隔发送全量补偿心跳信息至云端服务器,以由云端服务器根据全量补偿心跳信息确定网络摄像头状态及程序插件状态;
[0028] 其中,全量补偿心跳信息包括本路由器中最近状态为在线的标准设备信息。
[0029] 作为本文进一步实施例中,全量心跳时间间隔采用如下分布式均衡性方式确定:
[0030] 在固定时间间隔范围内,生成随机时间;
[0031] 随机时间与固定时间间隔之和作为所述全量心跳时间间隔。
[0032] 作为本文进一步实施例中,各路由器的固定时间间隔不同,各路由器的固定时间间隔根据本路由器中各厂商在UDP组播组中网络摄像头数量而定。
[0033] 作为本文进一步实施例中,大规模多品类网络摄像头识别及状态感知方法还包括:
[0034] 接收云端服务器发送的配置信息,配置信息包括目标组播组IP配置信息、功能开关配置信息、全量心跳时间间隔;
[0035] 根据配置信息修改程序插件中的相关参数。
[0036] 本文一实施例中,提供一种大规模多品类网络摄像头识别及状态感知装置,应用于物联网中各路由器,包括:
[0037] 设备信息识别单元,用于按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包;
[0038] 数据转换单元,用于按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息;
[0039] 状态识别单元,用于根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、网络摄像头的最新状态并更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器。
[0040] 本文第三方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器执行时实现前述任一实施例所述方法。
[0041] 本文第四方面提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序被计算机设备的处理器执行时实现前述任一实施例所述的方法。
[0042] 本文通过仅在物联网的路由器中安装程序插件,即可实现各厂商网络摄像头的识别及状态感知,具体的,程序插件运行能够实现如下技术效果:
[0043] 通过按预定秒级时间间隔发送各摄像头厂商获取数据用的组播组数据包至各厂商的UDP组播组,能够对多品类网络摄像头无差别识别,因无需安装各摄像头厂商提供的识别程序,能够降低运维成本、提高识别准确率及效率;
[0044] 通过按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息,能够缓解云端服务器的压力,实现云端服务器处理与各厂商设备信息的解耦以及多品类网络摄像头的无差别识别;
[0045] 通过根据每一标准设备信息及缓存中网络摄像头的最近状态确定状态变动的网络摄像头,仅发送状态变动的网络摄像头的标准设备信息至云端服务器,能够降低信息发送量,提高网络摄像头识别效率,降低云端服务器对冗余信息的处理(即减少负载压力),提高数据管理效率。
[0046] 通过根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,识别网络摄像头的最新状态,根据识别结果更新缓存中网络摄像头的状态及在线时间,能够及时识别网络摄像头的状态,保证缓存中网络摄像头状态的真实性,进而提高状态变动的网络摄像头的识别准确度。
[0047] 为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

[0048] 为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1示出了本文实施例大规模多品类网络摄像头识别及状态感知的第一流程图;
[0050] 图2示出了本文实施例状态变动的网络摄像头确定过程的流程图;
[0051] 图3示出了本文实施例识别网络摄像头在线状态的流程图;
[0052] 图4示出了本文实施例大规模多品类网络摄像头识别及状态感知的第二流程图;
[0053] 图5示出了本文实施例大规模多品类网络摄像头识别及状态感知装置的第一结构图;
[0054] 图6示出了本文实施例大规模多品类网络摄像头识别及状态感知装置的第二结构图;
[0055] 图7示出了本文实施例大规模多品类网络摄像头信息识别过程的流程图;
[0056] 图8示出了本文实施例大规模多品类网络摄像头状态识别过程流程图;
[0057] 图9示出了本文实施例计算机设备的结构图。
[0058] 附图符号说明:
[0059] 501、设备信息识别单元;
[0060] 502、数据转换单元;
[0061] 503、状态识别单元;
[0062] 504、网络摄像头状态传送单元;
[0063] 902、云端服务器;
[0064] 904、处理器;
[0065] 906、存储器;
[0066] 908、驱动机构;
[0067] 910、输入/输出模块;
[0068] 912、输入设备;
[0069] 914、输出设备;
[0070] 916、呈现设备;
[0071] 918、图形用户接口;
[0072] 920、网络接口;
[0073] 922、通信链路;
[0074] 924、通信总线。

具体实施方式

[0075] 下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
[0076] 需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0077] 本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
[0078] 需要说明的是,本文的大规模多品类网络摄像头识别及状态感知方法及装置用于解决现有物联网中各厂商提供的识别程序仅能识别各自厂商的网络摄像头,未利用网络摄像头状态及不能对多厂商网络摄像头统一识别及管理,进而导致大规模多品类网络摄像头识别存在运维成本高、复杂、效率低的问题。
[0079] 大规模多品类网络摄像头识别及状态感知方法及装置应用于物联网中路由器的程序插件。其中,物联网中至少安装有大规模多厂商的多品类的可联网的网络摄像头,本文所述的物联网可以包含各类应用大规模网络摄像头的场景,还可应用于普通规模甚至小规模的场景。程序插件在程序开发完后编译为二进制插件分布至路由器中,为路由器端的多厂商设备信息采集程序,程序插件在路由器启动时跟随启动,启动后会向已有厂商的组播组定时发送指定格式的组播数据包,接入组播组中对应厂商的网络摄像头会返回包含设备信息的响应数据包,能够实现对各厂商多品类网络摄像头的识别,同时还能在路由器侧近实时(秒级)感知网络摄像头的状态,并基于网络摄像头的状态及识别到的设备信息确定发送至云端的设备信息。
[0080] 具体的,如图1所示,程序插件实现大规模多品类网络摄像头识别及状态感知方法包括:
[0081] 步骤101,按预定秒级时间间隔发送各摄像头厂商的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包。
[0082] 详细的说,预定秒级时间间隔可根据物联网中各摄像头厂商网络摄像头数量而定,网络摄像头数量越多,对应的预定秒级时间间隔越大,本文对其具体取值不作限定。一些实施方式中,预定秒级时间间隔例如为5秒、10秒等。
[0083] 本方法实施之前,物联网中的网络摄像头已通过自动分配IP地址的方式实现了组网。本方法实施之前还根据物联网中包含的摄像头厂商,在程序插件中预先配置各摄像头厂商的UDP组播组的组播地址。各摄像头厂商的UDP组播组中加入有物联网中本摄像头厂商的网络摄像头,各摄像头厂商的UDP组播组接收到组播数据包后,会传送至本UDP组播组中的网络摄像头。
[0084] 各摄像头厂商的组播组数据包由各厂商制定,本文对其具体格式不作限定。网络摄像头接收到组播组数据包后采集设备信息,并根据设备信息生成响应数据包,发送响应数据包至路由器。其中,设备信息包括:网络摄像头产品序列号、网络摄像头产品名称、摄像头厂商标识、子网IP、网络摄像头产品型号、MAC地址、版本号、软件名称、设备描述信息等。摄像头提供的设备信息中包含大量冗余信息,每一响应数据包中设备信息的数据量能够达到10KB。
[0085] 步骤102,按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息。
[0086] 其中,预设数据格式为物联网结构性数字孪生操作系统的标准设备信息,通过分析各摄像头厂商的网络摄像头响应数据包格式确定。标准设备信息包括:网络摄像头产品序列号、网络摄像头产品名称、摄像头厂商标识、子网IP、网络摄像头产品型号、MAC地址,标准设备信息的格式为包含字母和数字构成的字符串。
[0087] 具体的,步骤102对每一网络摄像头的响应数据包进行格式转换过程包括:
[0088] (1)从该网络摄像头的响应数据包中获取预设数据格式中各字段的数据;
[0089] (2)对各字段的数据进行标准化预处理,其中,标准预处理包括:字段数据长度限定(例如长度限定在20个字节,超过的长度进行删除处理,或用通配符表示),字段数据中非法字符和非标信息做过滤丢弃处理等等。
[0090] 具体实施时,可由程序实现对各摄像头厂商的网络摄像头响应数据包进行归纳转换,提炼出预设数据格式。
[0091] 一些实施方式中,预设数据格式如表1所示。
[0092] 表1
[0093]路由器UUID 40字节
产品序列号 120字节
产品名称 40字节
厂商代码 4字节
子网IP 20字节
设备型号 40字节
mac地址 20字节
[0094] 其中,路由器UUID为路由器的唯一标识,通过路由器的程序插件在启动时赋值。产品序列号、产品名称、厂商代码、子网IP、设备型号及mac地址通过分析网络摄像头发送的响应数据包得到。其中,产品序列号为唯一字段,子网IP、设备型号及mac地址为必须字段,若某一响应数据包中不包含产品序列号、子网IP、设备型号及mac地址的字段,则丢弃该响应数据包。若响应数据包中不包含产品名称和/或厂商代码,则设置相应字段数据的默认值为空。
[0095] 一实施方式中,网络摄像头识别、设备信息采集及标准网络摄像头确定流程如图7所示,路由器的程序插件针对每一摄像头厂商设置有一组播线程,各摄像头厂商的组播线程用于向各摄像头厂商的组播地址发送组播数据包,以获取各组播组中网络摄像头发送的响应数据包,具体实施时,各组播线程发送组播数据包的时间间隔可以相同,也可以不同,具体可由本组播组中网络摄像头的数量而定。各摄像头厂商的组播线程还用于从响应数据包中提取并缓存标准设备信息,具体的,通过产品序列号在路由器的程序插件内存中进行缓存。缓存中仅存储当前有效的标准设备信息,即最近一次确定出的标准设备信息。
[0096] 本步骤通过将网络摄像头的响应数据包转换为标准设备信息,能够将摄像头产生的信息优化至不到300字节,缩少近30倍的数据量(摄像头响应数据包大约10KB左右),从而能够缓解云端服务器的数据处理压力。
[0097] 步骤103,根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器。
[0098] 本步骤中,状态不变的网络摄像头的标准设备信息不会实时发送至云端服务器。路由器中缓存的信息包括:最近存储的标准设备信息、网络摄像头的历史状态及历史在线时间等信息。为了便于读取数据,缓存中的信息以网络摄像头为单位进行存储。为了减少路由器的存储压力,路由器的缓存中还可仅存储网络摄像头的最近状态及在线时间信息。本文所述的最近状态指的是距离当前时间最近的缓存状态记录。本文所述的最新状态指的是当前识别出的状态,识别出的最新状态存储于缓存之后成为最近状态。
[0099] 缓存中设备信息的有效性即上次接收到数据响应包的时间,即预定秒级时间间隔(例如5秒)之前采集的设备信息。
[0100] 本步骤中,网络摄像头的状态包括:在线及下线。其中,在线包括首次在线、一直在线以及下线后再上线这三种情况。在线时间为最近一次识别出设备信息的系统时间。下线为从上线变化为下线。
[0101] 具体实施时,云端服务器可通过可视化分析工具实时分析路由器发送的设备信息,进而实现大规模摄像头入网状态的侦测。
[0102] 本实施例提供的多品类网络摄像头识别及状态感知方法,针对包含大规模多品类摄像头的物联网场景的网络摄像头信息的识别以及实时状态的感知具有意想不到的技术效果,具体如下:
[0103] 通过步骤101按预定秒级时间间隔发送各摄像头厂商获取数据用的组播组数据包至各厂商的UDP组播组,能够利用路由器内通讯响应速度快、时延小的特点,在路由器内进行秒级不断组播,进而实现大规模多品类网络摄像头无差别识别,因无需安装各摄像头厂商提供的识别程序,能够降低运维成本、提高识别效率;
[0104] 通过步骤102按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息,能够缓解云端服务器的压力,实现云端服务器处理与各厂商设备信息的解耦以及多品类网络摄像头的无差别识别;
[0105] 通过步骤103根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间确定状态变动的网络摄像头,仅发送状态变动的网络摄像头的标准设备信息至云端服务器,能够降低信息发送量,将路由器内摄像头的状态变化以秒级延迟同步更新至云端服务器,还能够降低云端服务器同步信息负载,减少对冗余信息的处理,提高数据管理效率。
[0106] 通过步骤103根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,识别网络摄像头的最新状态,根据识别结果更新缓存中网络摄像头状态及在线时间,能够及时识别网络摄像头的状态,保证缓存中网络摄像头状态的真实性,进而提高状态变动的网络摄像头的识别准确度。
[0107] 云端服务器接收到状态变动的网络摄像头的标准设备信息之后,将状态变动的网络摄像头的标准设备信息存储于云端数据库中,通过如下判断,确定接收到的每一标准设备信息对应的网络摄像头的状态:
[0108] (1)从数据库中查询该网络摄像头的标识、最近状态及最近更新时间;
[0109] (2)若数据库中不存在该网络摄像头的标识,则说明该网络摄像头的状态变动信息为在线,该网络摄像头为第一次上线,为第一增量网络摄像头,则在数据库中设置该网络摄像头的状态为在线及在线时间为当前系统时间;
[0110] (3)若数据库中存在该网络摄像头的标识且最近状态为下线,则说明该网络摄像头的状态变动信息为在线,该网络摄像头为下线后再上线,为第二增量网络摄像头,在数据库中修改该网络摄像头状态为在线及在线时间为当前系统时间;
[0111] (4)若数据库中存在该网络摄像头的标识且最近状态为在线,则说明该网络摄像头的状态变动信息为下线,该网络摄像头为减量网络摄像头,在数据库中修改该网络摄像头状态为下线。
[0112] 具体实施时,云端服务器还可通过如下方式确定并更新网络摄像头的状态:
[0113] (1)每隔一预定时间间隔,从云端数据库中查询各网络摄像头最近的在线时间,执行如下步骤完成网络摄像头状态及在线时间更新:
[0114] (2)若未查询出网络摄像头最近的在线时间,则说明摄像头为第一次上线,在数据库中设置网络摄像头的状态为在线及在线时间为当前系统时间;
[0115] (3)若网络摄像头最近的在线时间与当前系统差值大于预定值,且网络摄像头状态为下线,则保持网络摄像头下线不变;
[0116] (4)若网络摄像头最近的在线时间与当前系统差值大于预定值,且网络摄像头状态为在线,则在数据库中修改网络摄像头状态为下线;
[0117] (5)若网络摄像头最近的在线时间与当前系统差值小于预定值,则保持网络摄像头在线不变,修改网络摄像头在线时间为当前系统时间。
[0118] 本文一实施例中,如图2所示,上述步骤102根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头包括:
[0119] 步骤201,从每一标准设备信息中提取网络摄像头的标识。
[0120] 步骤202,在缓存中查询该网络摄像头的标识及最近状态。
[0121] 步骤203,若缓存中不存在该网络摄像头的标识,则确定该网络摄像头为第一次上线,设置该网络摄像头为第一增量网络摄像头。
[0122] 步骤204,若缓存中存在该网络摄像头的标识且最近状态为下线,则确定该网络摄像头为重新上线,设置该网络摄像头为第二增量网络摄像头。
[0123] 步骤205,若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则设置该网络摄像头为减量网络摄像头。
[0124] 步骤206,由第一增量网络摄像头、第二增量网络摄像头及减量网络摄像头组成状态变动的网络摄像头。
[0125] 进一步实施例中,第一增量网络摄像头及第二增量网络摄像头的确定步骤执行于步骤102得到标准设备信息之后,同时确定网络摄像头的最新状态,即路由器的程序插件每收集到网络摄像头的响应数据包后,将其转换为标准设备信息并识别网络摄像头的最新状态,则根据该标准设备信息确定是否存在增量摄像头以及识别摄像头的最新状态。减量网络摄像头的确定步骤每间隔预定时间阈值执行一次。本实施例能够减少路由器因识别摄像头而产生的资源消耗。
[0126] 本文一实施例中,如图3所示,上述步骤102根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,识别网络摄像头最新状态并更新缓存中网络摄像头的最近状态和在线时间,包括:
[0127] 步骤301,从每一标准设备信息中提取网络摄像头的标识(即产品序列号)。
[0128] 步骤302,在缓存中查询该网络摄像头的标识及最近状态。
[0129] 步骤3021,若缓存中不存在该网络摄像头的标识,则该网络摄像头最新状态为在线,在缓存中新增该网络摄像头的状态为在线及在线时间为当前系统时间。
[0130] 步骤3022,若缓存中存在该网络摄像头的标识且最近状态为在线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头的在线时间为当前系统时间。
[0131] 步骤3023,若缓存中存在该网络摄像头的标识且最近状态为下线,则该网络摄像头最新状态为在线,在缓存中修改该网络摄像头状态为在线及在线时间为当前系统时间。具体实施时,缓存中还存储有标准设备信息,如表1中内容所示。
[0132] 举例来说,如图8中缓存中存储的部分网络摄像头的状态及在线时间的信息如表2所示,其中,T为当前系统时间:
[0133] 表2
[0134]
[0135] 步骤3024,若缓存中该网络摄像头的在线时间与当前系统时间之间的时间差大于预定值,则该网络摄像头最新状态为下线,在缓存中修改该网络摄像头的状态为下线。
[0136] 经过步骤3021判断,表2所示缓存中不存在网络摄像头0004的标识,因此,在缓存中新增0004的状态为在线及在线时间为当前系统时间。
[0137] 经过步骤3022判断,表2所示缓存中存在网络摄像头0001且状态为在线,因此,在缓存中修改0001的在线时间为当前系统时间。
[0138] 经过步骤3023判断,表2所示缓存中存在网络摄像头0003且状态为下线,因此,在缓存中修改0003的状态为在线及在线时间为当前系统时间。
[0139] 经过步骤3024判断,在线的网络摄像头包括0001及0002,0002的在线时间与系统时间差值大于预定值,因此,0002在缓存中的状态被设置为下线。0001的在线时间与系统时间差值小于预定值,因此,0001在缓存中的状态保持在线不变。
[0140] 具体实施时,路由器中的程序插件还可用于统计网络摄像头在预定时间段内的下线次数,对于下线次数达到预定次数的网络摄像头,发送异常提醒至云端服务器,以便云端服务器对网络摄像头进行异常分析,例如,指定巡检计划或发送异常信息至运维人员等。
[0141] 本文一实施例中,存在物联网中因路由器断电导致路由器程序插件整体下线,进而无法发送状态变动的网络摄像头的标准信息的情况,对于该种情况,云端服务器的数据没有主动更新,无法识别这些路由器已经整体下线这一事件,为了解决该问题,本文一实施例中,如图4所示,大规模多品类网络摄像头识别及状态感知方法还包括:
[0142] 步骤104,按照全量心跳时间间隔发送全量补偿心跳信息至云端服务器,以由云端服务器根据全量补偿心跳信息确定网络摄像头状态及程序插件状态。其中,全量补偿心跳信息包括本路由器中最新状态为在线的标准设备信息。
[0143] 云端服务器根据全量补偿心跳信息确定程序插件状态包括:若超过全量心跳时间最大间隔内未接收到全量补偿心跳信息,则认为程序插件状态为下线。具体实施时,考虑到网络不稳等因素的影响,可设置一定容忍度,将超过全量心跳时间最大时间间隔的三倍时间内未收到全量心跳补充信息,则认为程序插件状态为下线。
[0144] 本实施例通过全量心跳时间间隔做补偿同步,能够使得云端服务器感知路由器程序插件状态。
[0145] 云端服务器接收到全量补偿心跳信息之后,通过如下方式修改网络摄像头的最新状态:
[0146] 将全量补偿心跳信息中的所有网络摄像头在云端数据库中的状态保持在线,并更新在线时间为当前心跳时间,将云端数据库中不存在于全量补偿心跳信息中的网络摄像头的状态更新为下线。
[0147] 其它实施方式中,云端服务器接收到全量补偿心跳信息之后,还可通过如下方式确定网络摄像头的最新状态:
[0148] (1)在云端数据库存储全量补偿心跳信息中的网络摄像头信息,并标记网络摄像头的状态为在线,在线时间为当前心跳时间;
[0149] (2)每隔一预定时间间隔,从云端数据库中查询各网络摄像头最近状态及在线时间,执行如下步骤完成网络摄像头状态及在线时间更新;
[0150] (3)若网络摄像头最近的在线时间与当前系统差值大于预定值,且网络摄像头最近状态为下线,则网络摄像头最新状态为下线,保持数据库中网络摄像头下线不变;
[0151] (4)若网络摄像头最近的在线时间与当前系统差值大于预定值,且网络摄像头最近状态为在线,则网络摄像头最新状态为下线,在数据库中修改网络摄像头状态为下线;
[0152] (5)若网络摄像头最近的在线时间与当前系统差值小于预定值,则网络摄像头最新状态为在线,保持数据库中网络摄像头在线不变,修改数据库中网络摄像头在线时间为当前系统时间。
[0153] 本实施例通过路由器发送全量补偿心跳信息,能够使得云端服务器具备对路由器程序插件整体下线事件的感知,同时使得云端服务器感知网络摄像头状态。
[0154] 本文一实施例中,由于路由器中程序插件一般会接入几十台到几百台规模的网络摄像头,该路由器程序插件在上传自身接入在线摄像头的全量标准设备信息时对云端服务器会是一个巨大的冲击。一般在百万规模摄像头的情况下,云端服务器会对接上万台路由器插件,此时如果上万台路由器插件同时对云端服务器发起全量补偿信息,必然会导致一个网络波峰。在补偿心跳数据上传后也会出现一段时间的流量波谷。为了最大限度的平稳网络带宽,避免流量波峰导致的网络拥堵和对云端服务器的负载冲击。本文一实施例中,全量心跳时间间隔采用如下分布式均衡方式确定:
[0155] 在固定时间间隔范围内,生成随机时间;随机时间与固定时间间隔之和作为所述全量心跳时间间隔。
[0156] 一些实施方式中,各路由器的程序插件在启动时被赋予一个固定时间间隔,例如n分钟,同时通过公式n/2×60计算随机时间,将固定时间间隔与n/2×60之和作为下次发起全量补偿心跳信息的时间间隔。
[0157] 详细的说,n×60+random(n/2×60)为一个确定在n×60到n×60+n/2×60之间必然会发生的一个确定性随机心跳,即最大心跳时间为(n+n/2)×60秒,最小心跳时间为n×60秒,进过大量路由器的不断迭代,最终达到在线时间上均匀分布的心跳请求发起。
[0158] 其它实施方式中,各路由器的程序插件在启动时被赋予不同的固定时间间隔,各路由器的固定时间间隔根据本路由器中各厂商在UDP组播组中网络摄像头数量而定。
[0159] 本实施例利用分布式均衡方法确定全量心跳时间间隔,能够实现各云端服务器对全量补偿心跳信息请求流量的削峰填谷,保证各个路由器中程序插件发起全量补偿心跳信息会逐渐均匀分布在时间线上,实现云端服务器对大规模摄像头实时感知的同时,网络同步信息流量可控的既经济又不失实时性的结果。
[0160] 基于同一发明构思,本文还提供一种大规模多品类网络摄像头识别及状态感知装置,如下面的实施例所述。由于大规模多品类网络摄像头识别及状态感知装置解决问题的原理与大规模多品类网络摄像头识别及状态感知方法相似,因此大规模多品类网络摄像头识别及状态感知装置的实施可以参见大规模多品类网络摄像头识别及状态感知方法,重复之处不再赘述。
[0161] 具体的,如图5所示,大规模多品类网络摄像头识别及状态感知装置包括:
[0162] 设备信息识别单元501,用于按预定秒级时间间隔发送各摄像头厂商获取数据用的组播组数据包至各摄像头厂商的UDP组播组,以使UDP组播组中的网络摄像头接收到组播组数据包后发送包括设备信息的响应数据包;
[0163] 数据转换单元502,用于按照预设数据格式对各网络摄像头的响应数据包进行格式转换,得到标准设备信息;
[0164] 状态识别单元503,用于根据每一标准设备信息、缓存中网络摄像头的最近状态及当前系统时间,确定状态变动的网络摄像头、识别网络摄像头的最新状态及更新缓存中网络摄像头的状态和在线时间,将状态变动的网络摄像头的标准设备信息实时发送至云端服务器。
[0165] 本文提供的多品类网络摄像头识别及状态感知装置能够实现如下技术效果:
[0166] 1.通过设备信息识别单元501能够识别所有厂商的设备信息,降低运维成本、提高识别效率;
[0167] 2.通过数据转换单元502能够缓解云端服务器的压力,实现云端服务器处理与各厂商设备信息的解耦以及多品类网络摄像头的无差别识别;
[0168] 3.通过状态识别单元503能够近实时识别网络摄像头的最新状态,保证缓存中网络摄像头状态的真实性和实时性,进而提高状态变动的网络摄像头的识别准确度;将网络摄像头的状态应用于状态变动的网络摄像头标准信息的确认,能够降低信息发送量,提高网络摄像头识别效率,另,云端服务器能够减少对冗余信息的处理,提高数据管理效率。
[0169] 作为本文进一步实施例中,如图6所示,大规模多品类网络摄像头识别及状态感知装置还包括:网络摄像头状态传送单元504,用于按照全量心跳时间间隔发送全量补偿心跳信息至云端服务器,以由云端服务器根据全量补偿心跳信息确定网络摄像头状态及程序插件状态的感知,其中,全量心跳时间间隔对于不同路由器来说各不相同。
[0170] 本实施例通过网络摄像头状态传送模块能够在网络带宽平稳的情况下,实现云端服务器对大规模(百万级)网络摄像头及路由器程序插件状态的感知,避免对云端服务器产生较大冲击。
[0171] 本文一实施例中,云端服务器例如为计算机设备,用户通过操作云端服务器可实现对目标组播组IP地址、功能开关信息及全量心跳时间间隔的配置。通过目标组播组IP地址的配置,能够实现在物联网中随时接入新厂商的网络摄像头。通过功能开关信息配置能够实现对程序插件中各类功能开关的控制,功能开关例如为暂时关闭变量网络摄像头信息上传、暂时开启全量摄像头信息上传,本文对功能开关具体包括的内容不做限定,本文所述的功能开关仅为可扩展的控制性配置。通过全量心跳时间间隔的配置能够实现对时间精度的按序调整,程序插件按照新接收到的全量心跳时间间隔发送全量补偿心跳信息,进而避免云端服务器的负载产生冲击。一些实施方式中,云端服务器中安装已有配置软件或配置界面,通过可通过配置软件或配置界面中的提示完成个性内容的配置。云端服务器将用户输入的配置信息发送至物联网中的路由器。其它实施方式中,云端服务器在接收到全量补偿心跳信息之后,反馈云端服务器中最新的配置信息至路由器。
[0172] 路由器中安装有配置插件,该配置插件可根据配置信息修改程序插件中的相关参数,从而实现程序插件的更新,降低程序插件的维护难度。具体实施时,路由器接收到配置信息之后,先查询本地配置信息,将接收到的配置信息与本地配置信息进行比较,若一致,则不做处理,若不一致,则根据接收到的配置信息修改程序插件中的相关参数,本实施例能够在不更新插件程序的情况下,对插件行为进行控制,大幅度降低插件程序更新带来的运维负担和变更成本。
[0173] 具体的,如图9所示,云端服务器902可以包括一个或多个处理器904,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。云端服务器902还可以包括任何存储器906,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示云端服务器902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,云端服务器902可以执行相关联指令的任一操作。云端服务器902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。
[0174] 云端服务器902还可以包括输入/输出模块910(I/O),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914)。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(GUI)。在其他实施例中,还可以不包括输入/输出模块910(I/O)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。云端服务器902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。
[0175] 通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
[0176] 本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
[0177] 本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行上述方法的步骤。
[0178] 应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
[0179] 还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0180] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
[0181] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0182] 在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0183] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
[0184] 另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0185] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0186] 本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。