李貞輝 李威
摘要:隨著需求的不斷增加,日常的考勤系統(tǒng)逐漸凸顯出許多問題。該文介紹了一種基于Android的人臉識別的考勤管理系統(tǒng),利用GPS實行實時定位,同時嵌入Arc Soft人臉識別系統(tǒng)進行人臉識別,實現(xiàn)員工的考勤與管理,提高了考勤的效率和準確性。
關(guān)鍵詞:移動考勤;人臉識別;管理系統(tǒng);Android
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)01-0079-03
Abstract:With the increasing demand, the daily attendance system gradually highlights many problems. This paper introduces an attendance management system based on Android and face recognition. It uses GPS system to implement real-time positioning, embeds arc soft face recognition system for face recognition, and finally completes the attendance and management of employees, which improves the efficiency of attendance.
Key words:mobile attendance;face recognition; management system;Android
1引言
考勤是企業(yè)或?qū)W校日常管理中必不可少的手段,而企業(yè)尤其是學(xué)校通常采用的是手工考勤方式,效率低,錯誤率高。目前市場上也有相關(guān)的考勤設(shè)備,但這需要企業(yè)或者學(xué)校購買相關(guān)硬件設(shè)備,增加成本。針對員工眾多,考勤效率低、管理難等問題,為企業(yè)設(shè)計一套完全符合要求的考勤系統(tǒng)顯得尤為重要。本文旨在解決低成本下實現(xiàn)高效考勤的問題,介紹一種基于Android+Arc Soft的考勤系統(tǒng)的設(shè)計,具有良好的擴展性,同時提高了考勤管理的效率。
2系統(tǒng)結(jié)構(gòu)描述
2.1 系統(tǒng)的開發(fā)工具
通過對國內(nèi)外考勤系統(tǒng)的調(diào)查和研究,經(jīng)過多方比對,本系統(tǒng)選用Spring Boot框架+JPA和MySQL數(shù)據(jù)庫,實現(xiàn)業(yè)務(wù)邏輯管理和考勤信息的存儲。Spring可以快速創(chuàng)建并運行Spring項目,無須配置XML,無碼生成,直接使用。JPA的優(yōu)點:任何符合JPA標準的框架都遵循同樣的框架,提供相同的訪問的API,簡單易用,集成方便。MySQL數(shù)據(jù)庫體積小、速度快、總體擁有成本低、開放源代碼,有著廣泛的應(yīng)用。
2.2 系統(tǒng)模塊分析
1)用戶登錄注冊模塊:用戶通過注冊賬號和設(shè)置密碼,然后在登錄頁輸入賬號和密碼就可以進入考勤系統(tǒng)。
2)公司模塊:公司管理員用戶通過創(chuàng)建公司來實現(xiàn)部門、人員和加入信息的管理,可查看請假、簽到、工資信息這些功能。這些功能具體能做到設(shè)置考勤時間、設(shè)置考勤方式、設(shè)置考勤規(guī)則,部門分配、開除員工,同意或加入信息管理,同意或拒絕請假、查看請假月歷,查看員工簽到月歷、員工工資錄入、查看工資條等功能。
3)簽到模塊:員工通過簽到打卡來生成個人的考勤月歷,公司管理員可以查看員工考勤月歷。
4)請假模塊:員工提交請假申請,后臺生成請假記錄后,由管理員審核請假記錄并決定是否同意員工請假。
5)工資模塊:公司管理員可查看并審核請假信息,查看員工考勤信息,并錄入工資信息,從而生成工資條,員工可查看工資條。
2.3系統(tǒng)數(shù)據(jù)庫分析
本系統(tǒng)總共包括用戶基本信息表、申請加入記錄表、公司表、考勤記錄表、工資記錄表、部門表6個表:
1)用戶基本信息表,主要用來存放用戶的基礎(chǔ)信息。
2)申請加入記錄表,主要用來存儲關(guān)于用戶申請的信息。
3)公司表,主要用來存儲記錄公司基礎(chǔ)信息。
4)考勤記錄表,主要用來存儲員工打卡時間,更新數(shù)據(jù)時間等基礎(chǔ)信息。
5)工資記錄表,主要用來存儲員工工資信息。
6)部門表,主要用來存儲員工部門規(guī)則信息和打卡具體明細。
3系統(tǒng)核心模塊的設(shè)計與實現(xiàn)
3.1注冊登錄模塊
用戶通過賬號注冊頁面注冊新的賬號,在其中輸入用戶名、姓名以及密碼就可以完成注冊。然后再通過登錄頁面輸入用戶名以及密碼完成登錄。如果忘記密碼可以申請修改密碼。
3.2管理員模塊
管理員可以進入公司首頁查看部門管理、人員管理、加入申請信息、員工請假信息、員工簽到信息以及員工工資信息。在部門管理中可以實現(xiàn)約束具體部門打卡信息。在公司人員管理中可以查看員工列表,并可以處理員工部門的調(diào)配工作。在員工工資信息錄入頁面,可以查看可錄入員工并對員工工資明細錄入。
3.3員工模塊
員工通過簽到頁面,點擊打卡完成自己的簽到。員工如遇突發(fā)事件不能上班的可以在員工請假頁面向公司申請請假并注明請假理由,公司決定是否批準。在工資條頁面員工可以查看自己的工資條信息。
3.4人臉識別模塊
ArcSoft公司推出的虹軟人臉識系統(tǒng),計算攝影算法十分優(yōu)秀,它提供開放的免費人臉識別SDK,支持人臉檢測、人臉追蹤、1:1人臉對比、1:N人臉搜索。虹軟的人臉檢測技術(shù)支持強光、弱光、黑夜、背光等多種復(fù)雜環(huán)境。并且可檢測出正臉,側(cè)臉等多種角度人臉的位置。通過本地離線SDK引擎的調(diào)用方式,在本機實現(xiàn)人臉識別,無須將人臉圖片傳輸出去,對網(wǎng)絡(luò)和流量的要求就不會有云平臺那么高,在用戶體驗和數(shù)據(jù)安全方面都有很大的保障。
人臉識別關(guān)鍵代碼如下:
//FR成功
if(faceFeature != null){
Integer liveness = livenessMap.get(requestId);
//不做活體檢測的情況,直接搜索
if(!livenessDetect) {
searchFace(faceFeature, requestId);
}
//活體檢測通過,搜索特征
elseif(liveness != null&& liveness == LivenessInfo.ALIVE) {
searchFace(faceFeature, requestId);
}
//活體檢測未出結(jié)果,或者非活體,延遲執(zhí)行該函數(shù)
else {
if(requestFeatureStatusMap.containsKey(requestId)) {
Observable.timer(WAIT_LIVENESS_INTERVAL, TimeUnit.MILLISECONDS)
.subscribe(new Observer
Disposable disposable;
@Override
publicvoid onSubscribe(Disposable d) {
disposable = d;
getFeatureDelayedDisposables.add(disposable);
}
});
}
}
}
//特征提取失敗
else {
if(increaseAndGetValue(extractErrorRetryMap, requestId) > MAX_RETRY_TIME) {
extractErrorRetryMap.put(requestId, 0);
String msg;
// 傳入的FaceInfo在指定的圖像上無法解析人臉,此處使用的是RGB人臉數(shù)據(jù),一般是人臉模糊
if(errorCode != null&& errorCode == ErrorInfo.MERR_FSDK_FACEFEATURE_LOW_CONFIDENCE_LEVEL) {
msg = getString(R.string.low_confidence_level);
} else {
msg = "ExtractCode:" + errorCode;
}
faceHelper.setName(requestId, getString(R.string.recognize_failed_notice, msg));}
}
4測試
在軟件使用前對軟件測試是排除故障的有效手段,通過測試發(fā)現(xiàn)軟件BUG,修復(fù)BUG讓軟件變得更完善。測試具體分為兩種測試:黑盒測試指通過巨量的測試用例來檢測軟件的錯誤程度,減少那些并未發(fā)現(xiàn)的缺陷卻帶來潛在的嚴重性,甚至導(dǎo)致組織的信譽受損,黑盒測試檢查系統(tǒng)的各個功能點最終有沒有和軟件設(shè)計時的需求達成一致,是否能達到理想效果。白盒測試:根據(jù)程序的結(jié)構(gòu),用例測試,一步一步循環(huán)測試下去,驗證程序邏輯是否通暢。
本次測試針對系統(tǒng)功能以及程序邏輯性,通過對測試報告以及測結(jié)論的分析,得出結(jié)果:弱網(wǎng)情況下,客戶端與服務(wù)端通訊正常,只是數(shù)據(jù)接收比較慢,會影響用戶的體驗,但不影響,用戶正常使用??记诠δ苁艿接绊?,在10秒內(nèi)如果數(shù)據(jù)包未接收成功,會判定為斷網(wǎng)狀態(tài),給予斷網(wǎng)提示。本系統(tǒng)能滿足日常使用的需求,能做到數(shù)據(jù)實時更新無異常,日常使用無崩潰情況。在數(shù)據(jù)庫數(shù)據(jù)超過5萬條的情況下,服務(wù)器也能較快的返回數(shù)據(jù)給予客戶端,保障客戶端的平穩(wěn)運行,在不考慮網(wǎng)絡(luò)的情況下,數(shù)據(jù)包的交互都能控制在一秒內(nèi),保證整個軟件的完美交互。
5結(jié)論
本文設(shè)計了基于Android的人臉識別的考勤系統(tǒng),該系統(tǒng)有效地解決了企業(yè)考勤的難、效率低的問題,通過該系統(tǒng)可以提高考勤的效率和準確性。在未來可以在此系統(tǒng)基礎(chǔ)上,添加更多的功能,以滿足企業(yè)的其他要求。
參考文獻:
[1] 馬炳周.基于Android的考勤系統(tǒng)的設(shè)計方案[J].中國新通信,2019,21(18):48-49.
[2] 馬玉鳳.基于Java技術(shù)的企業(yè)員工考勤系統(tǒng)開發(fā)策略[J].電子技術(shù)與軟件工程,2018(12):30.
[3] 李宏坤,鄭光勇,謝舞,等.基于spring boot框架的公司考勤系統(tǒng)的研究與設(shè)計[J].電腦知識與技術(shù),2019,15(18):55-56.
[4] 郭冠良,朱堪日,蔡敏.基于Android平臺的企業(yè)考勤系統(tǒng)設(shè)計與實現(xiàn)[J].無線互聯(lián)科技,2019(1):52-53.
[5] 賈維喆.移動考勤管理系統(tǒng)的研究[J].哈爾濱鐵道科技,2016(4):1-4.
[6] 丁一鈞.基于安卓操作系統(tǒng)的便攜式人員考勤系統(tǒng)設(shè)計[J].電腦編程技巧與維護,2018(10):55-56,73.
【通聯(lián)編輯:代影】