王世超 崔洪振 張偉 高靜 傅田



摘? 要:國家和家長對學生教育的重視以及大學生數(shù)量的遞增,因此各學校需要施行更加方便、可靠的教學措施,來保證教育質量。其中,學生的課堂考勤是保證教育質量的關鍵步驟。針對傳統(tǒng)簽到方式存在的缺點,該文設計基于SeetaFace2人臉識別智慧課堂簽到系統(tǒng),通過調用SeetaFace2人臉識別算法進行人臉與照片的對比并得出相似度,通過比較相似度與閾值,實現(xiàn)人臉識別,更好的督促學生上課,保證簽到結果的準確性和可靠性。
關鍵詞:SeetaFace2;人臉識別;智慧課堂;簽到系統(tǒng);信息管理
中圖分類號:TP273.4? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)20-0001-06
Design and Implementation of Smart Class Sign-in System Based on
SeetaFace2 Face Recognition
WANG Shichao1,CUI Hongzhen1,ZHANG Wei1,GAO Jing1,F(xiàn)U Tian2
(1.School of Information Science and Engineering,Zaozhuang University,Zaozhuang? 277160,China;
2.College of Intelligence and Information Engineering,Shandong University of Traditional Chinese Medicine,Jinan? 250355,China)
Abstract:The state and parents attach importance to student education and the increasing number of college students. Therefore,schools need to implement more convenient and reliable teaching measures to ensure the quality of education. Among them,studentsattendance in class is the key step to ensure the quality of education. In view of the shortcomings of the traditional sign-in method,this paper designs a face recognition smart class sign-in system based on SeetaFace2,through calling the SeetaFace2 face recognition algorithm to compare the face and the photo,and get the similarity,by comparing the similarity and threshold,realize the face recognition,better supervise and urge students to attend class and ensure the accuracy and reliability of check-in results.
Keywords:SeetaFace2;face recognition;smart class;sign-in system;information management
0? 引? 言
目前,高校中存在多種課堂簽到的方式,其中就有課堂點名、打卡點名、指紋識別簽到等方式,但是這些方式存在著不同的問題。課堂點名效率低下,存在代替簽到現(xiàn)象,占用大量課堂時間;考勤機打卡點名只認卡不認人,會有代替打卡現(xiàn)象;指紋識別考勤,由于干性皮膚、生理脫皮、指紋破損、假指紋等原因,造成很多人無法通過指紋驗證和假冒指紋形成虛假考勤[1-4]。人臉考勤運用了人體生物特征技術,不但具有標記唯一的特點,而且易于管理,便于統(tǒng)計,并且準確度、實時性和可操作性都具有一定保證,相對于傳統(tǒng)考勤方式,具有顯著的優(yōu)勢[5,6]。基于SeetaFace2人臉識別簽到系統(tǒng)是由作者設計并開發(fā)的,通過人臉識別的方式進行考勤簽到的系統(tǒng),解決了上述考勤方式的不足,實現(xiàn)了高效快速的課堂簽到工作,減少課堂時間的浪費,提高學生的出勤率。該系統(tǒng)包括人臉識別考勤功能和學生、教師、課程等基本信息的管理功能,基于SeetaFace2算法完成人臉識別,結合Servlet、DbUtils、EasyUI、jQuery等實現(xiàn)系統(tǒng)功能,具有運行穩(wěn)定、使用簡便、操作靈活等特點。該系統(tǒng)經過大量的測試和修改,已經處于比較完善的階段并具有投入實際使用的條件。
1? 系統(tǒng)概述
1.1? 開發(fā)環(huán)境
本系統(tǒng)采用如表1所示的開發(fā)環(huán)境。
1.2? 開發(fā)技術說明
1.2.1? Ajax技術
與傳統(tǒng)的應用不同,Ajax采用的是一種異步交互的處理方式。它相當于在瀏覽器客戶端與服務器之間架設了一個橋梁、一個媒介,在它的幫助下可以消除網絡交互過程中的處理、等待等缺陷[7]。Ajax異步JavaScript和XML,是一種頁面與后臺動態(tài)交互的網頁開發(fā)技術,該技術使用CSS和HTML、DOM模型、HttpRequest對象、JavaScript分別完成表示、交互、與服務器通信以及調用等工作[8,9]。通過該技術可以在不重新加載整個網頁的情況下,對網頁的某部分內容進行更新。
1.2.2? SeetaFace2
由中科院計算所的山世光帶領的科研團隊研發(fā)的SeetaFace2人臉識別引擎是基于C++實現(xiàn)的,且不依賴于第三方庫函數(shù)的人臉識別系統(tǒng)[10]。其中人臉識別引擎最主要的模塊分為人臉檢測,人臉對齊,人臉特征提取三步[11],如圖1所示。
人臉檢測(face detect):在圖像中定位出人臉的位置,然后裁剪出包含人臉位置的矩形框,并進行填充、縮放到指定尺寸,對人臉圖像進行標準化。
人臉對齊(face alignment):提取人臉關鍵點坐標,然后使用相似變換或放射變化等變換進行人臉對齊。該步驟目的就是把所有的人臉圖片統(tǒng)一到一個固定的正臉姿態(tài)和大小,從而提高模型對人臉姿態(tài)變化的魯棒性。
人臉特征提取(extract feature):使用深度學習等方法提取人臉的特征。
2? 系統(tǒng)設計方案
2.1? 需求分析
開發(fā)基于SeetaFace2人臉識別智慧課堂簽到系統(tǒng)的目的是提供一個供學生、老師、管理員進行課堂簽到、請假、選課以及各種信息管理的平臺。因此,基于SeetaFace2人臉識別智慧課堂簽到系統(tǒng)最基本的功能首先是能夠進行學生、教師、課程、班級、成績等信息的添加、修改、刪除,最重要的是進行人臉識別簽到,最后是一些擴展性的功能如:學生請假、學生選課、成績分析、成績單的導入和導出等功能。而且只有擁有賬號的用戶才能登錄該系統(tǒng)進行相關的操作。系統(tǒng)功能模塊如圖2所示,系統(tǒng)數(shù)據(jù)信息流如圖3所示,系統(tǒng)各功能模塊的功能描述如表2所示。
2.2? 系統(tǒng)設計
2.2.1? 總體設計
根據(jù)需求及功能要求,本文將系統(tǒng)模塊劃分為管理員端,學生端,教師端三大部分以及學生、教師、管理員、班級、課程、考勤、請假、選課、成績信息管理和系統(tǒng)管理九大功能模塊,如圖4所示。
2.2.2? 簽到功能設計
對該系統(tǒng)進行整體分析,學生端的考勤信息管理模塊才是核心和重點。該模塊具有的功能比較復雜,包含考勤列表的顯示、人臉識別簽到、搜索查詢功能。學生需要在系統(tǒng)上傳自己的證件照,系統(tǒng)在每次啟動時都會將學生保存到系統(tǒng)的照片保存到人臉庫中,當學生進入考勤信息管理界面點擊添加考勤信息按鈕后,將會跳轉到添加考勤信息的界面,系統(tǒng)調用攝像頭,學生點擊拍照按鈕后再點擊確認按鈕,系統(tǒng)會將拍攝所得到的照片與人臉庫的照片進行對比,兩張照片的相似比大于90%,則識別成功,系統(tǒng)頁面跳轉到選擇考勤信息界面,學生選擇相應的課程名稱點擊確認即可添加考勤信息,完成人臉識別簽到。若兩張照片的相似比小于90%,則識別失敗,頁面將顯示重新簽到和退出兩個按鈕,若選擇重新簽到,則將會再次跳轉到添加考勤信息的界面,并調用攝像頭進行拍照,再次進行人臉識別簽到,若選擇退出,則直接跳轉到考勤列表界面。其考勤信息管理模塊流程圖如圖5所示。
2.3? 數(shù)據(jù)庫設計
該系統(tǒng)中對于數(shù)據(jù)庫的設計遵循的是數(shù)據(jù)庫設計第三范式。數(shù)據(jù)邏輯本身以用戶信息(包括學生信息、教師信息、管理員信息)、課程信息為主要數(shù)據(jù),其中核心數(shù)據(jù)表主要由學生信息表(s_student)、教師信息表(s_teacher)、管理員信息表(s_admin)、課程信息表(s_course)、請假信息表(s_leave)、班級信息表(s_class)、考勤信息表(s_attendance)、成績信息表(s_score)、選課信息表(s_selected_ course)九個表組成,數(shù)據(jù)表信息如表3所示。系統(tǒng)在數(shù)據(jù)交互和數(shù)據(jù)處理過程中主要依靠用戶編號(studentId、teacherId、adminId)和課程編號(courseId)來建立聯(lián)系。
3? 系統(tǒng)設計與實現(xiàn)
3.1? 系統(tǒng)的工作原理及數(shù)據(jù)交互
系統(tǒng)在設計實現(xiàn)中采用的是Ajax、Servlet、JSP、JDBC、DbUtils、EasyUI和jQuery框架。本系統(tǒng)在服務架構上采用的B/S架構模式,在系統(tǒng)前端開發(fā)中,采用JSP框架,頁面管理主要依賴Web瀏覽器。該系統(tǒng)設計采用的是三層系統(tǒng)架構,分別是UI界面層、Servlet業(yè)務邏輯層和數(shù)據(jù)訪問層,目的是為了提高系統(tǒng)內部功能接口的內聚性,降低接口之間的耦合性。圖6為基于SeetaFace2人臉識別智慧課堂簽到系統(tǒng)的工作原理及數(shù)據(jù)交互流程。
3.2? 系統(tǒng)實現(xiàn)過程
3.2.1? 登錄
該功能是實現(xiàn)用戶登錄,界面主要由用戶名、密碼、驗證碼三個輸入框和三個用戶身份選擇按鈕以及登錄按鈕五大部分組成。用戶通過輸入相應的用戶名、密碼和驗證碼,選擇相應的身份,點擊登錄按鈕即可實現(xiàn)系統(tǒng)登錄,進行下一步的系統(tǒng)操作。登錄界面如圖7所示。
3.2.2? 簽到功能
該功能是通過拍照上傳照片,調用SeetaFace2人臉識別算法進行人臉識別,獲取相應的相似比,并將該值與設定好的閾值進行對比,若相似比大于或者等于閾值,系統(tǒng)頁面跳轉到完善簽到信息界面,完成考勤工作;若相似比小于閾值,則簽到失敗,可以選擇再次進行人臉識別簽到或者選擇退出簽到功能模塊。人臉識別簽到界面如圖8所示。
3.3? 關鍵代碼
以下代碼主要是實現(xiàn)用戶登錄時,系統(tǒng)通過對用戶照片進行更新的功能,實現(xiàn)了系統(tǒng)顯示照片與人臉庫照片的一致性:
Properties prop = tool.getConfig();
String address=prop.getProperty("address.server");
SD sd=(SD)request.getSession().getAttribute("user");
String filepath=null;
String localfilepath=address+"\\LocalPhotos\\"+student.getSn()+"\\1.jpg";
try {
response.setContentType("text/html;charset=utf-8");
DiskFileFactory factory = new DiskFileFactory();
File f = new File(address);
if(!f.exists()) {
f.mkdirs();}
factory.setRepository(f);
ServletFileUpload? fileUpload = new ServletFileUpload (factory);
fileUpload.setHeaderEncoding("utf-8");
List
PrintWriter writer = response.getWriter();
for(FileItem fileItem :fileItems) {
if (fileItem.isFormField()) {
String name = fileItem.getFieldName();
if (name.equals("name")) {
if (!fileItem.getString().equals("")) {
String value = fileItem.getString("utf-8"); }}
} else {
String filename = fileItem.getName();
if (filename!= null&&!filename.equals("") ) {
filepath=address+"\\upload\\"+student.getSn()+"\\0.jpg";
File file = new File(filepath);
file.getParentFile().mkdirs();
file.createNewFile();
InputStream in = fileItem.getInputStream();
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int len;
while((len=in.read(buffer))>0)
out.write(buffer,0,len);
in.close();
out.close();
fileItem.delete();
}}}
} catch (FileUploadException e) {
e.printStackTrace();}
以下代碼的功能是實現(xiàn)SeetaFace2算法的調用,本系統(tǒng)通過調用SeetaFace2人臉識別算法進行拍攝照片與人臉庫照片的對比,從而得到相似比:
libs=libgcc_s_sjlj-1,libeay32,libquadmath-0,ssleay32, libgfortran-3,libopen-blas,holiday,SeetaFaceDetector200,SeetaPointDetector200,SeetaFaceRecognizer200,SeetaFaceCropper200,SeetaFace2JNI
libs.path=D:\\jar\\dllmoban
bindata.dir=D:\\jar\\dllmoban
以下代碼的功能實現(xiàn)相似比與閾值的對比,從而判斷拍攝照片同學是否與該用戶匹配,實現(xiàn)簽到功能:
float face;
face=facedb.getscore(filepath,localfilpath);
if (face>90) {
result="ok";
} else {
result="no";}
response.getWriter().write(a);
4? 結? 論
基于SeetaFace2人臉識別算法智慧教室簽到系統(tǒng)繼承了傳統(tǒng)的人臉識別系統(tǒng)的人臉識別簽到功能,在本系統(tǒng)中還加了請假功能、選課功能、成績分析功能以及基本信息的管理。系統(tǒng)設計界面簡潔、友好,易于用戶操作,具有適用性,為各大學校的教學工作帶來方便,提高學校的管理和教學水平。
參考文獻:
[1] 杜路科,通旭明,梁俊花,等.基于人臉識別技術的課堂考勤系統(tǒng) [J].電腦編程技巧與維護,2020(2):135-137.
[2] 張良杰.基于人臉識別的智慧教室簽到管理子系統(tǒng) [J].軟件,2019,40(12):133-139.
[3] 甘魯斌,吳重慶.基于人臉識別的智能教室系統(tǒng) [J].電腦知識與技術,2019,15(23):203-204.
[4] 吳繁宇,唐浩祥,王學文,等.基于人臉識別的智慧教室管理系統(tǒng) [J].中國高新科技,2019(4):35-37.
[5] 代美茹,王法勝.基于人臉圖像的考勤系統(tǒng)設計 [J].電腦知識與技術,2020,16(21):5-7+22.
[6] 汪成龍,孫培宜,林曉鵬,等.基于SeetaFace的人臉識別門禁系統(tǒng) [J].制造業(yè)自動化,2018,40(8):111-112+150.
[7] 呂振剛.基于Ajax技術的WEB研究 [J].石油知識,2020(4):50-51.
[8] 陽小蘭,羅明.基于Spring+SpringMVC+MyBatis網上論壇的設計與實現(xiàn) [J].黑龍江科技信息,2016(36):279-280.
[9] 施瑩.Ajax技術在物聯(lián)網信息系統(tǒng)中的應用 [J].無線互聯(lián)科技,2020,17(8):149-150.
[10] 肖進.基于Seetaface人臉識別引擎的面授課堂智能管理系統(tǒng)的研究與實現(xiàn) [D].江蘇:江蘇大學,2019.
[11] 侯雨靜.基于計算機視覺的人臉檢測與識別算法研究 [D].錦州:遼寧工業(yè)大學,2018.
作者簡介:王世超(2000—),男,漢族,山東濰坊人,工學學士,主要研究方向:軟件系統(tǒng)開發(fā);通訊作者:崔洪振(1990—),男,漢族,山東濱州人,工學碩士,助教,主要研究方向:標簽計算、深度學習;張偉(1970—),男,漢族,山東棗莊人,工學碩士,教授,主要研究方向:網絡數(shù)據(jù)分析;高靜(1998—),女,漢族,山東臨沂人,工學學士,主要研究方向:軟件系統(tǒng)開發(fā);傅田(1999—),女,漢族,山東濰坊人,工學學士,主要研究方向:軟件系統(tǒng)開發(fā)。