白磊 潘光健 杜武龍 丁智斌



摘? 要:根據目前常用考勤技術,如采用RFID射頻卡,指紋或使用人臉考勤機等技術存在替簽、代簽,或者必須使用硬件簽到,教師需在現場監督,并且考勤還存在過程漫長、效率低下等問題,因此設計實現了一個基于虹軟人臉識別SDK與高德地圖GPS定位的智能考勤系統。系統采用Vue+SSM作為主要框架結構,前端服務器使用Node.js,持久層數據庫采用MySQL,Redis做系統緩存,系統以移動端瀏覽器為平臺運行。
關鍵詞:考勤系統;人臉識別;GPS定位;SSM
中圖分類號:TP311.52? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)18-0095-04
Abstract:The conventional attendance technologies such as RFID radio frequency cards,fingerprints or the use of face attendance machines have problems which can sign in for someone else,or must use hardware,then teachers need to supervise on-site,and the attendance process is long and inefficient. According to this situation,an intelligent attendance system based on face recognition SDK of ArcSoft and GPS positioning of AMAP was designed. The system uses Vue+SSM as the main framework structure,Node.js as the front-end server. The persistence layer database uses MySQL,Redis is used as the system cache,and the system runs on the mobile browser as the platform.
Keywords:attendance system;face recognition;GPS positioning;SSM
0? 引? 言
目前傳統的教學考勤,通常需要花大量時間,影響了課堂教學計劃和進度,同時也加重了教師的教學負擔,在考勤數據統計時,容易出現偏差,無法高效地給出學生正確的考勤成績。在輔導員/班主任日常考勤方面,需要了解學生在校情況,如參加組織活動、晚間查寢等工作,人員較多、情形復雜也給考勤帶來很多不便。在教學管理方面,教學管理部門統計學生們出勤情況時,只能依靠教師的統計上報,效率和時效性較低。常規考勤技術,例如課堂點名、簽名或使用芯片卡、考勤機簽到,存在別人代答、代簽、代刷情況,并且考勤過程漫長,當考勤人員較多或集中簽到時容易引起混亂和聚集,導致出現意外情況。
本文以華北科技學院物聯網工程專業課程教學考勤為研究對象,設計并實現基于人臉識別與地圖GPS定位的智能考勤系統,并應用到我校相關專業的課程考勤和日常管理過程中。該系統通過調用虹軟人臉識別SDK進行人臉比對,使用高德地圖API獲取定位信息,前端使用Vue技術,后端使用Spring+Spring MVC+MyBatis(SSM)開發框架,在移動端瀏覽器中運行。通過該系統可以實現以下目的:
(1)通過考勤系統,實現數字化管理,減輕教師負擔,優化學生考勤流程,提高考勤管理效率。
(2)通過人臉識別技術,確定考勤對象,防止代簽、替簽。
(3)通過GPS定位系統,獲取考勤對象位置,防止不在指定區域簽到。
(4)通過使用手機瀏覽器訪問考勤系統,可適應不同平臺手機,且無需安裝APP即可訪問。
1? 總體設計
智能考勤系統主要包括用戶登錄別、人臉識別、考勤設置、地理位置、手動考勤、數據導出等模塊。系統擁有教師和學生兩種用戶,主要實現以下功能。
1.1? 教師用戶功能
教師用戶包括考勤設置、地理位置獲取、考勤信息查閱、手動考勤、學生請假的處理、考勤信息數據的導出等。
(1)考勤設置:教師可以對考勤參數進行設置,其中包括需要考勤的科目、考勤的截止時間(超過此時間視為遲到)、考勤的最晚截止時間(超過此時間視為缺勤)、學生與教師的地理位置距離范圍差。
(2)地理位置信息獲取:由于需要使用到教師與學生的地理位置信息進行對比,所以在教師進行考勤參數設置的時候需要同時獲取到教師的位置信息。
(3)考勤信息查閱:成功登錄的教師可以在教師中心對自己任教的科目進行考勤歷史情況查閱操作,其中包含本學期所有本科目的考勤情況,教師可以選擇其中任意一次進行詳情查閱,其中包括學生的簽到情況,學生簽到時的地理位置,學生正常簽到的人臉信息等。
(4)手動考勤:部分學生的手機可能會存在些許故障,導致無法進行正常的簽到,這時可以申請進行手動簽到。教師通過學生學號查詢此學生的信息,如果檢查無誤后,教師可以對其進行手動簽到操作。
(5)學生請假的處理:學生遇到特殊情況需要請假時,會對此簽到課程做出請假的操作。教師在接收到請假的請求后,可以根據此學生提供的請假憑證來決定允許或者不允許此學生請假。
(6)考勤信息數據的導出:可以將考勤記錄全部導出為Excel表數據,其中包括學生每次的簽到情況可根據學生簽到給出的最后的考勤分數。
1.2? 學生用戶功能
學生用戶包括在線人臉識別簽到、在線請假、考勤歷史記錄查詢等。
(1)在線人臉識別簽到:學生可以在簽到界面選擇需要簽到的課程,如果教師沒有發布考勤任務或者學生未選擇自己專業的課程,則不允許此學生進行簽到。在選擇簽到課程之后,進行人臉圖像采集,然后進行在線簽到。
(2)在線請假:如果學生有特殊情況需要請假,可以在請假界面選擇需要請假的課程,然后上傳請假憑證,提交之后等待教師的審核即可。
(3)考勤歷史記錄查詢:學生用戶可以在主界面查看自己所有的考勤歷史記錄,也可以在個人中心查看專業課程的詳細考勤記錄即考勤分數。
2? 技術架構
為了使系統模塊與模塊之間相互獨立運作且能協調工作,本系統采用前端與后端分離開發的模式,前端使用Vue+axios作為主要框架結構,后端將SSM作為框架支持,持久層數據庫采用MySQL,Redis做系統緩存,提高項目的可維護性、可擴展性和健壯性。
3? 詳細設計與實現
3.1? 考勤任務發布模塊
考勤任務發布模塊,主要的功能是教師設置考勤任務相關參數,向學生發布課程考勤任務,學生在簽到界面就可以選擇教師發布的考勤任務進行簽到。教師登陸考勤系統,進入考勤界面后首先要選擇進行考勤的課程,并對其他相關參數進行設置,如考勤截止時間,考勤最晚截止時間(在考勤截止時間之后簽到的視為遲到,超過了考勤最晚截止時間,便視為缺勤)。同時要設置范圍內允許的地理位置距離差,推薦的誤差值是50米,由于手機定位可能存在定位誤差,系統實現使用高德地圖API對用戶進行定位,同時根據API接口返回的數據的定位精度范圍作為精度誤差,以便后續位置信息計算。考勤發布模塊實現效果如圖1所示。
3.2? 學生在線簽到模塊
學生在線簽到模塊主要針對學生角色,同時也是整個系統的核心。學生用戶在登陸成功之后,進入在線簽到界面,當教師暫時沒有發布考勤任務、學生未選擇自己專業課程,或者教師發布的考勤任務已經過期,即已經超過考勤任務的最晚截止時間時,系統不會進行考勤,而是向學生發出相應提示信息。在學生正確選擇簽到課程之后,會進入人臉采集界面,系統首先會調用手機攝像頭,捕捉人臉,收集人臉信息,并且將收集到的人臉信息進行一系列的操作,最后將處理過的信息以Base64格式連同一系列其他參數(包括學生的地理位置信息)傳送至服務器端。
服務器端將處理過的學生的人臉信息提取出來,并與學生表中此學生之前錄入的人臉信息通過虹軟人臉識別SDK進行對比,若二者圖像特征的相似度小于80%,系統認為不是同一人,將處理結果寫進HashMap,然后將其返回至前端,同時將此次簽到視為異常簽到,添加到學生簽到記數據表中;若兩者圖像特征的相似度大于80%,則認為人臉是匹配的。
驗證學生的地理位置與教師的地理位置的差值是否在允許的范圍之內時,首先將發布此次考勤任務的教師的地理位置從考勤記錄表中查詢出來,然后計算簽到時系統獲取的學生GPS位置信息與教師地理位置之間的距離。由于我們保存的是經度和緯度,所以在計算的時采用計算球體上兩點之間曲線距離的方法。然后將求出的距離與教師之前設置的允許的范圍的差值進行對比,如果在誤差范圍內,則認為學生簽到成功,反之則視為異地簽到。最后將處理結果返回至前端,同時將此次的簽到記錄添加到學生簽到記錄表中。學生簽到界面如圖2所示。
對學生人臉圖像信息采集實現如圖3所示。
前端的人臉信息采集代碼如下:
this.OverlayShow = true;
let img = this.getBase64();
let that = this;
if (localStorage.lng === undefined) {
Dialog.alert({
message: '位置請求失敗,請檢查后重新嘗試'
}).then(() => {
this.OverlayShow = false;
});
}else{
this.$axios({
method: 'post',
url: '/face/check',
data: {
accuracy: localStorage.accuracy,
address: localStorage.address
},
});
后端的處理代碼如下:
String studentFaceImage = this.faceService.getStudent FaceImage ( ( String ) session.getAttribute ( "userName" ) );
boolean faceCompare = this.faceService.faceCompare ( checkFaceImageDTO.getImg ( ) , studentFaceImage );
3.3? 手動考勤模塊
手動考勤模塊包括教師手動考勤模塊和教師請假處理模塊。當學生的硬件設備出現故障或者有特殊原因無法簽到時,學生便可以向教師申請手動考勤。教師在搜索欄中輸入學生的學號,然后檢驗查詢到的學生信息是否和實際的學生信息相符。如果符合便可以通過教師手動考勤模塊進行手動考勤,即教師直接將此學生的簽到狀態設置為正常。教師手動考勤實現如圖4所示。
教師請假處理模塊是在學生發起請假的請求之后,教師端首頁就會出現學生的請假請求,教師可以查看學生的請假詳情,根據學生提交的請假憑證來決定是否允許此學生請假。在教師做出是否批假選擇后,系統會更新學生的考勤信息。請假處理實現如圖5所示。
4? 結? 論
本文針對常規考勤系統存在的問題,結合實際需求,設計并實現了基于人臉識別和GPS定位的智能考勤系統,實現了學生人臉信息的采集,教師及學生地理位置的獲取,教師手動考勤,教師請假處理,教師考勤詳情數據的導出,學生成績的查詢等功能。通過該系統可以實現實時、在線考勤,并通過地理位置信息和人臉識別技術防止代簽、替簽等情況,提高了考勤效率和準確性。智能考勤系統作為教學過程考核和評價的一種手段,將會越來越廣泛地應用在教育培訓等各個領域中。
參考文獻:
[1] 周克輝,羅瑋,陳泰峰.高校學生考勤管理系統發展現狀和需求分析研究 [J].電子測試,2019(22):53-55.
[2] 華蘭.基于移動互聯網的綜合考勤系統的研究與實現 [D].湖南:湖南大學,2019.
[3] 蘇婕,王忠.基于NFC技術的智能考勤管理系統設計與實現 [J].測控技術,2015,34(2):129-133.
[4] 劉炳初,趙越嶺,王浩,等.智能考勤系統的設計 [J].遼寧工業大學學報(自然科學版),2018,38(6):364-367.
[5] 張心怡,李剛.智能人臉識別考勤系統 [J].電子制作,2019(9):48-49.
[6] 李若玉.基于Android系統的便攜式人臉考勤系統 [D].四川:電子科技大學,2019.
作者簡介:白磊(1982—),男,漢族,山東高密人,副教授,博士研究生,研究方向:人工智能。