人脸搜索能力管理系统的制作方法

文档序号:20441324发布日期:2020-04-17 22:26阅读:106来源:国知局
人脸搜索能力管理系统的制作方法

本发明涉及人脸识别技术领域,具体而言涉及一种人脸搜索能力管理系统。



背景技术:

人脸搜索技术即根据传入的人脸特征数据,在对应人脸库中计算所有的欧式距离并找出距离最小的那个特征,此最小特征对应的那个人脸标识即为要搜索输出的人脸。

现有技术解决方案采用全量数据存储方式,即每个计算节点保存所有的人脸数据。根据特征搜索量大小部署两个或多于两个计算节点满足业务需求。增加删除数据采用rabbitmq组件来保证数据的强一致性。欧式距离计算使用的cpu指令加速,数据存储为内存存储和二进制文件持久化。人脸特征和人脸标识分别存储不同的数据结构和文件中,通过索引顺序结构一一对应。

然而,在实际操作中,现有的方案存在结构不易扩展的缺陷。当业务量越来越大时,就需要增加计算节点。因为数据采用全量存储方式,所以就需要拷贝全量数据到新的计算节点,并且要在调用侧增加新节点的信息。这种方式不能动态地增加和删除计算节点,每增加或删除一个计算节点就需要拷贝全量数据和修改调用侧的计算节点信息,调用侧不能无感知的调用接口。



技术实现要素:

本发明目的在于针对现有技术存在的问题,解决业务量越来越大,结构不易扩展的不足,提出一种人脸搜索能力管理系统。

为实现上述目的,本发明采用的技术方案如下:

一种人脸搜索能力管理系统,包括:

icms服务节点,用于对外提供http服务,对内管理上线的nss服务节点和nss服务节点上上报的人脸库信息(人脸库信息包括人脸库名和人脸数量),同时提供转发请求至nss服务节点的路由服务;

nss服务节点,用于提供节点搜索服务,同时作为人脸数据存储和管理节点;

zookeeper服务节点,用于管理节点上线下线,并管理icms服务节点的上线节点信息并通知nss服务节点连接icms服务节点;

rabbitmq服务节点,用于提供信息持久化队列服务,使得增加/删除数据一致性;

其中,当icms服务节点上线时,在zookeeper服务节点上创建临时节点、并保存自己的地址端口和唯一编号,zookeeper服务节点则通知已上线的nss服务节点有新icms服务节点上线,nss服务节点接收到通知后,获取地址端口并连接;

当新nss服务节点上线时,先主动获取zookeeper服务节点上所有在线的icms服务节点的地址端口和唯一编号,然后连接所有的icms服务节点;上线的icms服务节点连接rabbitmq组件,作为生产者;

上线的nss服务节点连接rabbitmq服务节点,作为消费者并创建自己唯一的rabbitmq消息队列并绑定到所在组的路由规则:当有增加/删除数据的请求到icms服务节点时,icms服务节点找到数据所在库的nss组并发送到对应组rabbitmq绑定的路由规则,对应组的所有nss服务节点接受rabbitmq消息进行相关操作;

当有人脸搜索请求到达icms服务节点时,icms服务节点找到人脸数据所在库的nss组,并发送到组内对应的nss服务节点,组内nss服务节点接受人脸搜索请求处理返回结果。

优选地,所述全量人脸数据均匀地存放到多个nss组,组内的各nss服务节点数据一致,互为主备,所有nss组内存储的人脸数据的集合为全量人脸数据。

优选地,所述人脸搜索请求的处理具体包括:

接受外部请求人脸搜索的http请求插入处理线程池;

处理线程池线程解析http请求并解析参数;

校验http请求中的人脸库名、人脸特征值数据和人脸特征维度的参数合法性;

根据传入的人脸库名,根据icms服务节点管理的人脸库信息(人脸库信息包括人脸库名和人脸数量)找出人脸库所在nss组,然后随机选取nss组内一个nss服务节点;

构造内部搜索请求发送至选取的nss服务节点;

nss服务节点请求插入节点的处理线程池;

nss服务节点的处理线程池线程根据人脸库名找出对应的nss服务节点内部存储的人脸数据;

根据传入的人脸特征值数据对内部存储的人脸数据计算欧氏距离并选出距离最小的人脸标识;

将最小欧氏距离对应的人脸标识返回给发送请求的icms服务节点;

发送请求的icms节点接收消息并以http格式返回给外部调用者。

优选地,所述新增nss组启动的流程具体包括:

配置待新增的nss组的服务信息,包括本机地址信息、rabbitmq连接信息和zookeeper连接信息;然后启动新增nss服务;

nss服务节点通过zookeeper服务节点获取所有在线的icms服务节点的地址端口和唯一编号,并连接所有在线的icms服务节点;

nss服务节点创建rabbitmq消息队列并绑定到所有nss组的路由规则上;

nss服务节点将本机所有的人脸数据上报给所有在线的icms服务节点;

等待icms服务节点的服务请求,服务请求包括搜索、查询或者下载操作;

开启rabbitmq消费线程,等待消费icms服务节点的服务请求,包括增加人脸数据、删除人脸数据和删除人脸库操作;

开启持久化线程,等待需要持久化的人脸数据持久化。

优选地,所述新增库流程具体包括:

icms服务节点接受新增人脸数据的http请求并插入处理线程池;

处理线程池线程新增人脸数据的http请求并解析请求的各种参数;

对http请求中的人脸库名、人脸特征数据和人脸标识参数进行长度和格式的校验;

根据icms服务节点的人脸库信息,计算得出人脸数据量最小的nss组;

向人脸数据量最小的nss组绑定的rabbitmq路由规则发送消息,请求新增人脸数据;

nss服务节点的rabbitmq消费线程消费新增人脸数据请求;

申请新增库所需系统资源并创建新库;

nss服务节点发送新库信息至所有在线的icms服务节点;

返回创建新库的操作结果给发送请求的icms服务节点;

发送请求的icms服务节点收到回复消息并以http格式将结果返回给外部调用者。

本发明的能力管理平台中,通过引入一个管理组件,对内管理所有上线的计算节点,对外作为服务的调用入口,将所有的上线计算节点分组,全量数据平分到不同组内。组内各计算节点数据一致,所有组数据集合为全量数据。当业务量越来越大,新增一组计算节点,新增的人脸库优先放入新组,也不用拷贝数据到新组的计算节点。

由于管理组件是服务的调用入口,调用侧并不会感知有新的计算节点接入。同时有些组需要废弃时,直接下线这些组计算节点,调用侧亦无感知。这样使得系统与外界解耦,系统内部可以任意扩展。

附图说明

图1是本发明的人脸搜索能力管理系统的架构图。

图2是本发明的人脸搜索流程图。

图3是本发明的新增nss组启动流程图。

图4是本发明的新增库流程图。

具体实施方式

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施。

结合图1-图4所示,本发明的实施例的人脸搜索能力管理系统旨在解决人脸业务量越来越大,结构不易扩展的不足的问题,本发明通过引入一个管理模块,对内管理所有上线的计算节点,对外作为服务的调用入口。将所有的上线计算节点分组,全量人脸数据均分到不同组内。组内各计算节点数据一致,所有组的人脸数据集合为全量数据。当业务量越来越大,新增一组计算节点,新增的人脸库优先放入新组,也不用拷贝数据到新组的计算节点。

结合图1所示的架构图,在较佳的实施例的人脸搜索能力管理系统,包括:

icms服务节点,用于对外提供http服务,对内管理上线的nss服务节点和nss服务节点上上报的人脸库信息(人脸库信息包括人脸库名和人脸数量),同时提供转发请求至nss服务节点的路由服务;

nss服务节点,用于提供节点搜索服务,同时作为人脸数据存储和管理节点;

zookeeper服务节点,用于管理节点上线下线,并管理icms服务节点的上线节点信息并通知nss服务节点连接icms服务节点;

rabbitmq服务节点,用于提供信息持久化队列服务,使得增加/删除数据一致性;

其中,当icms服务节点上线时,在zookeeper服务节点上创建临时节点、并保存自己的地址端口和唯一编号,zookeeper服务节点则通知已上线的nss服务节点有新icms服务节点上线,nss服务节点接收到通知后,获取地址端口并连接;

当新nss服务节点上线时,先主动获取zookeeper服务节点上所有在线的icms服务节点的地址端口和唯一编号,然后连接所有的icms服务节点;上线的icms服务节点连接rabbitmq组件,作为生产者;

上线的nss服务节点连接rabbitmq服务节点,作为消费者并创建自己唯一的rabbitmq消息队列并绑定到所在组的路由规则:当有增加/删除数据的请求到icms服务节点时,icms服务节点找到数据所在库的nss组并发送到对应组的rabbitmq绑定路由,对应组的所有nss服务节点接受rabbitmq消息进行相关操作;

当有人脸搜索请求到达icms服务节点时,icms服务节点找到人脸数据所在库的nss组,并发送到组内对应的nss服务节点,组内nss服务节点接受人脸搜索请求处理返回结果。

其中,前述的人脸库名,是指存储的人脸信息的数据库的名称,人脸数量是指对应的人脸库中存储的人脸数据的数量。

本发明的前述实施例中,能力管理系统集成了人脸数据增加、删除、搜索和数据下载等功能。各个服务组件的功能包括icms和nss服务节点以及zookeeper和rabbitmq开源服务节点。icms节点支持集群部署,从而防止对外入口单点故障。

服务节点(即服务组件)说明:

·icms:接口中央管理服务

1)服务上线:上线在zookeeper上创建自己的临时节点信息,连接rabbitmq服务作为生产者

2)模块接入:对内接入管理nss服务节点

3)服务接入:对外提供http服务接口

4)增删业务:所有的外部增删http请求会被解析成内部指令,选择对应nss组的rabbitmq队列群发并返回

5)查找业务:所有外部http查找请求会被解析成内部指令,选择对应组的某个nss发送

6)数据管理:管理所有组nss上报的人脸库信息

·nss:节点搜索服务

1)服务上线:上线连接rabbitmq服务作为消费者并创建绑定rabbitmq消息队列,通过zookeeper获取所有上线的icms信息并连接

2)增删业务:接收对应rabbitmq队列的增删请求,执行

3)查找业务:处理icms发来的查找请求,执行并返回结果

4)数据上报:定时向icms上报所在nss组的所有人脸库信息

·zookeeper服务节点:管理节点上线下线的服务节点,在此系统管理icms上线节点信息并通知nss服务节点连接icms

·rabbitmq服务节点:消息持久化队列服务,在此系统保证增加/删除数据强一致性(消息不丢)

优选地,所述全量人脸数据均匀地存放到多个nss组,组内的各nss服务节点数据一致,互为主备,所有nss组内存储的人脸数据的集合为全量人脸数据。

优选地,所述人脸搜索请求的处理具体包括:

接受外部请求人脸搜索的http请求插入处理线程池;

处理线程池线程解析http请求并解析参数;

校验http请求中的人脸库名、人脸特征值数据和人脸特征维度的参数合法性;

根据传入的人脸库名,根据icms服务节点管理的全量人脸数据找出人脸库所在nss组,然后随机选取nss组内一个nss服务节点;

构造内部搜索请求发送至选取的nss服务节点;

nss服务节点请求插入节点的线程池;

nss服务节点的线程池根据人脸库名找出对应的nss服务节点内部存储的人脸数据;

根据传入的人脸特征值数据对内部存储的人脸数据计算欧氏距离并选出距离最小的人脸标识;

将最小欧氏距离对应的人脸标识返回给发送请求的icms服务节点;

发送请求的icms节点接收消息并以http格式返回给外部调用者。

优选地,所述新增nss组启动的流程具体包括:

配置待新增的nss组的服务信息,包括本机地址信息、rabbitmq连接信息和zookeeper连接信息;然后启动新增nss服务;

nss服务节点通过zookeeper服务节点获取所有在线的icms服务节点的地址端口和唯一编号,并连接所有在线的icms服务节点;

nss服务节点创建rabbitmq消息队列并绑定到所有nss组的路由规则上;

nss服务节点将本机所有的人脸数据上报给所有在线的icms服务节点;

等待icms服务节点的服务请求,服务请求包括搜索、查询或者下载操作;

开启rabbitmq消费线程,等待消费icms服务节点的服务请求,包括增加人脸特征、删除人脸特征和删除人脸库操作;

开启持久化线程,等待需要持久化的人脸数据持久化。

优选地,所述新增库流程具体包括:

icms服务节点接受新增人脸数据的http请求并插入处理线程池;

处理线程池新增人脸数据的http请求并解析请求的各种参数;

对http请求中的人脸库名、人脸特征数据和人脸标识参数进行长度和格式的校验;

根据icms服务节点的全量人脸数据,计算得出人脸数据量最小的nss组;

向人脸数据量最小的nss组绑定的rabbitmq路由规则发送消息,请求新增人脸数据;

nss服务节点的rabbitmq消费线程消费新增人脸数据请求;

申请新增库所需系统资源并创建新库;

nss服务节点发送新库信息至所有在线的icms服务节点;

返回创建新库的操作结果给发送请求的icms服务节点;

发送请求的icms服务节点收到回复消息并以http格式将结果返回给外部调用者。

由以上本发明的方案,可见本发明的管理系统中,nss组节点可以业务需要动态叠加删除,系统外无感知;nss组内部署多兄弟节点,单点故障,系统外亦无感知。整个系统是超大集群部署或小型化部署,可以由业务需求决定,结构可以实现任意扩展。

本发明的管理系统在系统部署时,其规模非固定化,随业务变化而变化,适应性强。单点故障对外界透明化,外界调用者不会因为单点故障而得不到服务。系统资源充分合理使用化,充分利用各节点的资源。对外服务解耦化,系统内部规模调整,外界调用者无需改变。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

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