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