10亿级人脸搜索

人脸检索

      给定一张照片,与指定人脸库中的N个人脸进行比对,找出最相似的一张脸或多张人脸。 根据待识别人脸与现有人脸库中的人脸匹配程度,返回用户信息和匹配度,即1:N人脸检索。可用于用户身份识别、身份验证相关场景。

人脸检索技术难点:

  1. 单机由于内存和CPU性能限制,能够支持的人脸检索数始终都有上限,所以必须进行集群设计来提高容量。
  2. 10亿级别的人脸库存储是一个问题,按每张图片50K的大小都会是TB级别了。
  3. 10亿级别人脸库建模需要很长时间。
  4. 10亿级别人脸库检索响应时间能否做到秒级。
  5. 10亿级别人脸库检索TPS能到多少。

我们针对以上问题设计开发了10亿级别的人脸检索系统,并针对业务场景开发了分布式图片存储系统和特征管理系统。

 

分布式人脸检索系统框图

系统由3个部分组成:

  1. 配置管理服务。
  2. 人脸检索服务。
  3. Master调度服务。

系统主要提供功能:

  1. 创建人脸库。
  2. 删除人脸库。
  3. 添加人脸。
  4. 删除人脸。
  5. 单库检索。
  6. 多库检索。

逻辑库

      单机处理能力有上限(如单机只能处理5000W人脸的检索),人脸库单库非常大时(比如需要进行1.5亿人脸检索),单机必然无法处理,所以系统将待检索的人脸库抽象为逻辑库,逻辑库中人脸分散保存在不同机器上,通过一定策略进行管理,这样可以实现人脸库人脸容量无上限。

逻辑库处理逻辑:

  1. 实现超大库检索
  2. 需要等待所有分区返回
  3. 需要合并所有分区结果

消费分区

      消费分区的设计思路很像kafka的消费者分配分区,其主要目的也是提高并发和容错。

单分区单引擎:

  1. 并发低
  2. 无法实现容错 

单分区多引擎:

  1. 识别进行负载均衡
  2. 并发高
  3. 能够实现容错

消费分区负载均衡策略:

 

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值