本發(fā)明涉及人臉識別技術(shù),尤其涉及一種人臉驗證系統(tǒng),還涉及一種基于所述系統(tǒng)的人臉驗證方法。
背景技術(shù):
近年來,得益于計算機硬件系統(tǒng)的計算能力,特別是基于GPU的計算平臺的計算能力的提升,深度神經(jīng)網(wǎng)絡(luò)人工智能的理論和算法模進入了新一輪的發(fā)展熱潮。其中自然語言處理和機器視覺是其中兩個熱點領(lǐng)域,而人臉識別是作為機器視覺方向中產(chǎn)品化前景最明確的細(xì)分領(lǐng)域。目前人臉識別比對的準(zhǔn)確率在很多場景都達到了99.5%以上,已經(jīng)具備了進行產(chǎn)品化實際應(yīng)用的前提條件。也正是如此,目前基于人臉識別技術(shù)作為一種生物特征的身份特征驗證手段,已經(jīng)越來越廣泛地用于眾多需要進行身份驗證,進入授權(quán)等領(lǐng)域,如門禁、閘機、安檢等場景;結(jié)合生物活體識別的等配套技術(shù)的甚至以用于銀行,證券、金融等對身份的驗證和鑒權(quán)準(zhǔn)確要求極高的領(lǐng)域。
但是在實際的工程化運用過程中,把人臉驗證加入目前的已經(jīng)廣泛存在的各類門禁,閘機,安檢等設(shè)備和環(huán)境中往往往存在以下一些共性問題:
首先,人臉驗證技術(shù)目前一般是作為一種增強的手段加入到現(xiàn)有的系統(tǒng)當(dāng)中,而不是替換掉目前已經(jīng)存在系統(tǒng),所以共同的問題的如何以最低的成本改造目前極其廣泛存在的系統(tǒng)中。
其次,目前人臉識別技術(shù)一般掌握在一些新興的科技公司手中,而門禁,閘機,安檢等系統(tǒng)則一般由一些比較傳統(tǒng)的公司的所主導(dǎo)。所以在進行人臉驗證功能的升級的時候,一般會尋求外部的技術(shù)合作。
在具體的實施方案中,目前現(xiàn)存常見的方案如下:
1、單機硬件擴展方案。通過專用的人臉識別硬件對現(xiàn)有的硬件進行擴展,使單個設(shè)備具備人臉識別功能擴展。
2、單機的軟件的SDK的方案。利用現(xiàn)有硬件的計算能力,通過集成第三的人臉識別SDK來進進行人臉識別的功能的擴展。
3、分開部署兩套并行的系統(tǒng)。傳統(tǒng)的驗證系統(tǒng)和人臉驗證系統(tǒng)兩套驗證系統(tǒng)并行運行。
進行分析可以發(fā)現(xiàn),不管是以上兩種方案的哪一種,都存在以下一些問題:
首先,集成的難度高,項目實施的難度大,具體體現(xiàn)在基于硬件擴展方案由于涉及到硬件的改造,涉及大量的人工成本,現(xiàn)場的施工成本,線路造成成本,基于在一些地方,基本都不支持硬件的改造。
其次,如果對現(xiàn)行已經(jīng)存在的系統(tǒng)進行全新的改造升級,將速來極大的成本的浪費。
再次,對于系統(tǒng)集成廠商來說,對于增強的產(chǎn)品系列需要進行不同的硬件軟件設(shè)計,也是一種成本比較高的方案。即使是采用SDK集成的方案,由于人臉?biāo)惴ǖ膶C器的硬件有一定的計算能力的門檻要求,它無法運行在目前大部門禁/閘機類系統(tǒng)中比較低端的硬件上,如果據(jù)此進行方案的硬件的升級,也將帶來成本的快速上升。
同時在具體的應(yīng)用場景中,不同的卡口人流分布往往極不均勻,但這種不均勻并不是固定不變的,而是隨機變化的,這要求每臺單機都需要的比較高的峰值能力。但這種峰值能力在大部分情況是閑置的,這也帶來成本的浪費。
技術(shù)實現(xiàn)要素:
為解決現(xiàn)有技術(shù)中的問題,本發(fā)明提供一種人臉驗證系統(tǒng),還提供一種基于所述系統(tǒng)的人臉驗證方法。
本發(fā)明人臉驗證系統(tǒng)包括人臉視頻采集裝置、與人臉視頻采集裝置相連的后臺服務(wù)器,與后臺服務(wù)器相連的前端客戶端,所述前端客戶端設(shè)有人臉驗證接入組件,所述人臉驗證接入組件將用戶請求發(fā)送給后臺服務(wù)器,后臺服務(wù)器根據(jù)人臉視頻采集裝置獲取的視頻進行人臉驗證,并將驗證結(jié)果反饋給人臉驗證接入組件。
本發(fā)明作進一步改進,所述人臉驗證接入組件包括異步消息狀態(tài)機,所述異步消息狀態(tài)機包括請求處理和管理模塊、核心狀態(tài)機、外部請求隊列緩存模塊和外部消息輸入隊列緩存模塊,所述請求處理和管理模塊包括存儲用戶請求的狀態(tài)機請求隊列緩存單元和用于將請求按順序取出并發(fā)送給核心狀態(tài)機的狀態(tài)機請求處理單元,所述核心狀態(tài)機通過與外部請求隊列緩存模塊相連的后臺接口將請求發(fā)送給后臺服務(wù)器,所述外部請求隊列緩存模塊存儲后臺服務(wù)器返回的驗證消息,并驅(qū)動核心狀態(tài)機進行狀態(tài)轉(zhuǎn)換,所述核心狀態(tài)機將驗證結(jié)果發(fā)送給狀態(tài)機請求處理單元。
本發(fā)明作進一步改進,所述核心狀態(tài)機的狀態(tài)包括初始狀態(tài)、1個以上驗證狀態(tài)、失敗狀態(tài)和成功狀態(tài)。
本發(fā)明作進一步改進,所述后臺服務(wù)器包括前端請求緩存分發(fā)層、異步消息輸出隊列存儲模塊、一個以上服務(wù)器,所述服務(wù)器內(nèi)設(shè)有狀態(tài)機Map、1個以上驗證模塊,所述后臺服務(wù)器根據(jù)前端請求緩存分發(fā)層分發(fā)的前端請求,在所述狀態(tài)機Map內(nèi)設(shè)置于前端核心狀態(tài)機狀態(tài)對應(yīng)的狀態(tài)機,所述狀態(tài)機分別與驗證模塊及異步消息輸出隊列存儲模塊相連。
本發(fā)明作進一步改進,當(dāng)所述驗證模塊處理完畢,所述狀態(tài)機根據(jù)驗證模塊處理結(jié)果進行狀態(tài)轉(zhuǎn)換,當(dāng)所述驗證模塊返回驗證失敗或者驗證成功結(jié)果時,所述狀態(tài)機Map內(nèi)對應(yīng)的狀態(tài)機被刪除。
本發(fā)明作進一步改進,所述核心狀態(tài)機和狀態(tài)機的每次請求、消息處理及狀態(tài)轉(zhuǎn)換都是異步的。
本發(fā)明還提供一種基于所述系統(tǒng)的人臉驗證方法,包括如下步驟:
S1:人臉驗證接入組件接收到用戶請求,將請求發(fā)送給后臺服務(wù)器;
S2:后臺服務(wù)器接收到前端客戶端的請求后,對視頻采集裝置采集的視頻進行人臉視頻和/或圖像的采集和驗證;
S3:后臺服務(wù)器將驗證結(jié)果返回給人臉驗證接入組件。
本發(fā)明作進一步改進,所述人臉驗證接入組件包括異步消息狀態(tài)機,所述異步消息狀態(tài)機包括請求處理和管理模塊、核心狀態(tài)機、外部請求隊列緩存模塊和外部消息輸入隊列緩存模塊,所述請求處理和管理模塊包括狀態(tài)機請求隊列緩存單元和狀態(tài)機請求處理單元,所述異步消息狀態(tài)機處理方法包括如下步驟:
A1:當(dāng)接收到用戶的請求時,將請求加入請求隊列;
A2:狀態(tài)機請求處理單元根據(jù)順序取出一個請求,讀取其相關(guān)的核心狀態(tài)機配置信息,根據(jù)配置信息驅(qū)動核心狀態(tài)機進行狀態(tài)轉(zhuǎn)換;
A3:當(dāng)核心狀態(tài)機進行狀態(tài)轉(zhuǎn)換后,向外部請求隊列發(fā)送相關(guān)請求,并在外部消息輸入隊列中等待消息;
A4:當(dāng)核心狀態(tài)機成功接到消息時,核心狀態(tài)機進行下一個狀態(tài)轉(zhuǎn)換;
A5:當(dāng)核心狀態(tài)機進入失敗狀態(tài)或成功狀態(tài)時,會向請求處理和管理模塊發(fā)送請求完成消息,同時核心狀態(tài)機回到初始狀態(tài);
A6:請求隊列完成當(dāng)前次請求,準(zhǔn)備進行下一次請求的處理,直到請求隊列中的所有請求都處理完畢為止。
本發(fā)明作進一步改進,所述后臺服務(wù)器中設(shè)有與核心狀態(tài)機對應(yīng)的狀態(tài)機,所述后臺服務(wù)器對一次請求的處理方法包括如下步驟:
B1:當(dāng)一次請求通過前端請求緩存分發(fā)層被分發(fā)到服務(wù)器時,在該服務(wù)器的狀態(tài)機Map中創(chuàng)建對應(yīng)的狀態(tài)機;
B2:讀取其相關(guān)的核心狀態(tài)機配置信息,根據(jù)配置信息驅(qū)動狀態(tài)機的狀態(tài)轉(zhuǎn)換;
B3:當(dāng)狀態(tài)機進行狀態(tài)轉(zhuǎn)換后,向?qū)?yīng)的驗證模塊發(fā)送消息請求;
B4:當(dāng)驗證模塊處理完成時,返回處理結(jié)果給狀態(tài)機,狀態(tài)機通過異步消息輸出隊列發(fā)送請求完成消息,并根據(jù)接收到結(jié)果進行狀態(tài)轉(zhuǎn)換;
B5:當(dāng)狀態(tài)機進入失敗狀態(tài)或成功狀態(tài)時,會向異步消息輸出隊列發(fā)送請求完成消息,所述狀態(tài)機Map內(nèi)對應(yīng)的狀態(tài)機被刪除;
B6:當(dāng)前請求處理完成。
本發(fā)明作進一步改進,在步驟B1中,所述后臺服務(wù)器能夠同時并發(fā)處理多個人臉驗證接入組件的請求;對每一個前端請求,后臺服務(wù)器維護一個獨立的狀態(tài)機來記錄每個請求的完成狀態(tài)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:對現(xiàn)存的待集成平臺無任何硬件上的門檻和要求,可以和很低廉成本的平臺做集成;純軟件的升級和集成,對現(xiàn)有和的已經(jīng)安裝和部署的設(shè)備和硬件無任何改造的需求,實現(xiàn)無縫集成;可以支持大規(guī)模的集群應(yīng)用,可以進行計算資源共享;通過并行的、集中的計算模式,實現(xiàn)高可用性;具有很高的實時處理及并發(fā)處理能力。
附圖說明
圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明異步消息狀態(tài)機結(jié)構(gòu)示意圖;
圖3為本發(fā)明后臺處理器結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明做進一步詳細(xì)說明。
本發(fā)明在現(xiàn)有技術(shù)基礎(chǔ)上要達到以下兩個看起來矛盾的目標(biāo):
(1)盡可能少的影響現(xiàn)在的驗證系統(tǒng)結(jié)構(gòu),包括軟件和硬件結(jié)構(gòu);
(2)盡可能提供高的實時處理,并發(fā)處理處理能力。
為實現(xiàn)以上兩個目標(biāo),本發(fā)明的技術(shù)方案如下:
如圖1所示,本發(fā)明人臉驗證系統(tǒng)包括人臉視頻采集裝置及與人臉視頻采集裝置相連的后臺服務(wù)器,與后臺服務(wù)器相連的前端客戶端,所述前端客戶端設(shè)有人臉驗證接入組件,所述人臉驗證接入組件將用戶請求發(fā)送給后臺服務(wù)器,后臺服務(wù)器根據(jù)人臉視頻采集裝置獲取的視頻進行人臉驗證,并將驗證結(jié)果反饋給人臉驗證接入組件。
本發(fā)明的關(guān)鍵點如下:
人臉驗證接入組件,為超輕量的前端,本例超輕量的人臉驗證接入組件剝離了復(fù)雜的人臉驗證算法對硬件系統(tǒng)、硬件的計算能力的依賴,使其可以集成了任意現(xiàn)存的各種驗證類的軟硬中。本例集成在原有的通道、道閘、門禁等驗證硬件系統(tǒng)中,對現(xiàn)存的待集成平臺無任何硬件上的門檻和要求,可以和很低廉成本的平臺做集成;純軟件的升級和集成,對現(xiàn)有和的已經(jīng)安裝和部署的設(shè)備和硬件無任何改造的需求,實現(xiàn)無縫集成。
本例的后臺服務(wù)器提供高實時、高立項的人臉驗證計算服務(wù),包括人臉檢測/活體檢測/特征提取/特征驗證等服務(wù)??梢灾С执笠?guī)模的集群應(yīng)用,可以進行計算資源共享;本例通過后臺服務(wù)器并行的、集中的計算模式,實現(xiàn)高可用性;具有很高的實時處理及并發(fā)處理能力。
人臉驗證,視頻/圖片數(shù)據(jù)的采集是必不可少的環(huán)節(jié)。在本發(fā)明中,通過通道、閘機、門禁等處的人臉視頻采集裝置,比如錄像機、攝像頭等等,錄制視頻傳輸給后臺服務(wù)器,然后后臺服務(wù)器完成對人臉視頻/圖片的采集、驗證等工作,保留了原有的驗證的軟硬件系統(tǒng)的集成的輕量性。
如圖2所示,本例人臉驗證接入組件的核心是由一個可配置的異步消息狀態(tài)機構(gòu)成,所述異步消息狀態(tài)機包括請求處理和管理模塊、核心狀態(tài)機、外部請求隊列緩存模塊和外部消息輸入隊列緩存模塊,所述請求處理和管理模塊包括存儲用戶請求的狀態(tài)機請求隊列緩存單元和用于將請求按順序取出并發(fā)送給核心狀態(tài)機的狀態(tài)機請求處理單元,所述核心狀態(tài)機通過與外部請求隊列緩存模塊相連的后臺接口將請求發(fā)送給后臺服務(wù)器,所述外部請求隊列緩存模塊存儲后臺服務(wù)器返回的驗證消息,并驅(qū)動核心狀態(tài)機進行狀態(tài)轉(zhuǎn)換,所述核心狀態(tài)機將驗證結(jié)果發(fā)送給狀態(tài)機請求處理單元。
本例根據(jù)驗證的內(nèi)容,所述核心狀態(tài)機的狀態(tài)包括初始狀態(tài)、活體檢測步驟1(眨眼)狀態(tài)、活體檢測步驟2(抿嘴)狀態(tài)、人臉特征驗證狀態(tài)、失敗狀態(tài)和成功狀態(tài)。當(dāng)然,也可以根據(jù)實際情況增減人臉驗證請求及狀態(tài)。
本例的異步消息狀態(tài)機關(guān)鍵點如下:
(1)狀態(tài)機請求隊列中的每個請求,都將驅(qū)動核心狀態(tài)機完成一次完整的狀態(tài)轉(zhuǎn)換;
(2)每次核心狀態(tài)機的狀態(tài)轉(zhuǎn)換,一定是由初始狀態(tài)開始,最終以失敗狀態(tài)或成功狀態(tài)之一結(jié)束;
(3)核心狀態(tài)機通過外部請求隊列向外發(fā)送請求(如請求活體檢測步驟1,活檢檢測步驟2,人臉特征驗證),并通過外部輸入消息隊列來驅(qū)動狀態(tài)轉(zhuǎn)換。
(4)每次核心狀態(tài)機的請求與核心狀態(tài)機的消息處理、狀態(tài)轉(zhuǎn)換都是異步的,這樣保證系統(tǒng)響應(yīng)的實時性的同時又保證和極低的資源/計算消耗。
如圖3所示,本發(fā)明高實時高并發(fā)的人臉驗證后臺服務(wù)器包括前端請求緩存分發(fā)層、異步消息輸出隊列存儲模塊、一個以上服務(wù)器(服務(wù)器1,服務(wù)器2…服務(wù)器n),每個服務(wù)器內(nèi)都設(shè)有狀態(tài)機Map、與核心狀態(tài)機內(nèi)驗證項目相對應(yīng)的驗證模塊,所述后臺服務(wù)器根據(jù)前端請求緩存分發(fā)層分發(fā)的前端請求,在所述狀態(tài)機Map內(nèi)設(shè)置于前端核心狀態(tài)機狀態(tài)對應(yīng)的狀態(tài)機,所述狀態(tài)機分別與驗證模塊及異步消息輸出隊列存儲模塊相連。
本發(fā)明后臺服務(wù)器是一個集群實現(xiàn)(即有多臺服務(wù)器來做驗證計算),多臺服務(wù)器組合集成,其中請求緩存/分發(fā)/及輸出,會運行在這多臺中的其中一臺多幾臺中,本例的服務(wù)器是該后臺服務(wù)器集群中的其中一個。
本發(fā)明后臺處理器采用的高實時高并發(fā)的后臺處理結(jié)構(gòu),其核心點在于:
(1)通過前端請求緩存分發(fā)層,實現(xiàn)處理的負(fù)載均衡,其中均衡策略可靈活配置,簡單的如基于輪詢的負(fù)載均衡機制;
(2)對于每一個前端請求,后臺維護一個獨立的狀態(tài)機來記錄每個請求的完成狀態(tài);
(3)對于多個前端請求的多個狀態(tài)機,后臺通過維護一個狀態(tài)機Map來管理不同的狀態(tài)機;
(4)當(dāng)前端請求生成時,后臺服務(wù)器對應(yīng)的服務(wù)器創(chuàng)建與前端核心狀態(tài)機對應(yīng)的狀態(tài)機,當(dāng)狀態(tài)機轉(zhuǎn)換到成功或失敗狀態(tài)時,后臺服務(wù)器刪除此狀態(tài)機;
(5)每個狀態(tài)機獨立的向與請求對應(yīng)的驗證模塊的算法處理單元發(fā)送請求和接收處理結(jié)果;
(6)每個驗證模塊(如活體檢測模塊1,活體檢測模塊2, 人驗驗證模塊等等)通過隊列并發(fā)地向多個狀態(tài)機的請求提供算法處理服務(wù);
(7)所有服務(wù)器通過統(tǒng)一的異步消息輸出隊列向前端返回處理結(jié)果;
(8)狀態(tài)機的每次請求、消息處理及狀態(tài)轉(zhuǎn)換都是異步的。
本發(fā)明還提供一種基于所述系統(tǒng)的人臉驗證方法,包括如下步驟:
S1:人臉驗證接入組件接收到用戶請求,將請求發(fā)送給后臺服務(wù)器;
S2:后臺服務(wù)器接收到前端客戶端的請求后,對視頻采集裝置采集的視頻進行人臉視頻和/或圖像的采集和驗證;
S3:后臺服務(wù)器將驗證結(jié)果返回給人臉驗證接入組件。
本例異步消息狀態(tài)機針對一次請求的處理方法包括如下步驟:
A1:當(dāng)接收到用戶的請求時,將請求加入請求隊列;
A2:狀態(tài)機請求處理單元的工作線程根據(jù)請求隊列的順序取出一個請求,讀取其相關(guān)的核心狀態(tài)機配置信息,根據(jù)配置信息驅(qū)動核心狀態(tài)機從初始狀態(tài)到活體檢測步驟1狀態(tài)、活體檢測步驟2狀態(tài)、人臉特征驗證狀態(tài)三個狀態(tài)中的一個;
A3:當(dāng)核心狀態(tài)機進入到狀態(tài)到活體檢測步驟1狀態(tài)、活體檢測步驟2狀態(tài)、人臉特征驗證狀態(tài),會首先向外部請求隊列發(fā)送相關(guān)請求,并在外部消息輸入隊列中等待消息;
A4:當(dāng)核心狀態(tài)機成功接到消息時,狀態(tài)機進行狀態(tài)轉(zhuǎn)換操作,由收到消息的不同,決定進入下一下狀態(tài),下一個狀態(tài)可能是下個步驟或失敗/成功等;
A5:當(dāng)核心狀態(tài)機進入失敗狀態(tài)或成功狀態(tài)時,會向請求處理和管理模塊發(fā)送請求完成消息,同時核心狀態(tài)機回到初始狀態(tài);
A6:請求隊列完成當(dāng)前次請求,準(zhǔn)備進行下一次請求的處理,直到請求隊列中的所有請求都處理完畢為止。
本例后臺服務(wù)器針對一次前端請求的處理方法與前端的核心狀態(tài)機類似,其過程包括如下步驟:
B1:當(dāng)一次請求通過前端請求緩存分發(fā)層被分發(fā)到服務(wù)器時,在該服務(wù)器的狀態(tài)機Map中創(chuàng)建對應(yīng)的狀態(tài)機;
B2:讀取其相關(guān)的核心狀態(tài)機配置信息,根據(jù)配置信息驅(qū)動狀態(tài)機從初始狀態(tài)到活體檢測步驟1,活體檢測步驟2,人臉特征驗證三個狀態(tài)中的一個;
B3:當(dāng)狀態(tài)機進入到活體檢測步驟1,活體檢測步驟2,人臉特征驗證狀態(tài)后,會首先向?qū)?yīng)驗證模塊的算法處理單元發(fā)送消息請求,然后進入結(jié)果等待狀態(tài);
B4:當(dāng)驗證模塊處理完成時,返回處理結(jié)果給狀態(tài)機,狀態(tài)機通過異步消息輸出隊列發(fā)送請求完成消息,并根據(jù)接收到結(jié)果,決定進入下一下狀態(tài),下一個狀狀態(tài)可能是下個步驟或失敗/成功等;
B5:當(dāng)狀態(tài)機進入失敗狀態(tài)或成功狀態(tài)時,會向異步消息輸出隊列發(fā)送請求完成消息,所述狀態(tài)機Map內(nèi)對應(yīng)的狀態(tài)機被刪除;
B6:當(dāng)前請求處理完成。
其中,在步驟B1中,所述后臺服務(wù)器能夠同時并發(fā)處理多個人臉驗證接入組件的請求;對每一個前端請求,后臺服務(wù)器維護一個獨立的狀態(tài)機來記錄每個請求的完成狀態(tài)。
綜上所述,本發(fā)明前端的異步消息狀態(tài)機處理結(jié)構(gòu)兼顧了實時性和低計算/處理,對系統(tǒng)要求低,易于集成到幾乎所有嵌入式和非嵌入式的驗證系統(tǒng)。
本發(fā)明采用超輕量級的驗證前端及高實時高并發(fā)的后端結(jié)合的處理架構(gòu),對現(xiàn)存的待集成平臺無任何硬件上的門檻和要求。可以和很低廉成本的平臺做集成。純軟件的升級和集成,對現(xiàn)有和的已經(jīng)安裝和部署的設(shè)備和硬件無任何改造的需求。實現(xiàn)無縫集成。
本發(fā)明支持大規(guī)模的集群應(yīng)用,可以進行計算資源共享;并通過并行的、集中的計算模式,實現(xiàn)高可用性;具有很高的實時處理及并發(fā)處理能力。
以上所述之具體實施方式為本發(fā)明的較佳實施方式,并非以此限定本發(fā)明的具體實施范圍,本發(fā)明的范圍包括并不限于本具體實施方式,凡依照本發(fā)明所作的等效變化均在本發(fā)明的保護范圍內(nèi)。