本申請(qǐng)涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種活體識(shí)別的實(shí)現(xiàn)方法和裝置。
背景技術(shù):
隨著活體識(shí)別技術(shù)的發(fā)展,通過計(jì)算機(jī)與光學(xué)、聲學(xué)、生物傳感器和生物統(tǒng)計(jì)學(xué)等技術(shù)手段的結(jié)合,利用人體固有的指紋、人臉、虹膜等生理特性,和/或聲音、步態(tài)等行為特征來進(jìn)行個(gè)人身份的鑒定,已經(jīng)成為可能。
移動(dòng)互聯(lián)的蓬勃發(fā)展為活體識(shí)別技術(shù)提供了新的應(yīng)用平臺(tái),例如采用指紋、人臉等在移動(dòng)設(shè)備上可以登錄賬戶、實(shí)現(xiàn)支付,而無需記憶并輸入密碼?;铙w識(shí)別所需的圖像或視頻數(shù)據(jù)由移動(dòng)設(shè)備采集,活體識(shí)別可以在移動(dòng)設(shè)備上的客戶端進(jìn)行,也可以由服務(wù)端進(jìn)行。由于向服務(wù)端上傳這些圖像或視頻數(shù)據(jù)往往會(huì)消耗大量的流量,因此活體識(shí)別通常由移動(dòng)設(shè)備來完成。
客戶端的活體識(shí)別通常以客戶端的本地(native)方法來實(shí)現(xiàn)。本地方法是基于移動(dòng)設(shè)備本地操作系統(tǒng)、使用原生代碼編寫運(yùn)行的軟件功能組件?,F(xiàn)有技術(shù)中,為了便于采用本地方法來進(jìn)行活體識(shí)別,具有活體識(shí)別功能的頁面通常也采用本地方法來實(shí)現(xiàn)。由于運(yùn)行本地方法的代碼需要安裝在客戶端內(nèi),這樣修改具有活體識(shí)別功能的頁面上的任何內(nèi)容都必須通過客戶端軟件升級(jí)才能完成。這樣,任何用戶界面、或業(yè)務(wù)邏輯等方面的修改都會(huì)導(dǎo)致客戶端軟件的升級(jí),頻繁的升級(jí)不僅增加了客戶端的開發(fā)成本,而且給用戶造成了負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N活體識(shí)別的實(shí)現(xiàn)方法,應(yīng)用在客戶端,包括:
向服務(wù)端發(fā)送活體識(shí)別頁面的頁面請(qǐng)求;
接收服務(wù)端返回的活體識(shí)別頁面的頁面數(shù)據(jù);
運(yùn)行接收的頁面數(shù)據(jù),進(jìn)一步包括:
獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);
根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;
按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
本申請(qǐng)?zhí)峁┑囊环N活體識(shí)別的實(shí)現(xiàn)方法,應(yīng)用在服務(wù)端,包括:
接收客戶端發(fā)送的活體識(shí)別頁面的頁面請(qǐng)求;
向客戶端返回所述活體識(shí)別頁面的頁面數(shù)據(jù);所述頁面數(shù)據(jù)運(yùn)行于客戶端,其運(yùn)行過程包括:
獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);
根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;
按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
本申請(qǐng)還提供了一種活體識(shí)別的實(shí)現(xiàn)裝置,應(yīng)用在客戶端,包括:
頁面請(qǐng)求發(fā)送單元,用于向服務(wù)端發(fā)送活體識(shí)別頁面的頁面請(qǐng)求;
頁面數(shù)據(jù)接收單元,用于接收服務(wù)端返回的活體識(shí)別頁面的頁面數(shù)據(jù);
頁面數(shù)據(jù)運(yùn)行單元,用于運(yùn)行接收的頁面數(shù)據(jù),進(jìn)一步包括:
實(shí)時(shí)數(shù)據(jù)獲取模塊,用于獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);
本地方法調(diào)用模塊,用于根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;
業(yè)務(wù)處理模塊,用于按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
本申請(qǐng)?zhí)峁┑囊环N活體識(shí)別的實(shí)現(xiàn)裝置,應(yīng)用在服務(wù)端,包括:
頁面請(qǐng)求接收單元,用于接收客戶端發(fā)送的活體識(shí)別頁面的頁面請(qǐng)求;
頁面數(shù)據(jù)發(fā)送單元,用于向客戶端返回所述活體識(shí)別頁面的頁面數(shù)據(jù);所述頁面數(shù)據(jù)運(yùn)行于客戶端,其運(yùn)行過程包括:
獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);
根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;
按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
由以上技術(shù)方案可見,本申請(qǐng)的實(shí)施例中,由服務(wù)端將活體識(shí)別頁面的頁面數(shù)據(jù)下發(fā)給客戶端,客戶端在頁面數(shù)據(jù)的運(yùn)行過程中通過獲取多媒體實(shí)時(shí)數(shù)據(jù),調(diào)用活體識(shí)別本地方法來進(jìn)行活體識(shí)別,使得服務(wù)端可以通過修改下發(fā)的頁面數(shù)據(jù),來隨時(shí)改變活體識(shí)別頁面的界面以及與活體識(shí)別相關(guān)的業(yè)務(wù)邏輯,而無需進(jìn)行客戶端的升級(jí),在減少客戶端的開發(fā)成本的同時(shí)減輕了用戶的負(fù)擔(dān)。
附圖說明
圖1是本申請(qǐng)實(shí)施例中一種應(yīng)用在客戶端,活體識(shí)別的實(shí)現(xiàn)方法的流程圖;
圖2是本申請(qǐng)實(shí)施例中一種應(yīng)用在服務(wù)端,活體識(shí)別的實(shí)現(xiàn)方法的流程圖;
圖3是本申請(qǐng)實(shí)施例中一種客戶端運(yùn)行頁面數(shù)據(jù)的流程圖;
圖4是本申請(qǐng)應(yīng)用示例中一種客戶端運(yùn)行頁面數(shù)據(jù)的流程圖;
圖5是客戶端或服務(wù)端所在設(shè)備的一種硬件結(jié)構(gòu)圖;
圖6是本申請(qǐng)實(shí)施例中一種應(yīng)用在客戶端,活體識(shí)別的實(shí)現(xiàn)裝置的邏輯結(jié)構(gòu)圖;
圖7是本申請(qǐng)實(shí)施例中一種應(yīng)用在服務(wù)端,活體識(shí)別的實(shí)現(xiàn)裝置的邏輯結(jié)構(gòu)圖。
具體實(shí)施方式
本申請(qǐng)的實(shí)施例提出一種新的活體識(shí)別的實(shí)現(xiàn)方法,以web(萬維網(wǎng))方式、采用網(wǎng)頁技術(shù)生成活體識(shí)別頁面(即需要實(shí)現(xiàn)活體識(shí)別功能的頁面),在客戶端運(yùn)行由服務(wù)端下發(fā)的活體識(shí)別頁面的頁面數(shù)據(jù)時(shí),調(diào)用客戶端的活體識(shí)別本地方法來得到活體識(shí)別結(jié)果,這樣,當(dāng)需要修改活體識(shí)別頁面的用戶界面、業(yè)務(wù)邏輯等組成部分時(shí),可以隨時(shí)在服務(wù)端修改頁面數(shù)據(jù),而不必進(jìn)行客戶端升級(jí),從而極大的降低了客戶端的升級(jí)頻率,減小了客戶端的開發(fā)成本,也減輕了頻繁升級(jí)給用戶造成的額外負(fù)擔(dān),以解決現(xiàn)有技術(shù)中存在的問題。
本申請(qǐng)的實(shí)施例應(yīng)用于c/s(client/server,客戶端/服務(wù)端)架構(gòu)的軟件系統(tǒng),客戶端與服務(wù)端所在的設(shè)備通過網(wǎng)絡(luò)相互可訪問。其中,客戶端所在設(shè)備可以是手機(jī)、平板電腦、pc(personalcomputer,個(gè)人電腦)、筆記本、服務(wù)器等設(shè)備;服務(wù)端所在設(shè)備可以是pc(personalcomputer,個(gè)人電腦)、筆記本、服務(wù)器等設(shè)備。本申請(qǐng)實(shí)施例對(duì)客戶端和服務(wù)端所在設(shè)備的種類,以及客戶端與服務(wù)端之間通信網(wǎng)絡(luò)的類型、協(xié)議等均不做限定。
本申請(qǐng)的實(shí)施例中,活體識(shí)別頁面采用web方式與本地方法相結(jié)合的方式實(shí)現(xiàn),其中,web方式以瀏覽器模式運(yùn)作,即由客戶端向服務(wù)端請(qǐng)求數(shù)據(jù),服務(wù)端下發(fā)數(shù)據(jù)供客戶端運(yùn)行、展示或使用。具體而言,本地方法安裝在客戶端所在設(shè)備上,用來完成活體識(shí)別功能;web方式用來完成活體識(shí)別頁面的上層功能,例如描繪用戶界面、執(zhí)行業(yè)務(wù)邏輯等,其運(yùn)行代碼由客戶端根據(jù)服務(wù)端下發(fā)的頁面數(shù)據(jù)來生成??蛻舳说幕铙w識(shí)別本地方法開放調(diào)用接口給web方式,使得活體識(shí)別頁面的上層功能與活體識(shí)別本地方法解耦和,更新較為頻繁的功能在服務(wù)端進(jìn)行修改,從而避免對(duì)客戶端的頻繁升級(jí)。
本申請(qǐng)的實(shí)施例中,活體識(shí)別的實(shí)現(xiàn)方法應(yīng)用在客戶端的流程如圖1所示,應(yīng)用在服務(wù)端的流程如圖2所示。
在客戶端,步驟110,向服務(wù)端發(fā)送活體識(shí)別頁面的頁面請(qǐng)求。
在服務(wù)端,步驟210,接收客戶端發(fā)送的活體識(shí)別頁面的頁面請(qǐng)求。
根據(jù)用戶的操作,當(dāng)客戶端上打開活體識(shí)別頁面時(shí),客戶端向服務(wù)端發(fā)送活體識(shí)別頁面的頁面請(qǐng)求。需要說明的是,活體識(shí)別頁面可能是客戶端上打開的某一個(gè)完整的頁面,也可能是一個(gè)完整頁面中的一部分頁面,該部分頁面中包括需要完成活體識(shí)別的功能組件。
在服務(wù)端,步驟220,向客戶端返回所述活體識(shí)別頁面的頁面數(shù)據(jù)。
在客戶端,步驟120,接收服務(wù)端返回的活體識(shí)別頁面的頁面數(shù)據(jù)。
服務(wù)端在收到客戶端的活體識(shí)別頁面請(qǐng)求后,將該活體識(shí)別頁面的頁面數(shù)據(jù)返回給發(fā)起請(qǐng)求的客戶端。
根據(jù)服務(wù)端與客戶端之間所采用的具體協(xié)議和實(shí)際應(yīng)用場景的具體實(shí)現(xiàn),服務(wù)端向客戶端返回的可以是符合某種協(xié)議格式的文檔,供客戶端解析后運(yùn)行;也可以是動(dòng)態(tài)語言的代碼,供客戶端編譯后運(yùn)行。此外,服務(wù)端可以在一次請(qǐng)求和響應(yīng)過程中將所有活體識(shí)別頁面的頁面數(shù)據(jù)返回給客戶端;也可以在兩次到多次的請(qǐng)求和響應(yīng)過程中,按照將對(duì)應(yīng)于請(qǐng)求具體內(nèi)容的頁面數(shù)據(jù)返回給客戶端,本申請(qǐng)的實(shí)施例不做限定。
需要說明的是,客戶端在運(yùn)行服務(wù)端下發(fā)的頁面數(shù)據(jù)的過程中,可能會(huì)根據(jù)需要引入本地或從服務(wù)端獲取的其他數(shù)據(jù),而不僅僅是完全使用活體識(shí)別頁面的頁面數(shù)據(jù)。
在客戶端,步驟130,運(yùn)行接收的頁面數(shù)據(jù),運(yùn)行流程如圖3所示。
步驟310,獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù)。
根據(jù)實(shí)際應(yīng)用場景中活體識(shí)別的具體對(duì)象,多媒體實(shí)時(shí)數(shù)據(jù)可以是由客戶端所在設(shè)備本身的各種實(shí)時(shí)信號(hào)采集器、或其連接的各種實(shí)時(shí)信號(hào)采集器輸出的實(shí)時(shí)數(shù)據(jù)中的一種到多種。例如,可以是客戶端所在設(shè)備的攝像頭輸出的視頻數(shù)據(jù)或圖像數(shù)據(jù),可以是客戶端所在設(shè)備自帶的錄音輸出的音頻數(shù)據(jù),可以是與客戶端所在設(shè)備連接的指紋采集器輸出的圖像數(shù)據(jù),還可以是上述幾種多媒體實(shí)時(shí)數(shù)據(jù)的組合。
可以通過客戶端操作系統(tǒng)、或上述各種采集器的驅(qū)動(dòng)程序提供的接口來 獲得各種多媒體實(shí)時(shí)數(shù)據(jù),也可以參考現(xiàn)有技術(shù)中的其他方式來得到這些數(shù)據(jù),不再贅述。
步驟320,根據(jù)所獲取的多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性。
根據(jù)實(shí)際應(yīng)用場景的實(shí)現(xiàn)和客戶端活體識(shí)別本地方法提供的調(diào)用接口,可以直接以來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù)為輸入,調(diào)用活體識(shí)別本地方法,輸出這些多媒體實(shí)時(shí)數(shù)據(jù)對(duì)應(yīng)的活體屬性;也可以先將來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù),轉(zhuǎn)換為與活體識(shí)別本地算法提供的接口相匹配格式的數(shù)據(jù)后,再以轉(zhuǎn)換后的數(shù)據(jù)為輸入調(diào)用活體識(shí)別本地算法。本申請(qǐng)的實(shí)施例不做限定。
在一些應(yīng)用場景中,客戶端的活體識(shí)別本地方法需要調(diào)用本地的活體識(shí)別算法來得到活體屬性?;铙w識(shí)別本地方法和活體識(shí)別算法采用不同的編程、或處于軟件架構(gòu)的不同層次,例如,在android(安卓)平臺(tái),活體識(shí)別本地方法可以是一種java本地方法,而活體識(shí)別算法是一種具有更高運(yùn)算速度的c語言的算法;在ios(蘋果公司的移動(dòng)操作系統(tǒng))平臺(tái),活體識(shí)別本地方法可以是一種objective-c(擴(kuò)充c的面向?qū)ο缶幊陶Z言)的本地方法,而活體識(shí)別算法是一種c語言的算法。
當(dāng)活體識(shí)別算法的調(diào)用接口所需要的多媒體實(shí)時(shí)數(shù)據(jù)的格式,不同于步驟310中所獲取的多媒體實(shí)時(shí)數(shù)據(jù)的格式時(shí),在一種實(shí)現(xiàn)方式中,可以在頁面數(shù)據(jù)的運(yùn)行過程中進(jìn)行多媒體實(shí)時(shí)數(shù)據(jù)的格式轉(zhuǎn)換,將轉(zhuǎn)換后、符合活體識(shí)別算法調(diào)用接口要求格式的數(shù)據(jù)輸入到活體識(shí)別本地方法,由活體識(shí)別本地方法采用輸入的數(shù)據(jù)直接調(diào)用活體識(shí)別算法;在另一種實(shí)現(xiàn)方式中,可以由活體識(shí)別本地方法來進(jìn)行多媒體實(shí)時(shí)數(shù)據(jù)的格式轉(zhuǎn)換,即以步驟310中所獲取的多媒體實(shí)時(shí)數(shù)據(jù)為輸入調(diào)用活體識(shí)別本地方法,活體識(shí)別本地方法將輸入數(shù)據(jù)轉(zhuǎn)換為符合活體識(shí)別算法調(diào)用接口要求格式的數(shù)據(jù)后,再以轉(zhuǎn)換后的數(shù)據(jù)為輸入調(diào)用活體識(shí)別算法。
例如,步驟310中所獲取的多媒體實(shí)時(shí)數(shù)據(jù)是來源于客戶端所在設(shè)備攝 像頭的若干個(gè)圖像幀,而本地的活體識(shí)別算法是以視頻幀為輸入??梢詫⑺@取的若干個(gè)圖像幀輸入到活體識(shí)別本地方法(即以上述圖像幀為輸入調(diào)用活體識(shí)別本地方法),由活體識(shí)別本地方法將若干個(gè)圖像幀轉(zhuǎn)換為視頻幀后,以視頻幀為輸入調(diào)用本地的活體識(shí)別算法得到上述圖像幀的活體屬性。
多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性可以是與活體識(shí)別的目的相關(guān)的各種對(duì)多媒體實(shí)時(shí)數(shù)據(jù)的分析結(jié)果,例如,可以是輸入的指紋圖像是否匹配某個(gè)預(yù)設(shè)的指紋圖像,可以是輸入的視頻幀中某個(gè)人做了什么動(dòng)作,可以是輸入的圖像或視頻中的人臉是否匹配某個(gè)預(yù)設(shè)的人臉圖像等等。當(dāng)客戶端的活體識(shí)別本地方法能夠返回多種活體屬性時(shí),可以調(diào)用活體識(shí)別本地方法時(shí)指定要返回的某種或某些活體屬性,也可以令活體識(shí)別本地方法返回所有的活體屬性,再根據(jù)業(yè)務(wù)邏輯的需要選擇其中的部分來使用。
步驟330,按照活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
在得到多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性后,根據(jù)實(shí)際應(yīng)用場景的業(yè)務(wù)邏輯,按照活體屬性的具體值來進(jìn)行下一步的業(yè)務(wù)處理。例如,對(duì)活體識(shí)別應(yīng)用于驗(yàn)證的場景,如果活體識(shí)別本地方法返回的活體屬性符合驗(yàn)證條件,則進(jìn)行驗(yàn)證通過后的下一步業(yè)務(wù),如果不符合驗(yàn)證條件,則進(jìn)行驗(yàn)證不通過的下一步業(yè)務(wù)。再如,對(duì)活體識(shí)別應(yīng)用于游戲的場景,可以按照活體屬性中用戶的動(dòng)作、移動(dòng)幅度、移動(dòng)方向等來確定游戲的下一個(gè)畫面或情節(jié)。
在一種驗(yàn)證場景的實(shí)現(xiàn)方式中,服務(wù)端可以指定用戶需要完成的活體動(dòng)作。服務(wù)端在頁面數(shù)據(jù)中攜帶用戶需要完成的一個(gè)到多個(gè)活體動(dòng)作以及對(duì)應(yīng)于每個(gè)活體動(dòng)作的驗(yàn)證條件,下發(fā)給客戶端??蛻舳嗽谶\(yùn)行頁面數(shù)據(jù)時(shí),在初始化客戶端的活體識(shí)別本地方法成功后,向用戶顯示需要完成的活體動(dòng)作。對(duì)活體識(shí)別本地方法的初始化可能需要按照頁面數(shù)據(jù)中指定的活體動(dòng)作來進(jìn)行,當(dāng)服務(wù)端指定不同的活體動(dòng)作時(shí),可能要加載不同的活體識(shí)別本地方法,和/或活體識(shí)別本地方法要返回不同的活體屬性。在活體識(shí)別本地方法返回活體屬性后,如果每個(gè)活體動(dòng)作的活體屬性都滿足頁面數(shù)據(jù)中對(duì)應(yīng)的驗(yàn)證條件,則驗(yàn)證通過,進(jìn)行驗(yàn)證通過后的業(yè)務(wù)處理,并且關(guān)閉客戶端的活體識(shí)別本地 方法。
在前述的一個(gè)例子中,步驟310中所獲取的多媒體實(shí)時(shí)數(shù)據(jù)是來源于客戶端所在設(shè)備攝像頭的若干個(gè)圖像幀,需要由客戶端的活體識(shí)別本地方法將若干個(gè)圖像幀轉(zhuǎn)換為視頻幀后,以視頻幀為輸入調(diào)用本地的活體識(shí)別算法才能得到上述圖像幀的活體屬性。在這個(gè)例子中,對(duì)活體識(shí)別本地方法的調(diào)用可以以一定的周期來進(jìn)行,以避免在客戶端存儲(chǔ)過多的圖像幀。具體而言,可以在每個(gè)周期結(jié)束時(shí),將本周期內(nèi)獲取的圖像幀輸入客戶端的活體識(shí)別本地方法,由活體識(shí)別本地方法將本周期的若干個(gè)圖像幀轉(zhuǎn)換為視頻幀后,調(diào)用本地的活體識(shí)別算法得到本周期的活體屬性;如果本周期的活體屬性滿足驗(yàn)證條件,則進(jìn)行通過驗(yàn)證后的業(yè)務(wù)處理,并停止向活體識(shí)別本地方法輸入圖像幀;否則繼續(xù)在下一周期活體屬性獲取,即在下個(gè)周期的周期結(jié)束時(shí),重復(fù)上述向活體識(shí)別本地方法輸入下個(gè)周期的圖像幀,以獲取下個(gè)周期的活體屬性的過程。
可見,本申請(qǐng)的實(shí)施例中,采用web方式和本地方法混合的模式來實(shí)現(xiàn)活體識(shí)別頁面,由服務(wù)端將采用web方式的頁面數(shù)據(jù)下發(fā)給客戶端,客戶端在頁面數(shù)據(jù)的運(yùn)行過程中通過調(diào)用活體識(shí)別本地方法來進(jìn)行活體識(shí)別,從而使得服務(wù)端能夠在頁面數(shù)據(jù)中隨時(shí)對(duì)用戶界面、業(yè)務(wù)邏輯等進(jìn)行修改,而不必進(jìn)行客戶端升級(jí),極大的降低了客戶端的升級(jí)頻率,在減少客戶端的開發(fā)成本的同時(shí)減輕了用戶的負(fù)擔(dān)。
在本申請(qǐng)的一個(gè)應(yīng)用示例中,手機(jī)上的支付客戶端用人臉活體識(shí)別的方式來進(jìn)行支付驗(yàn)證,如果人臉完成了指定的動(dòng)作(如點(diǎn)頭、搖頭等)并且人臉與預(yù)先存儲(chǔ)的人臉圖像相匹配,則通過驗(yàn)證。支付客戶端采用h5(html5,hypertextmark-uplanguage5,超文本標(biāo)記語言第5版)頁面來實(shí)現(xiàn)人臉活體識(shí)別界面,在h5頁面通過調(diào)用javasdk(softwaredevelopmentkit,軟件開發(fā)工具包)的人臉識(shí)別本地方法來進(jìn)行活體識(shí)別。
當(dāng)用戶在客戶端打開人臉活體識(shí)別的支付驗(yàn)證頁面時(shí),客戶端向服務(wù)端(運(yùn)行在該支付系統(tǒng)的支付服務(wù)器上)發(fā)送人臉活體識(shí)別頁面的頁面請(qǐng)求。 服務(wù)端將人臉活體識(shí)別頁面的h5頁面數(shù)據(jù)返回給客戶端。在h5頁面數(shù)據(jù)中,服務(wù)端指定要用戶進(jìn)行的活體動(dòng)作以及對(duì)應(yīng)于活體動(dòng)作的驗(yàn)證條件。
客戶端運(yùn)行接收的h5頁面數(shù)據(jù),其流程如圖4所示。
步驟401,啟動(dòng)h5頁面的攝像頭,啟動(dòng)后在h5頁面可以采集到攝像頭提供的圖像數(shù)據(jù)。本步驟可以通過調(diào)用手機(jī)操作系統(tǒng)提供的接口等方式來實(shí)現(xiàn)。
步驟402,以指定的活體動(dòng)作為參數(shù),初始化java人臉識(shí)別本地方法。
步驟403,java人臉識(shí)別本地方法啟動(dòng)運(yùn)行,以指定的活體動(dòng)作為參數(shù),初始化c語言的本地人臉?biāo)惴ā?/p>
步驟404,c語言的本地人臉?biāo)惴▎?dòng)運(yùn)行,加載算法和人臉模型文件,向java人臉識(shí)別本地方法返回初始化是否成功的消息。
步驟405,java人臉識(shí)別本地方法根據(jù)自身的初始化結(jié)果和c語言的本地人臉?biāo)惴ǖ某跏蓟Y(jié)果,向h5頁面返回初始化是否成功的消息,只有java人臉識(shí)別本地方法和c語言的本地人臉?biāo)惴ň跏蓟晒r(shí),才返回初始化成功的消息。
步驟406,h5頁面判斷java人臉識(shí)別本地方法是否返回初始化成功的消息,如果是,轉(zhuǎn)步驟408,否則執(zhí)行步驟407。
步驟407,向用戶顯示本地方法加載失敗,流程結(jié)束。
步驟408,開始從h5頁面攝像頭獲取base64(一種8位字節(jié)代碼的編碼方式)編碼的圖像幀,啟動(dòng)定時(shí)任務(wù)。
步驟409,向用戶顯示要進(jìn)行的活體動(dòng)作。
步驟410,在定時(shí)到時(shí),將本周期(即該定時(shí)任務(wù)的周期)內(nèi)從攝像頭獲取的base64編碼的若干個(gè)圖像幀通過web容器發(fā)送到j(luò)ava人臉識(shí)別本地方法。
步驟411,java人臉識(shí)別本地方法將本周期的若干個(gè)圖像幀轉(zhuǎn)換為c語言的本地人臉?biāo)惴ㄖС值?或可識(shí)別的)視頻幀,輸入給c語言的本地人臉?biāo)惴ā?/p>
步驟412,c語言的本地人臉?biāo)惴ǜ鶕?jù)輸入的視頻幀進(jìn)行人臉識(shí)別,向java人臉識(shí)別本地方法返回對(duì)應(yīng)于圖像幀的活體屬性,包括是否進(jìn)行了指定的活體動(dòng)作,視頻中的人臉是否與預(yù)先存儲(chǔ)的人臉圖像相符合。
步驟413,java人臉識(shí)別本地方法將c語言的本地人臉?biāo)惴ǚ祷氐幕铙w屬性,通過web容器返回給h5頁面。java人臉識(shí)別本地方法可能需要將本地人臉?biāo)惴ǚ祷氐臄?shù)據(jù)格式轉(zhuǎn)換為h5頁面支持的數(shù)據(jù)格式。
步驟414,h5頁面判斷是否返回的活體屬性是否符合驗(yàn)證條件,如果符合,執(zhí)行步驟415;如果不符合,轉(zhuǎn)步驟410,進(jìn)行下一周期的人臉識(shí)別。
步驟415,判斷是否還有下一個(gè)服務(wù)端指定的活體動(dòng)作,如果有,轉(zhuǎn)步驟409,向用戶顯示下一個(gè)要進(jìn)行的活體動(dòng)作;否則執(zhí)行步驟416。
步驟416,用戶已經(jīng)通過人臉驗(yàn)證,向用戶顯示驗(yàn)證通過的識(shí)別結(jié)果,結(jié)束步驟408中啟動(dòng)的定時(shí)任務(wù)。
步驟417,向java人臉識(shí)別本地方法發(fā)送識(shí)別結(jié)束的消息。
步驟418,java人臉識(shí)別本地方法向c語言的本地人臉?biāo)惴òl(fā)送算法結(jié)束的消息后,java人臉識(shí)別本地方法關(guān)閉。
步驟419,c語言的本地人臉?biāo)惴P(guān)閉,流程結(jié)束。
與上述流程實(shí)現(xiàn)對(duì)應(yīng),本申請(qǐng)的實(shí)施例還提供了一種應(yīng)用在客戶端的活體識(shí)別的實(shí)現(xiàn)裝置,和一種應(yīng)用在服務(wù)端的活體識(shí)別的實(shí)現(xiàn)裝置。這兩種裝置均可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為邏輯意義上的裝置,是通過客戶端或服務(wù)端所在設(shè)備的cpu(centralprocessunit,中央處理器)將對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,除了圖5所示的cpu、內(nèi)存以及非易失性存儲(chǔ)器之外,客戶端或服務(wù)端所在設(shè)備通常還包括用于進(jìn)行無線信號(hào)收發(fā)的芯片等其他硬件,和/或用于實(shí)現(xiàn)網(wǎng)絡(luò)通信功能的板卡等其他硬件。
圖6所示為本申請(qǐng)實(shí)施例提供的一種活體識(shí)別的實(shí)現(xiàn)裝置,應(yīng)用在客戶端,包括頁面請(qǐng)求發(fā)送單元、頁面數(shù)據(jù)接收單元和頁面數(shù)據(jù)運(yùn)行單元,其中:頁面請(qǐng)求發(fā)送單元,用于向服務(wù)端發(fā)送活體識(shí)別頁面的頁面請(qǐng)求;頁面數(shù)據(jù) 接收單元,用于接收服務(wù)端返回的活體識(shí)別頁面的頁面數(shù)據(jù);頁面數(shù)據(jù)運(yùn)行單元,用于運(yùn)行接收的頁面數(shù)據(jù),進(jìn)一步包括實(shí)時(shí)數(shù)據(jù)獲取模塊、本地方法調(diào)用模塊和業(yè)務(wù)處理模塊,其中:實(shí)時(shí)數(shù)據(jù)獲取模塊用于獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);本地方法調(diào)用模塊用于根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;業(yè)務(wù)處理模塊用于按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
一個(gè)例子中,所述來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù)包括:來源于客戶端所在設(shè)備攝像頭的若干個(gè)圖像幀;所述本地方法調(diào)用模塊具體用于:將所述若干個(gè)圖像幀輸入客戶端的活體識(shí)別本地方法,由活體識(shí)別本地方法將若干個(gè)圖像幀轉(zhuǎn)換為視頻幀后,通過本地的活體識(shí)別算法得到所述若干個(gè)圖像幀的活體屬性。
上述例子中,所述本地方法調(diào)用模塊可以具體用于:按照一定周期將本周期內(nèi)獲取的圖像幀輸入客戶端的活體識(shí)別本地方法,由活體識(shí)別本地方法將所述圖像幀轉(zhuǎn)換為視頻幀后,通過本地的活體識(shí)別算法得到本周期的活體屬性;所述業(yè)務(wù)處理模塊可以具體用于:當(dāng)本周期的活體屬性滿足驗(yàn)證條件時(shí),進(jìn)行通過驗(yàn)證后的業(yè)務(wù)處理,并停止向活體識(shí)別本地方法輸入圖像幀;否則繼續(xù)下一周期的活體屬性獲取。
上述例子中,所述客戶端的活體識(shí)別本地方法可以包括:活體識(shí)別的java本地方法或擴(kuò)充c的面向?qū)ο缶幊陶Z言objective-c本地方法;所述本地的活體識(shí)別算法可以包括:c語言的活體識(shí)別本地算法。
上述例子中,所述圖像幀包括:base64編碼的圖像幀;所述客戶端的活體識(shí)別本地方法包括:活體識(shí)別的java本地方法;所述本地方法調(diào)用模塊包括圖像幀傳輸子模塊、視頻幀轉(zhuǎn)換子模塊和活體屬性返回子模塊,其中:圖像幀傳輸子模塊用于將base64編碼的圖像幀通過web容器發(fā)送到活體識(shí)別的java本地方法;視頻幀轉(zhuǎn)換子模塊用于由活體識(shí)別的java本地方法將base64編碼的圖像幀轉(zhuǎn)換為c語言的活體識(shí)別本地算法支持的視頻幀;活體屬性返回子模塊用于活體識(shí)別的java本地方法以視頻幀為輸入調(diào)用c語言的 活體識(shí)別本地算法,得到圖像幀的活體屬性,并通過web容器返回圖像幀的活體屬性。
可選的,所述頁面數(shù)據(jù)還包括:用戶需要完成的活體動(dòng)作以及對(duì)應(yīng)于所述活體動(dòng)作的驗(yàn)證條件;所述頁面數(shù)據(jù)運(yùn)行單元還包括活體動(dòng)作顯示模塊,用于在初始化客戶端的活體識(shí)別本地方法成功后,向用戶顯示需要完成的活體動(dòng)作;所述業(yè)務(wù)處理模塊具體用于:當(dāng)所述活體屬性滿足所述驗(yàn)證條件時(shí),進(jìn)行通過驗(yàn)證后的業(yè)務(wù)處理,并關(guān)閉活體識(shí)別本地方法。
圖7所示為本申請(qǐng)實(shí)施例提供的一種活體識(shí)別的實(shí)現(xiàn)裝置,應(yīng)用在服務(wù)端,包括頁面請(qǐng)求接收單元和頁面數(shù)據(jù)發(fā)送單元,其中:頁面請(qǐng)求接收單元用于接收客戶端發(fā)送的活體識(shí)別頁面的頁面請(qǐng)求;頁面數(shù)據(jù)發(fā)送單元用于向客戶端返回所述活體識(shí)別頁面的頁面數(shù)據(jù);所述頁面數(shù)據(jù)運(yùn)行于客戶端,其運(yùn)行過程包括:獲取來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù);根據(jù)所述多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性;按照所述活體屬性進(jìn)行下一步的業(yè)務(wù)處理。
可選的,所述來源于客戶端所在設(shè)備的多媒體實(shí)時(shí)數(shù)據(jù)包括:來源于客戶端所在設(shè)備攝像頭的若干個(gè)圖像幀;所述運(yùn)行過程中根據(jù)多媒體實(shí)時(shí)數(shù)據(jù),通過調(diào)用客戶端的活體識(shí)別本地方法,得到所述多媒體實(shí)時(shí)數(shù)據(jù)的活體屬性,包括:按照一定周期以本周期內(nèi)獲取的圖像幀調(diào)用客戶端的活體識(shí)別本地方法,得到本周期的活體屬性;所述運(yùn)行過程中按照活體屬性進(jìn)行下一步的業(yè)務(wù)處理,包括:當(dāng)本周期的活體屬性滿足驗(yàn)證條件時(shí),進(jìn)行通過驗(yàn)證后的業(yè)務(wù)處理,并停止向活體識(shí)別本地方法輸入圖像幀;否則繼續(xù)繼續(xù)下一周期的活體屬性獲取。
可選的,所述頁面數(shù)據(jù)還包括:用戶需要完成的活體動(dòng)作以及對(duì)應(yīng)于所述活體動(dòng)作的驗(yàn)證條件;所述運(yùn)行過程中還包括:在初始化客戶端的活體識(shí)別本地方法成功后,向用戶顯示需要完成的活體動(dòng)作;
所述運(yùn)行過程中按照活體屬性進(jìn)行下一步的業(yè)務(wù)處理,包括:當(dāng)所述活體屬性滿足所述驗(yàn)證條件時(shí),進(jìn)行通過驗(yàn)證后的業(yè)務(wù)處理,并關(guān)閉活體識(shí)別 本地方法。
可選的,所述客戶端的活體識(shí)別本地方法包括:活體識(shí)別的java本地方法或擴(kuò)充c的面向?qū)ο缶幊陶Z言objective-c本地方法。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。