閻其成 高亮 朱顯珉
1. 上海市公安局徐匯分局 2.北京至簡墨奇科技有限公司
生物識別(Biometric)源自希臘字Bio(生命)及Metric(可計量),是通過人體生理如指紋、臉部或虹膜等身體器官組織及行為模式的特征來識別一個人的身份[1]。指紋是人各不同和觸物留痕的,曾被稱為“證據之首”,其具有易采集、檢驗比對成本較廉價的特點。上世紀九十年代以來,我國開始將計算機輔助指紋人工比對的技術應用到公安領域。傳統的指紋比對技術基于經典指紋特征理論,人工對指紋進行前期分析處理和特征標注,由計算機輔助與數據庫里已標注特征的指紋樣本進行比對,最終再由人工對比對結果進行檢視驗證。歷經三十余年的發展,傳統指紋比對技術已不能滿足公安工作實時性、時效性也即“快采”和“快比”的要求。
本文介紹的智能移動警務應用依托于新型人工智能比對技術,采用手機現場拍攝可疑對象指紋并實時發送比對請求,60秒內就可得到精確比對結果,進行身份信息的生物性同一認定。
新型人工智能指紋比對系統基于面向未來生物識別需求,采用了存算分離、多算法融合、多級比對、無限彈性擴展的分布式架構設計,具備下一代指紋比對系統所需的高精度、高性能、智能化、易拓展等特征。新型人工智能指紋比對技術無需人工標注特征,且比對排前準確率高、對于低質量指紋處理能力強,大大簡化了指紋比對的流程,使指紋在移動設備上實現快速比對的實戰應用成為可能,其總體架構如圖1所示。

架構主要有三層。底層數據存儲:基于SeaweedFS 和Cassandra的分布式存儲系統,用于存儲和管理原始的指紋圖像數據和特征數據;中間層搜索引擎(Search Engine):系統的“肌肉”,主要完成計算工作,該層實現提取多尺度特征的多種人工智能算法,分別構造高效的索引和緩存,并實現多算法融合和多級比對,支持異構計算;頂層服務資源管理:系統的“大腦”,該層是一組服務,用來管理搜索引擎、存儲、查詢請求、事務、分布式資源調度、容錯以及所有相關的元數據和記錄信息,包括數據庫格式、密鑰管理、用量統計數據等。
新型指紋比對系統通過人工智能和機器學習模型進行自動提取特征,不論是在訓練階段還是在推理階段,都不需要人工標注,這得益于該系統獨有的小樣本學習技術。
數據存儲SeaweedFS是非常適合于大量小文件存儲的分布式系統。SeaweedFS分布式文件系統是一款使用go語言編寫的開源分布式文件系統,是經過與其他開源分布式文件系統進行對比之后選取的一款最適合企業內部自建文件管理系統底層的文件系統[2]。其沒有將所有的元數據存儲在一個中心結點中,中心結點只存儲分卷服務器的分卷(Volumes),分布式的分卷服務器來管理文件和它們的元數據,這樣大大降低了中心結點的并發壓,并且支持文件的O(1)快速讀取。Cassandra是一個高性能的NoSQL存儲系統,采用了去中心化的P2P方式來保證數據一致性[3]。從而保證了數據的最終一致性,在指紋系統中用于存儲不同算法提取的特征。合起來,存儲層提供了幾乎無限的高可用、高性能和彈性存儲能力。
搜索引擎可以分成特征提取、索引結構、比對引擎三個部分。
1. 特征提取
傳統算法主要依靠細節特征點比對,如圖2所示。

經研究,指紋除了傳統特征點還有很多信息。例如紋線的曲率、疏密分布、宏觀走向、拓撲結構等,以及大量的不能直接用規則描述但是有區分度的信息,這些都可以被用來區分不同的指掌紋,提高鑒別能力[4]。這些信息分布在不同的尺度上,有的在像素層級,有的在指紋的整體圖像層級,所以具備多尺度的特征。這些特征是需要有特殊的方法標記固定。新型指紋識別系統采用了人工智能技術來提取多尺度特征,如圖3所示。在從像素到整體圖像的每一個中間尺度上,都提取了不同標簽、向量和圖等不同的特征,多尺度特征表示將傳統指紋特征的信息量擴大了上萬倍。提升特征數量和提取維度對系統的比對精度有巨大提升作用。

2. 索引結構
特征的索引結構對比對的性能有決定性的影響[5]。在指紋系統的多尺度特征中,存在細節特征、拓撲特征、向量特征、幾何特征和圖形特征等多樣化的特征。系統對這些特征分配了不同的索引結構,例如,對于向量特征使用了多種量化索引的特征以支持近似和精確查詢。索引是列存儲的內存結構[6]。對于索引來說,特別是向量和部分的幾何索引結構,列存儲的性能要顯著優越于行存儲。索引是向量優化的,意味著很多的指令可以以批次(Batch)的方式進行,以節約I/O和提高緩存效率。同樣的做法也被用于很多向量搜索工具中。
3. 比對引擎
系統比對引擎由一組異構的比對服務器組成,支持CPU、GPU、NPU等不同的計算單元[7]。引擎將不同種類的特征分配到不同的計算單元上去,在保證準確率的情況下實現加速。在比對過程中,向量和大尺度被首先分配到GPU/NPU中去,利用其強大的并行計算能力,對特征進行初步的比對和過濾;對結果使用CPU進行幾何特征的比對和精確匹配,以及對于多種算法的候選列表進行再排序以優化最終的結果。

系統根據請求的優先級、準確率要求、系統配置、任務負載等要素來制定請求的執行方式。當系統收到一個查詢請求時,調度器根據系統的負載和比對的數據塊生成比對任務并分發到存有相應索引的服務器進行比對,返回最近似的候選[8]。比對引擎是彈性擴展和容錯的。集群通過Raft協議實現分布式一致性協議,當有服務器出現單點錯誤時(磁盤錯誤、斷電等),該結點的數據會被分配到其他節點上去。在服務器冗余度較高時,服務器故障造成的瞬間讀寫負載并不會被立刻分攤出去,而是通過緩存機制逐漸完成,這樣降低對任務隊列的性能波動。在實際運行中,不論庫容的大小,只要硬件資源足夠,系統總是能夠在O(1)的時間內完成比對請求。

服務資源管理層是多用戶模式綜合管理層,這一層提供的大部分微服務都是貫穿的。它也是一個分布式的設計,所以比傳統的管理層更加靈活穩定。所有的用戶請求都經過服務資源管理這一層,包括對象解析、權限控制和執行策略。
1. 優化過的PosgreSQL數據庫引擎
所有的信息都會被保存在數據庫中,并需要支持高效的增刪查改操作。PosgreSQL是一個先進的SQL和NoSQL混合引擎,同時支持結構化和半結構化的字段,更加適合云服務業務不斷演化的需求。新型的人工智能指紋比對技術對PosgreSQL 做了優化,極大改進了十億級別數據量的查詢速度。
2. 基于公平隊列的任務管理
系統需要支持不同用戶、不同優先級、不同應用(Web/App)的比對任務,系統設計了一套公平隊列算法,保證不同用戶的任務之間能夠相對公平的使用系統資源,優先級高、實時性要求高的任務得到盡快處理的同時,低優先級的任務也能夠分配到一定的系統資源而不至于完全阻塞[9]。指紋的查詢管理和優化是一個典型的多級優化結構,查詢管理維護一個任務隊列,包括執行計劃的信息。所有用于優化的數據都被設計為自動分析和維護。系統通過一定的規則來縮小搜索空間,以減小策略錯誤。一旦查詢任務優化完成,執行計劃就會被發送到搜索引擎部分。在搜索引擎的執行過程中,服務資源管理層持續監控查詢的狀態并且收集性能指標。
當前,公安民警在巡邏、街面盤查過程中,使用移動警務終端設備的應用場景主要是通過身份信息查詢、反饋實現快速核查功能,具有一定局限性[10]。傳統指紋算法受比對速度與比對精度的限制,很難實時返回精確的比對結果,且人工標注的問題使得指紋在治安盤查中應用比較困難,無法大范圍推廣。而新型的人工智能比對算法比對的速度與精度大幅提升,可以滿足實時返回結果的需要,使移動警務活動中便捷使用指紋生物特征進行人員核查成為可能。警用手機安裝指紋核查比對APP,民警可在移動警務過程中,手持終端設備采集人員指紋進行雙重比對,其生物性身份等反饋信息將迅速推送到終端設備。
以往,可疑人員為隱瞞自己的身份信息往往不會隨身攜帶證件,而民警不得不將可疑人員帶回派出所才有可能進行指紋或DNA的采集和檢驗比對,來確定其身份。利用新型的人工智能指紋比對技術,民警通過手機即可采集可疑人員指紋,上傳比對并實時返回結果,做到了“快采、快比、快反”(如圖5、圖6所示),使民警在移動勤務中查控人員的效率大大提高,同時也讓犯罪可疑人員甚至洗白身份的逃犯無處藏身、無所遁形。


本文對新型人工智能指紋比對系統的架構、工作原理以及APP的應用做了詳細的闡述。立足當前社會人員流動實際,著眼公安管理精準性和便民工作發展新方向,實現刑事技術生物特征數據采集終端與警務PDA手機等便攜式移動終端的技術融合。