馬文靜 張枝令 洪俊雄
摘要:近年來,高校新生人數(shù)不斷增長,給迎新工作帶來的壓力越來越大。傳統(tǒng)迎新工作利用人工信息核對、學籍查詢、報到數(shù)據(jù)整理和統(tǒng)計的方式,存在工作量大、工作難度大,速度慢、出錯概率高等弊端。針對該問題,該文提出一種利用百度人臉識別SDK將系統(tǒng)攝像頭獲取的新生圖像信息轉化為學生的身份特征信息,并通過DotNet和SQLServer實現(xiàn)學生數(shù)據(jù)查詢、登記的方法,實現(xiàn)學生“刷臉”自助完成報到。實驗結果表明,該系統(tǒng)能夠準確識別新生特征的信息,縮短新生排隊時間,降低高校迎新工作的難度和強度,具有較高的實用價值。
關鍵詞:人臉識別技術;高校自助迎新
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)07-0166-03
隨著人們對高等教育的重視程度日益提高,高校新生人數(shù)不斷提高。如圖1所示,根據(jù)陽光高考平臺、高考直通車APP等權威平臺公布的數(shù)據(jù)顯示,以福建為例2016年福建參加高考考生總人數(shù)為17.5萬,2017年上升到18.82萬,同比增長7.5個百分點,其他省份大部分都呈現(xiàn)增長趨勢。這就意味著,高校每年的招生人數(shù)越來越多,迎新工作的壓力越來越大。傳統(tǒng)的利用手工進行學籍查詢、報到數(shù)據(jù)整理和統(tǒng)計的方式,不僅費時、費力,且容易出錯。
人臉與人體的其他生物特征(指紋、虹膜等)一樣與生俱來,它的唯一性和不易被復制的良好特性為身份鑒別提供了必要的前提。與其他生物識別技術如虹膜識別、指紋識別相比,具有非強制性、非接觸性、并發(fā)性等特點,除此之外,還具有符合視覺特性、操作簡單、結果直觀、隱蔽性好等優(yōu)點[1],其特征比對數(shù)據(jù)相對其他生物特征易于獲得。隨著人臉識別技術的不斷發(fā)展,識別的準確性不斷提高,在各領域都已經投入使用,如考勤、公安部門“天網”工程、支付寶“刷臉”支付等。
因此,本文提出一種基于DotNet環(huán)境進行開發(fā),利用Microsoft SQL Server作為數(shù)據(jù)庫管理系統(tǒng)為系統(tǒng)提供數(shù)據(jù)支持。應用較為成熟的百度人臉識別SDK,將外部攝像頭獲取到的新生現(xiàn)場圖像數(shù)據(jù)轉換為唯一的用戶編碼(ID),進行用戶身份的確認,當確認新生身份后系統(tǒng)跳出信息采集提示,新生掃描二維碼用手機填寫或在觸屏機上填寫資料。資料提交后自動顯示并打印迎新指南給新生。具體統(tǒng)流程如圖2所示。
1 數(shù)據(jù)庫設計與基礎數(shù)據(jù)處理
1.1 新生信息設計
根據(jù)分析,新生信息分由兩部分組成,一部分是新生的高招檔案信息,包括考生號、錄取專業(yè)、姓名、身份證號、學籍照片等,另一部分是考生在高校的編排信息,如學生證號、班級號、宿舍號、班級座位號等。
設計一張新生信息表(StudentInfo_tb),每一個考生信息作為這張表的一個字段,考生在高校的編排信息為可空字段,高招檔案信息為不可空字段,設置考生身份證號字段作為該表主鍵。在新增一個是否注冊字段(IsReg)和是否報到字段(IsArrived),均為Bit型,分別用于存儲是否已經將學籍照片在SDK注冊和新生是否已經完成報到的標志信息,這兩個字段均不可空為,默認值都為False,將通過高招系統(tǒng)獲取到的考生檔案信息導出一個Excel工作簿,并利用如下SQL語句將EXLCE導入到數(shù)據(jù)表中:
Select * into StudentInfo_tb from OPENROWSET ('MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0;HDR=YES;DATABASE=FilePath,Sheet$)
其中FilePath為Excel工作簿存儲路徑,Sheet為數(shù)據(jù)表名。此操作后,每條記錄的考生在高校的編排信息均為空,后期系統(tǒng)編排時系統(tǒng)將會為信息為空的記錄自動編排并填入數(shù)據(jù)。
1.2 新生人臉特征數(shù)據(jù)預處理
根據(jù)考生號導出考生學籍照片存放在電腦目錄中,并逐一提供給百度人臉識別SDK人臉注冊接口,用考生身份證號作為新生的ID。
2 基于百度人臉識別SDK的人臉檢測
2.1 獲取百度人臉識別SDK NuGet Package
NuGet是DotNet 中免費開源包的管理工具,在NuGet中我們可以很容易的獲取到很多免費的開源開發(fā)包。在DotNet集成開發(fā)環(huán)境Visual Studio 2012 中搜索百度人臉識別SDK的開源包“Baidu.AI”,安裝最新版即可獲取到百度人臉識別SDK NuGet Package。
2.2 照片質量檢測
由于新生學籍中的的照片質量較低,為了減少接口的調用次數(shù),提高系統(tǒng)的整體工作效率,需要在進行人臉注冊之前先進行照片質量檢測,當檢測發(fā)現(xiàn)照片效果不佳時將該照片拋棄并生成一個表格,提示工作人員重新收集這些新生的照片或引導這些新生使用其他方式進行報到。
照片質量檢測需要借助百度人臉識別SDK的人臉檢測接口判斷。調用Baidu.AI NuGet Package人臉的交互類中的Detect方法,即可獲得檢測結果。該結果以JSON形式返回,需要在C#中對返回JSON進行解析,根據(jù)實驗及參考相關開發(fā)文檔,重點關注返回結果中的如表1所示屬性,若這些屬性的值均能滿足條件,則該照片可用,否則可以考慮舍棄。
在實際操作時學籍系統(tǒng)照片像素過低、清晰度不佳,對照片先采用無損放大軟件(如PhotoZoom)進行適當放大,然后再用PhotoShop軟件對照片進行銳化處理,方可滿足以上參數(shù)要求,否則進行人臉注冊時極易失敗。
2.3 人臉注冊
百度人臉識別SDK的人臉識別功能依賴于百度云應用相關數(shù)據(jù)庫引擎,使用百度提供的云數(shù)據(jù)引擎能夠實現(xiàn)人臉快速辨析、查找和匹配,相對于本地數(shù)據(jù)庫引擎具有占用系統(tǒng)資源少、速度快的優(yōu)勢,因此,將所有新生的學籍照片預先導入到百度人臉識別SDK提供的云端數(shù)據(jù)庫中,并進行人臉注冊。
遍歷新生學籍照片目錄,用C#語言獲取新生學籍照片,并用轉化為二進制字符數(shù)組。同時再從本地數(shù)據(jù)庫的StudentInfo_tb表中查找出相應的新生身份證號作為該用戶的ID。
用Post方式提交到百度人臉注冊API接口中,解析接口返回的JSON,成功則將該本地數(shù)據(jù)庫的StudentInfo_tb表中該考生記錄的IsReg字段置位True,否則為False。
2.4 人臉識別
利用C#代碼將通過攝像頭抓取到的現(xiàn)場學生圖像傳入百度人臉識別SDK中的人臉識別接口,即可分析出該人臉信息是否在數(shù)據(jù)庫中。在進行人臉識別之前,同樣需要對抓取的現(xiàn)場學生圖像進行照片質量檢測,滿足如本文表1所示的參數(shù)要求方可使用,若不滿足該要求則提示重新抓取圖像。
圖像進行照片質量檢測后調用調用Baidu.AI NuGet Package人臉的交互類中的Identify方法,獲得SDK回傳的JSON結果,對JSON進行解析,取得user_info字段的值,并在本地數(shù)據(jù)庫StudentInfo_tb表查找(查詢身份證號),找到考生身份信息即可進行后續(xù)操作,如識別失敗可以提示新生換個姿勢、角度重新拍攝圖片重試,多次重試均不成功的可以使用其他方式進行新生報到身份驗證。
3 系統(tǒng)測試
整體系統(tǒng)的測試環(huán)境在實驗PC上搭建,安裝DotNet Ftamework 4.5,SQL Server2008 R2,并連接到Internet。采用USB攝像頭與實驗PC連接獲取用戶照片,預先從學信網導入200張學生學籍照片,進行本文2.2章節(jié)所述的照片加工和照片檢測并完成人臉注冊。再找到10位學生在現(xiàn)場進行測試,每個學生分別進行嘗試,直到成功識別為止,并記錄嘗試次數(shù)。實驗結果如表2所示,整體實驗結果理想。
4 結束語
本系統(tǒng)使用當前較為廣泛使用的DotNet和SQLsever的人臉識別算法,有利于通過攝像頭傳送的人像信息完成對學生的身份識別,并通過數(shù)據(jù)庫技術獲取到當前該學生的特征信息,完成該迎新信息的統(tǒng)計與記錄。同時,通過相關數(shù)據(jù)查詢軟件,可進一步對采集的信息進一步的排序統(tǒng)計,并進行數(shù)據(jù)導出。對高校繁瑣的迎新工作起到更好的管理效果。