戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!

1、背景介绍

疫情肆虐,有效隔离是尽快战胜病毒的有效手段,多个地方政府都提出了严格的居民出行管理条例,例如杭州市余杭区2月3日发布了实行“十项从严”管控措施:
640-24.jpeg

这给社区管理带来新的挑战,传统门卫盯人存在以下几个问题:

  1. 进出人员情况全凭人工记录,出现错漏,不能及时对频繁外出居民有效劝阻。
  2. 缺乏全局角度对居民隔离整体情况的掌控和度量,例如有哪些人频繁出入,出入总人数.

为了解决居民出入管理的上述几个问题,阿里云智能数据库向量检索团队免费提供一套高度兼容戴口罩场景下的人脸识别模型,并基于AnalyticDB的向量检索能力, 搭建了一套小区人员管理的解决方案, 这个方案将开源给社区。

通过该方案可以有效的提升当下疫情中的小区出入管理效率.同时我们免费提供AnalyticDB给用户用于与当前肺炎疫情相关的出入管理应用.

下面首先介绍我们的方案,然后会对其中的人脸识别和AnalyticDB向量检索关键技术做详细介绍,方便开发者能够做二次开发,最后我们会附上开源地址。

2、小区人员管理解决方案介绍

2.1小区人员管理解决方案功能

1、自动登记入册小区人口, 基本信息和人脸特征,界面如下:
640-6.png

2、通过摄像头自动做人脸识别,返回来访者家庭的所有出入记录. 方便社区管理者进行高效的出入管理,在当前疫情环境下, 人们普遍佩戴口罩, 去掉口罩会增加肺炎感染的风险, 所以本方案提供一套支持戴口罩情况下人脸识别的算法. 演示效果如下:

640-20.jpeg

3、可以通过人脸照片和结构化信息的任意组合来检索住户的来访记录,并提供统计分析能力,为小区管理者提供全局度量数据.

640-21.jpeg

2.2 应用架构总体设计

出入管理系统的总体架构如下图所示. 前端界面通过HTML和javascript实现, 功能包含支持戴口罩场景下的人脸门禁, 通过人脸识别查询来访者的全部家庭成员2日内的出入记录, 人员登记, 后台通过人脸和结构化信息自由组合搜索来访记录等功能.。

人脸识别模块将包含人脸的视频转换成人脸特征向量, 人脸识别模块主要使用了Seetafce引擎的人脸检测和人脸追踪模块和AnalyticDB团队自研的人脸识别, 眼部识别和口罩检测模型.AnalyticDB负责整个应用中的全部的结构化数据和人脸识别模块产生的人脸特征向量的存储和查询。

640-22.jpeg

3、关键技术介绍

3.1 针对疫情的人脸识别算法

算法流程如下图所示, 在人员登记过程中我们分别通过人脸识别模型和眼部识别模型提取登记人的面部整体特征和眼部特征, 并将提取的特征向量写入AnalyticDB. 在查询过程中, 我们首先会通过口罩检测模型来检测来访人是否有佩戴口罩, 如果没有佩戴口罩, 我们会使用整体面部的特征在AnalyticDB中检索相似的特征, 如果有特征与来访者面部特征相似度满足阈值, 则返回对应的结果。

如果来访者有佩戴口罩, 那么鼻子,嘴巴等特征会缺失, 使用整体面部特征提取模型无法准确的检索到正确的记录. 这时我们会使用眼部识别模型提取来访者眼部, 额头等不会被口罩遮挡的部位的特征, 然后再AnalyticDB中检索之前保存的眼部特征.

640-23.jpeg

系统中使用的人脸识别模型, 眼部识别模型和口罩检测模型将全部开源给社区. 经过测试口罩检测模型的准确率>99.5%. 人脸识别模型和眼部识别模型在学术界常用的数据集上的准确率如下表所示.
表格.jpg

可以看到仅仅使用眼部特征, AnalyticDB的模型在LFW数据集上仍然有99+%以上的识别准确率.

3.2 AnalyticDB向量版特性介绍
分析型数据库(AnalyticDB)是阿里云上的一种高并发低延时的PB级实时数据仓库,可以毫秒级针对万亿级数据进行即时的多维分析透视和业务探索。

AnalyticDB for MySQL 全面兼容MySQL协议以及SQL:2003 语法标准, AnalyticDB forPostgreSQL 支持标准 SQL:2003,高度兼容 Oracle 语法生态. 目前两款产品都包含向量检索功能, 可以支持人脸, 人体, 车辆等的相似查询和推荐系统。

目前AnalyticDB在真实应用场景中可以支持10亿级别的向量数据的查询, 100毫秒级别的响应时间. AnalyticDB已经在多个城市的安防项目中大规模部署.

在一般的包含向量检索的的应用系统中, 通常开发者会使用向量检索引擎(例如Faiss)来存储向量数据, 然后使用关系型数据库存储结构化数据. 在查询时也需要交替查询两个系统, 这种方案会有额外的开发工作并且性能也不是最优。

AnalyticDB支持结构化数据和非结构化数据(向量)的检索,仅仅使用SQL接口就可以快速的搭建起以图搜图或者图片+结构化数据混合检索等功能. AnalyticDB的优化器在混合检索场景中会根据数据的分布和查询的条件选择最优的执行计划,在保证召回的同时,得到最优的性能。

在我们的出入管理系统中, 我们通过AnalyticDB实现了同时使用照片, 性别, 年龄, 起始时间, 终止时间来查询出入记录的功能.

这样的以图搜图+结构化搜索功能, 可以通过一条SQL实现:

注:*左右滑动阅览

select  name, # 姓名
        gender, # 性别
        age, # 年龄
        time, # 出入时间
        l2_distance(feature, array[-0.017,-0.032,...]::real[]) as distance # 向量距离 
from demo.person a, demo.face_feature b, demo.access_record c
where a.pid = c.pid 
        and a.pid = b.pid 
        and name = '张三' # 姓名条件
        and gender = '男' and age = 30 # 性别条件
        and time >= '2020-02-07' # 起始时间条件
        and time <= '2020-02-09' # 结束时间条件
      order by distance; # 用向量相似度排序

其中表demo.person存储了每个人的基本信息,demo.face_feature存储了人脸特征向量, demo.access_record存储了所有的来访记录. pid是每个人的独有ID.

结构化信息+非结构化信息(图片)混合检索在实际应用中被广泛使用的. 例如在人脸门禁系统被部署在多个小区时, 我们使用一张表存储了所有小区的人脸特征, 在人脸检索时我们只需要检索当前小区的人脸特征. 在这种情况下, 使用AnalyticDB我们只需要在SQL中增加where 小区名 ='xxx' 就可以轻易实现.

详细介绍参考阿里云使用文档:

分析型数据库PostgreSQL版:

https://help.aliyun.com/document_detail/123163.html

分析型数据库MySQL版:

https://help.aliyun.com/document_detail/117825.html

4、结尾

上述项目开源地址:

https://github.com/aliyun/alibabacloud-AnalyticDB-python-demo-face-recognition

疫情期间,免费使用小区出入管理方案,请尽快联系我们:请使用钉钉扫码~
0-0-.png

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
消息中间件 数据采集 移动开发
数仓建模—埋点设计与管理
开始之前我们先看一下我们为什么要收集埋点数据,埋点都可以做什么,埋点主要用于记录用户行为,几乎是应用必不可少的功能.埋点的作用包括但不限于
965 0
数仓建模—埋点设计与管理
|
SQL 数据采集 存储
客户案例:数仓规范化-菜鸟数据模型管理实践(三)| 学习笔记
快速学习客户案例:数仓规范化-菜鸟数据模型管理实践。
232 0
客户案例:数仓规范化-菜鸟数据模型管理实践(三)| 学习笔记
|
SQL 存储 缓存
MySQL内存分配与管理(1)
MySQL的内存分配、使用、管理的模块较多,本篇文章主要针对InnoDB的内存管理、SQL层内存分配管理器MEM_ROOT和8028内存限制的新特性进行分析,同时对现阶段存在的部分问题和优化方案进行简单的描述。代码版本主要基于8025,第四部分内存限制新特性基于8028。一、InnoDB基础内存申请1.1 ut_allocator在非UNIV_PFS_MEMORY模式下,UT_NEW等都是调用原始
114 0
MySQL内存分配与管理(1)
|
弹性计算 资源调度 运维
【实操系列】 AnalyticDB PostgreSQL发布实例计划管理功能,实现资源分时弹性&分时启停
本文将对AnalyticDB PostgreSQL产品的计划任务管理功能以及其背后的实现机制和最佳实践做详细介绍。
【实操系列】 AnalyticDB PostgreSQL发布实例计划管理功能,实现资源分时弹性&分时启停
|
消息中间件 canal 存储
基于Apache doris怎么构建数据中台(八)-数仓管理
数仓分层模型的好处是什么呢,以下内容回答你。
429 0
基于Apache doris怎么构建数据中台(八)-数仓管理
|
存储 关系型数据库 数据挖掘
一份【疫情礼包】请查收,云数据仓库AnalyticDB PostgreSQL为中国企业加油
疫情肆虐下,企业的生存面临着前所未有的挑战。 AnalyticDB PostgreSQL 希望为中国企业贡献一份力量!
343 1
|
存储 SQL 弹性计算
后疫情时代,AnalyticDB如何助力企业实现业务增长和创新
数字经济时代,越来越多的企业通过数据驱动业务增长、流程优化及更多的业务创新。当前企业数据朝着海量、实时化、多样化的趋势演进,对企业数据仓库也提出了新的挑战与演进诉求。
303 0
|
存储 SQL 弹性计算
后疫情时代,AnalyticDB如何助力企业实现业务增长和创新
7月23日,阿里云全新升级新一代云原生数据仓库AnalyticDB,达摩院数据库首席科学家、阿里云智能数据库事业部总负责人李飞飞重磅发布了“万仓计划”,助力每个企业拥有属于自己的云原生数据仓库。今天小编为您深度解读云原生数据仓库AnalyticDB的全新升级特性。
|
关系型数据库 OLAP 数据库
AnalyticDB for PostgreSQL使用资源队列进行负载管理与隔离
背景 对于一个数据库实例来说,CPU和内存资源是有限的,而这些资源又极大地影响着数据库的查询性能。因此,当数据库负载高到一定程度的时,各个查询之间可能会相互竞争CPU和内存资源,造成整体的查询性能低下。
5940 0
|
数据采集 分布式计算 监控
基于MaxCompute的数仓数据质量管理
数据对一个企业来说已经是一项重要的资产,既然是资产,肯定需要管理。随着业务的增加,数据的应用越来越多,企业在创建的数仓过程中对数据的管理也提出了更高的要求,而数据质量也是数仓建设过程不容忽视的环节。本文针对MaxCompute数仓建设过程中如何做数据质量给出规范建议,为实际数据治理提供依据及指导。
3712 0