李玉鵬 周俊 程超偉 高曉丹 宋維
【關(guān)鍵詞】云服務(wù) 人臉識(shí)別 考勤系統(tǒng) Python
人臉識(shí)別一度被認(rèn)為是生物特征識(shí)別領(lǐng)域甚至人工智能領(lǐng)域最困難的研究課題之一,隨著科學(xué)技術(shù)的發(fā)展,已被廣泛應(yīng)用與國計(jì)民生密切相關(guān)領(lǐng)域。云計(jì)算的興起,各大互聯(lián)網(wǎng)企業(yè)相繼開發(fā)了人臉識(shí)別技術(shù)云服務(wù),提供了人臉識(shí)別的一整套技術(shù)方案,使開發(fā)人員方便地使用其提供的服務(wù)對(duì)系統(tǒng)進(jìn)行開發(fā)。本文利用人臉識(shí)別云服務(wù)技術(shù)開發(fā)并實(shí)現(xiàn)了一個(gè)基于人臉識(shí)別云服務(wù)的考勤系統(tǒng)。
1 系統(tǒng)總體方案
基于人臉識(shí)別云服務(wù)的考勤系統(tǒng)是將本地實(shí)時(shí)的待考勤人員的臉部圖像發(fā)送至云端服務(wù),待其處理完畢后再從云端傳回考勤的結(jié)果,最后通過本地考勤終端實(shí)現(xiàn)人機(jī)交互,因此,本系統(tǒng)包括本地終端以和云服務(wù)部分。其中本地終端可以是傳統(tǒng)PC,也可以是便于多種場景應(yīng)用的微型計(jì)算機(jī)“Raspberry Pi”。
2 系統(tǒng)主要功能實(shí)現(xiàn)
2.1 人臉檢測功能的實(shí)現(xiàn)
在人臉檢測環(huán)節(jié),通過在Python中使用SimpleCV庫的函數(shù)findHaarFeatures來實(shí)現(xiàn),這是一個(gè)在圖像中搜索匹配某一特定模式的算法,在SimpleCV庫中自帶了一些模式,如臉、鼻子、眼睛、身體等。findHaarFeature可以分析攝像頭捕捉到的圖像,并從圖像中匹配出對(duì)應(yīng)的模式,使用此函數(shù)可以匹配圖像中的人。首先利用SimpleCV庫中的Camera函數(shù)設(shè)置圖像尺寸;其次,通過循環(huán)語句不斷執(zhí)行faces = frame.findHaarFeatures('face')來捕捉用戶在考勤時(shí)的圖像,當(dāng)攝像頭捕捉到人臉后執(zhí)行frame.save()就可將檢測到的人臉圖像保存在本地存儲(chǔ)空間中備用。沒有捕捉到人臉,系統(tǒng)將繼續(xù)處于待工作狀態(tài)直至檢測到人臉。該部分功能可以在“Raspberry Pi 2B+”上進(jìn)行測試。
2.2 本地終端與人臉識(shí)別云服務(wù)的交互實(shí)現(xiàn)
騰訊優(yōu)圖人臉識(shí)別在目前LWF測試中,人臉驗(yàn)證可達(dá)到99.5%的準(zhǔn)確率。本文采用了其提供的SDK以實(shí)現(xiàn)交互功能,包括服務(wù)鑒權(quán)簽名,訓(xùn)練及識(shí)別過程。首先是鑒權(quán)簽名,需要使用項(xiàng)目 ID 和密鑰獲取鑒權(quán)簽名,使用函數(shù)TencentYoutuyun.YouTu(appid, secret_id, secret_key, userid, end_point)完成簽名,參數(shù)appid為業(yè)務(wù)的應(yīng)用標(biāo)識(shí)AppId,secret_id為秘鑰SecretId,secret_key為秘鑰SecretKey,userid為用戶id,end_point服務(wù)后臺(tái)路徑。
訓(xùn)練過程包括新建個(gè)體和增加人臉。首先新建個(gè)體,使用接口NewPerson(self, person_id, image_path, group_ids,person_name= '', tag='', data_type = 0)來完成,其中參數(shù)person_id為新建的個(gè)體id,由用戶指定,需要保證app_id下的唯一性;person_name為個(gè)體對(duì)應(yīng)的姓名;group_ids由用戶指定的個(gè)體存放的組id;image_path為包含個(gè)體人臉的圖片路徑;tag為備注信息;data_type用于表示image_path是圖片還是url。考慮到降低系統(tǒng)的復(fù)雜度,避免使用數(shù)據(jù)庫,本系統(tǒng)將url值設(shè)置為0,直接將圖片保存在本地后通過此函數(shù)進(jìn)行上傳。因?yàn)樵谶M(jìn)行識(shí)別之前,必須先對(duì)人臉庫進(jìn)行訓(xùn)練,所以實(shí)際訓(xùn)練和識(shí)別在服務(wù)器端是異步執(zhí)行的。
識(shí)別過程。需調(diào)用人臉識(shí)別接口FaceIdentify(self, group_id, image_path, data_type = 0)將本地保存的待考勤人員的圖像上傳至云服務(wù)端,進(jìn)行人臉的識(shí)別。其中參數(shù)group_id為識(shí)別的組id,image_path為待識(shí)別的圖片路徑,data_type用于表示image_path是圖片還是url。接口調(diào)用統(tǒng)一返回Json格式的返回結(jié)果,可以通過返回信息了解各個(gè)參數(shù)的具體意義。
3 功能測試
本文采用了基于UVC協(xié)議的USB攝像頭,通過調(diào)用SimpleCV的相關(guān)算法,實(shí)現(xiàn)了系統(tǒng)無需進(jìn)行任何人工干預(yù)的自動(dòng)促發(fā),因此可以在不同PC及各種嵌入式設(shè)備中使用本文所述之設(shè)計(jì)。本文設(shè)計(jì)的系統(tǒng)從開發(fā)到調(diào)測,均使用“Raspberry Pi 2B+”,其擁有32位ARM-CortexA7架構(gòu)的雙核CPU,并且配備了各種常用外設(shè),如以太網(wǎng)網(wǎng)絡(luò)端口及USB端口等,配合攝像頭,從理論和實(shí)驗(yàn)中表明足以滿足本系統(tǒng)高效運(yùn)行。測試表明本系統(tǒng)的識(shí)別率高達(dá)92%以上,完全可以勝任單位的人員考勤工作。
4 結(jié)語
本文依托人臉識(shí)別云服務(wù),實(shí)現(xiàn)一種考勤系統(tǒng),其識(shí)別率及實(shí)時(shí)性均可滿足設(shè)計(jì)者需求。通過詳細(xì)地描述基于人臉識(shí)別云服務(wù)的考勤系統(tǒng)的搭建和實(shí)現(xiàn)過程,為相關(guān)產(chǎn)品提供了一套解決方案,將有助于加速云服務(wù)及智能硬件發(fā)展的進(jìn)程,具有較高的研究價(jià)值。
參考文獻(xiàn)
[1]騰訊云[EB/OL].[2016-01].http://www.qcloud.com/product/cvm.html.
[2]NathanOostendorp,AnthonyOliver,KatherineScott.Practical Computer Vision with SimpleCV[M].First Edition.O'Reilly Media,2012.
[3]MattRichardson,ShawnWallace.Getting Started with Raspberry Pi[M].First Edition.O'Reilly Media,2012.