天天看點

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

1、背景介紹

疫情肆虐,有效隔離是盡快戰勝病毒的有效手段,多個地方政府都提出了嚴格的居民出行管理條例,例如杭州市餘杭區2月3日釋出了實行“十項從嚴”管控措施:

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

這給社群管理帶來新的挑戰,傳統門衛盯人存在以下幾個問題:

  1. 進出人員情況全憑人工記錄,出現錯漏,不能及時對頻繁外出居民有效勸阻。
  2. 缺乏全局角度對居民隔離整體情況的掌控和度量,例如有哪些人頻繁出入,出入總人數.

為了解決居民出入管理的上述幾個問題,阿裡雲智能資料庫向量檢索團隊 免費提供 一套高度相容戴口罩場景下的人臉識别模型,并基于AnalyticDB的向量檢索能力, 搭建了一套小區人員管理的解決方案, 這個方案将開源給社群。

通過該方案可以有效的提升當下疫情中的小區出入管理效率.同時我們免費提供AnalyticDB給使用者用于與目前肺炎疫情相關的出入管理應用.

下面首先介紹我們的方案,然後會對其中的人臉識别和AnalyticDB向量檢索關鍵技術做詳細介紹,友善開發者能夠做二次開發,最後我們會附上

開源位址

2、小區人員管了解決方案介紹

2.1小區人員管了解決方案功能

1、自動登記入冊小區人口, 基本資訊和人臉特征,界面如下:

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

2、通過攝像頭自動做人臉識别,傳回來訪者家庭的所有出入記錄. 友善社群管理者進行高效的出入管理,在目前疫情環境下, 人們普遍佩戴口罩, 去掉口罩會增加肺炎感染的風險, 是以本方案提供一套支援戴口罩情況下人臉識别的算法. 示範效果如下:

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

3、可以通過人臉照片和結構化資訊的任意組合來檢索住戶的來訪記錄,并提供統計分析能力,為小區管理者提供全局度量資料.

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

2.2 應用架構總體設計

出入管理系統的總體架構如下圖所示. 前端界面通過HTML和javascript實作, 功能包含支援戴口罩場景下的人臉門禁, 通過人臉識别查詢來訪者的全部家庭成員2日内的出入記錄, 人員登記, 背景通過人臉和結構化資訊自由組合搜尋來訪記錄等功能.。

人臉識别子產品将包含人臉的視訊轉換成人臉特征向量, 人臉識别子產品主要使用了Seetafce引擎的人臉檢測和人臉追蹤子產品和AnalyticDB團隊自研的人臉識别, 眼部識别和口罩檢測模型.AnalyticDB負責整個應用中的全部的結構化資料和人臉識别子產品産生的人臉特征向量的存儲和查詢。

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

3、關鍵技術介紹

3.1 針對疫情的人臉識别算法

算法流程如下圖所示, 在人員登記過程中我們分别通過人臉識别模型和眼部識别模型提取登記人的面部整體特征和眼部特征, 并将提取的特征向量寫入AnalyticDB. 在查詢過程中, 我們首先會通過口罩檢測模型來檢測來訪人是否有佩戴口罩, 如果沒有佩戴口罩, 我們會使用整體面部的特征在AnalyticDB中檢索相似的特征, 如果有特征與來訪者面部特征相似度滿足門檻值, 則傳回對應的結果。

如果來訪者有佩戴口罩, 那麼鼻子,嘴巴等特征會缺失, 使用整體面部特征提取模型無法準确的檢索到正确的記錄. 這時我們會使用眼部識别模型提取來訪者眼部, 額頭等不會被口罩遮擋的部位的特征, 然後再AnalyticDB中檢索之前儲存的眼部特征.

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

系統中使用的人臉識别模型, 眼部識别模型和口罩檢測模型将全部開源給社群. 經過測試口罩檢測模型的準确率>99.5%. 人臉識别模型和眼部識别模型在學術界常用的資料集上的準确率如下表所示.

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

可以看到僅僅使用眼部特征, 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

疫情期間,免費使用小區出入管理方案,請盡快聯系我們:請使用釘釘掃碼~

戴口罩也能刷門禁?疫情下AnalyticDB亮出社群管理的寶藏神器!

繼續閱讀