全部产品
云市场

人脸检索

更新时间:2019-09-19 10:44:27

系统需求

某人脸检索系统需求如下所示:

  • 黑名单监控告警

    黑名单中保存的是在逃人员的人脸特征,摄像头提取的人脸都要与黑名单库中的人脸进行对比。

  • 同人识别

    摄像头提取的人脸都会与证照库中的人脸特征进行对比,通过人脸找到关联的证件ID,通过这种方式把人脸转化为结构化数据。

  • 历史库人像检索

    对于无法在证照库中找到的人脸,则会将其保存在历史人像库中,保存时长为1个月,以备后续案件侦破时查询轨迹使用。

实现架构

人像管理部分的系统实现架构如下所示。

架构图

  • 应用层:实现用户界面和下层调用逻辑。

  • 基础设施:分析型数据库MySQL版实现结构化和向量数据存储和计算,OSS实现非结构化数据存储。

  • 数据层:对数据做抽象,将人像抽象出四个库。

    • 黑名单库

      向量库,保存100万条数据,数据基本无更新。假设有1000个摄像头,每个摄像头拍到的人像都需要与黑名单库中的人像进行查询对比,查询率要求达到1000 QPS,平均每秒产生1张人脸照片,准确率要求较高,可以使用无损检索模式。

    • 人员库

      向量库,保存2亿条人脸特征数据,数据会有少量更新。每个摄像头拍到的人脸都需要与人员库中的人脸进行查询对比,每秒查询1次,查询率要求达到1000 QPS。

    • 历史库

      向量库,每天1000个摄像头产生4.3亿人脸数据,假设需要保存1个月(30天)的人脸向量数据即129亿向量数据。人脸检索时,首先通过人员库查找人员ID,若检索到人员ID,则根据人员ID到轨迹库检索轨迹;否则,到历史库中通过人脸特征检索人脸轨迹,因此该库QPS要求较低,100 QPS即可。

    • 轨迹库

      同人识别是为了保证摄像头拍到的每张人脸都能映射到人员ID,并存入表中进行保存。摄像头拍到的每张人脸都要与证照表中的数据进行查询对比,如果查询到则会把人脸对应的ID和摄像头位置等信息写入轨迹库。