湯文俊 彭立 席博文
摘? 要: 智能手機已用于課堂考勤,但現(xiàn)有的系統(tǒng)沒有兼顧考勤效率和身份識別。為了彌補現(xiàn)有系統(tǒng)的不足,通過綜合運用人臉識別及手機定位技術(shù),設計了一個基于智能手機的課堂考勤系統(tǒng),該系統(tǒng)采用C/S架構(gòu),客戶端運行于Android手機,服務端運行于后臺服務器,學生通過客戶端以簽到和簽退的方式來完成考勤,教師通過客戶端可直接查詢考勤結(jié)果。
關(guān)鍵詞: 課堂考勤; 智能手機; 人臉識別; 手機定位
中圖分類號:TP311.1? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)02-18-04
A mobile phone based classroom attendance checking system
Tang Wenjun, Peng Li, Xi Bowen
(Department of Information Science and Engineering, Hunan First Normal University, Changsha, Hunan 410205, China)
Abstract: The mobile phone has been applied to check attendance, but existing systems do not give attention to both efficiency and identity recognition. To compensate for the shortcomings of these systems, a mobile phone based system for checking classroom attendance is designed. The system adopts the C/S architecture, in which the client side runs on Android mobile phones, and the server side runs on a back-end server. Using the client side, students can record their attendance in a way of checking in and checking out, and teachers can query students' attendance directly.
Key words: classroom attendance checking; mobile phone; face recognition; mobile phone location
0 引言
在高校這種較為寬松的學習環(huán)境中,因?qū)W生缺乏自覺性和自律性,逃課現(xiàn)象較為嚴重。為了嚴肅教學紀律,確保教學質(zhì)量,有必要采取相應措施來打擊這種現(xiàn)象。課堂考勤是目前各高校普遍采用的一種手段。任課教師一般是通過點名來進行考勤,在學生人數(shù)較多的情況下,無疑會耗費較多的時間,并影響教學進度。為了在有限的課時內(nèi)完成既定的教學任務,有些教師干脆不考勤或盡量少考勤,這給那些不自覺的學生可乘之機。另外,人工考勤一般只會記錄在紙上,也不便于做考勤結(jié)果的統(tǒng)計。
隨著智能手機的普及和其功能的不斷強大,已出現(xiàn)一些基于智能手機的課堂考勤系統(tǒng)[1-2]。這些系統(tǒng)分為兩類,一類基于人臉識別技術(shù)并只運行在教師的手機上,另一類基于手機定位技術(shù)并只運行在學生的手機上。前者通過比對現(xiàn)場掃描到的學生臉部信息和事先采集到的學生臉部信息來確認哪些學生到課,從而解決了身份識別問題,但考勤時需要教師對所有學生進行臉部掃描,耗費的時間并不比傳統(tǒng)的點名方式少。后者通過比較學生手機的位置和教室的位置來確認學生是否到課,因為不需要教師參與考勤,所以提高了考勤效率,但無法識別學生身份。為了彌補以上兩類系統(tǒng)的不足,本文設計了一個基于智能手機的課堂考勤系統(tǒng),該系統(tǒng)通過綜合運用人臉識別和手機定位技術(shù),解決了到課確認和身份識別問題,且具有較好的考勤效率。
1 系統(tǒng)功能
該系統(tǒng)由客戶端和服務端構(gòu)成,用戶分為學生和教師??蛻舳诉\行于Android手機,為學生和教師提供了訪問入口;服務端運行于后臺服務器,負責具體的業(yè)務邏輯處理。學生通過客戶端以簽到和簽退的方式來完成考勤,教師不需要參與考勤便可通過客戶端查詢到考勤結(jié)果。
1.1 賬號激活
系統(tǒng)事先為學生和教師設置了個人賬號,他們必須激活賬號才能使用系統(tǒng)。學生激活賬號時,需選擇用戶類別為學生,輸入學號和密碼,并通過前置攝像頭拍攝人臉照片(拍攝3張),系統(tǒng)根據(jù)以上信息激活相應的賬號并進行人臉識別器的訓練。只有當學號和密碼正確,且3次拍照都拍到了人臉時,激活賬號才會成功。教師激活賬號時,選擇用戶類別為教師并輸入工號和密碼,系統(tǒng)根據(jù)以上信息激活相應的賬號。只有當工號和密碼正確時,激活賬號才會成功。
1.2 登錄
已激活賬號的學生和教師在每次使用系統(tǒng)時需先登錄。用戶登錄時,需選擇用戶類別并輸入賬號和密碼,系統(tǒng)根據(jù)以上信息完成登錄處理。只有當賬號和密碼正確時,登錄才會成功。
1.3 簽到和簽退
學生登錄系統(tǒng)后,可通過簽到和簽退來完成考勤。學生簽到時,需選擇簽到的課程(含節(jié)次)并通過前置攝像頭拍攝人臉(拍攝1張),系統(tǒng)根據(jù)簽到的課程、簽到的時間、手機所在的位置、人臉照片等信息來完成簽到處理。對于任意一門課程,只有在規(guī)定的時間和上課地點由學生本人簽到,簽到才能成功。簽退流程與簽到類似。其他要求如下:①每次課都要進行簽到和簽退,任何一個操作未完成都將視為缺勤;②正常簽到時間為上課前10分鐘內(nèi),不能提前簽到,上課后10分鐘內(nèi)簽到則視為遲到,10分鐘后將無法簽到并視為缺勤;③正常簽退時間為下課后10分鐘內(nèi),不能延后簽退,提前簽退則視為早退。
1.4 考勤查詢
教師登錄系統(tǒng)后,可查詢本學期任教課程的考勤情況,考勤查詢只能在登錄的當天進行。查詢時,需選擇任教課程(含班級),并選擇是查詢當天的考勤情況還是查詢本學期的考勤情況,系統(tǒng)根據(jù)以上信息返回查詢結(jié)果。若查詢的是當天的考勤情況,查詢結(jié)果為該課程當天每次課的考勤情況,包含課程、班級、節(jié)次、缺勤人姓名、遲到者姓名、早退者姓名等信息;若查詢的是本學期的考勤情況,查詢結(jié)果為本學期該課程到目前為止總的考勤情況,包含課程、班級以及每位學生的出勤次數(shù)、出勤率等信息。
2 系統(tǒng)設計
2.1 基本設計思想
⑴ 整體設計思路
系統(tǒng)采用C/S架構(gòu),其中客戶端運行于Android手機,為學生和教師提供訪問入口,服務端運行于后臺服務器,負責具體的業(yè)務邏輯處理。針對系統(tǒng)的功能需求,在客戶端中設計相應的模塊;針對客戶端中的每一個模塊,在服務端中設計相應的服務模塊??蛻舳说膶崿F(xiàn)采用Android開發(fā)技術(shù);服務端的實現(xiàn)采用Java Web開發(fā)技術(shù)[3]:運行服務端程序的Web服務器為Tomcat,系統(tǒng)數(shù)據(jù)存放于MySQL數(shù)據(jù)庫,服務模塊被封裝成Servlet??蛻舳送ㄟ^HTTP協(xié)議與服務端通信,客戶端模塊將用戶提交的信息以HTTP請求發(fā)往后臺服務器,當Tomcat接收到HTTP請求后,將請求轉(zhuǎn)發(fā)給相應的服務端模塊進行處理,期間服務端模塊會根據(jù)需要訪問MySQL數(shù)據(jù)庫,請求處理完畢后,Tomcat將處理結(jié)果以HTTP響應返回至客戶端。系統(tǒng)架構(gòu)如圖1所示。
⑵ 到課確認的方法
學生簽到時,客戶端利用百度地圖API[4]獲取學生手機所在的位置并將該信息發(fā)往服務端,服務端通過比較該信息和數(shù)據(jù)庫中存放的教室位置信息來判斷學生是否到課。
⑶ 身份識別的方法
學生激活賬號時,客戶端把要激活的賬號和拍攝到的人臉照片發(fā)往服務端,服務端以賬號作為人臉照片的分類標簽,并以人臉照片和其分類標簽作為訓練樣本來訓練人臉識別器,人臉識別器是Opencv for Java[5]提供的人臉識別器類的實例。學生簽到和簽退時,客戶端會把當前用戶的賬號和采集到的人臉照片發(fā)往服務端,服務端利用人臉識別器識別出人臉照片的分類標簽,并比較當前用戶的賬號與分類標簽是否相同,以此判斷是否學生本人簽到或簽退。
2.2 軟件結(jié)構(gòu)
本系統(tǒng)的客戶端和服務端各有5個模塊??蛻舳撕头斩说能浖Y(jié)構(gòu)分別見圖2和圖3。
2.3 模塊設計
⑴ 賬號激活模塊
該模塊先接收用戶輸入的賬號和密碼,對于學生用戶,還要通過前置攝像頭采集3張人臉照片。之后,將用戶類別(學生或教師)、賬號、密碼、人臉照片(學生用戶)發(fā)往發(fā)往服務端的賬號激活服務模塊,以激活用戶的個人賬號。
⑵ 賬號激活服務模塊
該模塊先根據(jù)接收到的用戶類別、賬號和密碼來查詢數(shù)據(jù)庫,以確認賬號和密碼正確且賬號的狀態(tài)為未激活,之后將賬號的狀態(tài)改為激活。接著,對于學生用戶,將接收到的3張照片放置于人臉照片目錄并用目錄中的所有照片來訓練人臉識別器。最后將處理結(jié)果返回客戶端。
⑶ 登錄模塊
該模塊先接收用戶輸入的賬號和密碼,之后將用戶類別、賬號、密碼、登錄日期發(fā)往服務端的登錄服務模塊,以確認用戶是否有使用該系統(tǒng)的資格。
⑷ 登錄服務模塊
該模塊先根據(jù)接收到的用戶類別、賬號和密碼來查詢數(shù)據(jù)庫,以確認賬號和密碼正確且賬號的狀態(tài)為已激活。之后,根據(jù)接收到的賬號和登錄日期在數(shù)據(jù)庫中進行以下查詢:對于學生用戶,查找當天可簽到的課程及相應節(jié)次;對于教師用戶,查找本學期的任教課程及相應班級。最后,將處理結(jié)果返回客戶端。在登錄成功的情況下,處理結(jié)果中會包含當天可簽到的課程及相應節(jié)次(學生用戶)或本學期的任教課程及相應班級(教師用戶)。
⑸ 簽到模塊
該模塊先接收學生選擇的簽到課程(含節(jié)次),并通過前置攝像頭采集1張人臉照片。之后,調(diào)用百度地圖API獲取手機所在的位置。最后,將賬號、簽到課程(含節(jié)次)、簽到時間、手機所在的位置、人臉照片發(fā)往服務端的簽到服務模塊,以實現(xiàn)學生對該次課的簽到。
⑹ 簽到服務模塊
該模塊先根據(jù)接收到的賬號、簽到課程(含節(jié)次)、簽到時間、手機所在的位置來查詢數(shù)據(jù)庫,以確認該生該次課尚未簽到,并確認該生在規(guī)定的時間和地點簽到。之后,用人臉識別器根據(jù)接收到的人臉照片識別出照片對應的賬號,并確認識別出的賬號與接收到的賬號一致。接著,將簽到情況(正?;蜻t到)記錄在數(shù)據(jù)庫中。最后,將處理結(jié)果返回客戶端。
⑺ 簽退模塊
該模塊先接收學生選擇的簽退課程(含節(jié)次),并通過前置攝像頭采集1張人臉照片。之后,調(diào)用百度地圖API獲取手機所在的位置。最后,將賬號、簽退課程(含節(jié)次)、簽退時間、手機所在的位置、人臉照片發(fā)往服務端的簽退服務模塊,以實現(xiàn)學生對該次課的簽退。
⑻ 簽退服務模塊
該模塊先根據(jù)接收到的賬號、簽退課程(含節(jié)次)、簽退時間、手機所在的位置來查詢數(shù)據(jù)庫,以確認該生該次課尚未簽退,并確認該生在規(guī)定的時間和地點簽退。之后,用人臉識別器根據(jù)接收到的人臉照片識別出照片對應的賬號,并確認識別出的賬號與接收到的賬號一致。接著,將簽退情況(正?;蛟缤耍┯涗浽跀?shù)據(jù)庫中。最后,將處理結(jié)果返回客戶端。
⑼ 考勤查詢模塊
該模塊先接收用戶選擇的任教課程(含班級)和查詢方式(查詢當天考勤情況或本學期考勤情況),之后將賬號、任教課程(含班級)、查詢方式、查詢時間發(fā)往服務端的考勤查詢服務模塊,以實現(xiàn)對該課程考勤結(jié)果的查詢。
⑽ 考勤查詢服務模塊
該模塊根據(jù)接收到的賬號、任教課程(含班級)、查詢方式、查詢時間來查詢數(shù)據(jù)庫,以獲得該課程當天每次課的考勤情況或本學期到目前為止總的考勤情況。之后,將處理結(jié)果返回客戶端,處理結(jié)果中包含該課程當天每次課的考勤情況或本學期到目前為止總的考勤情況。
2.4 數(shù)據(jù)庫表
本系統(tǒng)共有9個表。
⑴ student表(存放學生用戶的基本信息,表結(jié)構(gòu)見表1)。
⑵ teacher表(存放教師用戶的基本信息,表結(jié)構(gòu)見表2)。
⑶ class表(存放班級的基本信息,表結(jié)構(gòu)見表3)。
⑷ course表(存放課程的基本信息,表結(jié)構(gòu)見表4)。
⑸ classroom表(存放上課教室的基本信息,表結(jié)構(gòu)見表5)。
⑹ semester表(存放學期的基本信息,表結(jié)構(gòu)見表6)。
⑺ schedule表(存放教學計劃信息,表結(jié)構(gòu)見表7)。
⑻ curriculum表(存放課表信息,表結(jié)構(gòu)見表8)。
⑼ kaoqin表(存放考勤結(jié)果,表結(jié)構(gòu)見表9)。
3 結(jié)束語
本文設計了一個基于智能手機的課堂考勤系統(tǒng),該系統(tǒng)采用C/S架構(gòu),客戶端運行于Android手機,服務端運行于后臺服務器,學生通過客戶端以簽到和簽退的方式來完成考勤,教師通過客戶端可直接查詢考勤結(jié)果。該系統(tǒng)通過綜合運用人臉識別及手機定位技術(shù),不但解決了到課確認和身份識別問題,還具有較好的考勤效率。
參考文獻(References):
[1] 陳鴻飛,嚴忱君,俞寶福.基于人臉識別的中學課堂考勤系統(tǒng)的設計[J].科技傳播,2015.7(15):91-92
[2] 王大偉.基于Android的課堂考勤系統(tǒng)設計[J].電子世界,2015.22:176-177
[3] 郭克華,李敏,陳志剛.Java Web程序設計[M].清華大學出版社,2011.
[4] 百度文庫.百度地圖移動版API for android開發(fā)指南[EB/OL].https://wenku.baidu.com/view/1b03451959eef8c75-fbfb363.html
[5] 毛星云,冷雪飛,王碧輝等.OpenCV3編程入門[M].電子工業(yè)出版社,2015.