洪 晶,劉子龍
(??诮洕鷮W院騰競依智網絡學院,???571132)
課堂教學是大學教學工作中的重要一環(huán),而課堂簽到管理是確保學生到課率的重要手段,同時簽到統計也是評價學生平時成績的重要依據之一。傳統課堂簽到一般采用口頭點名或紙質簽名方式,存在著耗時長、后期統計處理麻煩等問題,一些電子簽到系統則存在著成本高、作弊門檻低等問題。本文基于計算機視覺技術,采用人臉檢測及識別技術,設計一種簡單易行、成本低、防作弊的課堂簽到系統解決方案,并給出一些關鍵技術的實現。
大多數教師采用傳統簽到方式,主要分口頭點名和紙質簽名兩種。口頭點名的方式為:教師在課堂上親自或委托班長逐一念學生姓名,要求學生應答,未應答者為未到課。這種方式的優(yōu)點是操作簡單、成本低,缺點是學生多時會擠占課堂教學時間,而且存在冒名應答的可能,事后統計也比較費時費力;另一種傳統簽到方式是采用紙質簽名,教師課前要打印好簽到表格,上課時讓學生排隊簽名或傳閱簽名,同樣具有口頭簽到方式的缺點,每次簽到需重新打印簽到表也有違環(huán)保理念。
隨著信息技術的發(fā)展,出現了刷卡簽到系統。刷卡簽到系統主要由含有身份信息的IC 卡片、讀卡器、通信設備、服務器、數據庫等組成[1]。卡片可使用學生校園一卡通,學生簽到時,將卡片接觸讀卡器,讀卡器可讀出IC 卡中學生身份信息,譬如學號、姓名、班級等,實時上傳到后臺服務器后,可以自動生成簽到報表。相比于傳統簽到方式,刷卡簽到顯著提高了簽到效率,耗時短,一般1秒內即可讀出,簽到完成后,教師也可直接從系統后臺獲取簽到結果報表,無需再耗時耗力進行人工統計。但和傳統簽到方式一樣,刷卡簽到仍然屬于“串行”簽到方式,并且不能規(guī)避代刷卡作弊行為。
采用指紋簽到方式可以杜絕作弊行為。指紋簽到和刷卡簽到的實現原理類似,只是將讀卡器更換為指紋傳感器。由于指紋是人體的生物識別信息,隨身攜帶無法剝離,而且制造假指紋專業(yè)性強、成本高,因此制作假指紋用于簽到門檻高、性價比低,可以較大程度防止作弊。其缺點主要是:指紋采集環(huán)節(jié)耗時長、專業(yè)性強,以30 名學生為例,采集完所有學生指紋至少需要1 小時;況且,指紋數據常用于公安、金融等業(yè)務授權,如何讓學生自愿授權和如何保證數據安全也是難以解決的問題。
另外,刷卡、指紋簽到方式都需要投入不菲的成本用于購置和部署設備,在企事業(yè)單位中沒有問題,但在大學課堂簽到場景難以普遍采用。
隨著移動互聯技術的日益發(fā)展,智能手機已成為人們生活、工作、學習的必需品。智能手機往往隨身攜帶,手機號碼由于實名登記且唯一,可以具備身份識別功能,可用于支付、身份信息識別和授權等場景。不少公司推出了手機簽到管理軟件。利用手機簽到的最大優(yōu)點是可“并行”簽到,能極大地提高簽到效率。
比較有代表性的是阿里巴巴集團出品的釘釘軟件,是一款免費的智能移動辦公平臺,包含審批、公告、網盤、聊天、電話、簽到等功能模塊,廣泛應用于企業(yè)和組織單位?;卺斸斳浖拈_放平臺,一些開發(fā)者推出了智能手機簽到系統。借助釘釘開放平臺,可搭建包括課程安排、考勤簽到、資源共享等功能模塊的實驗教學管理系統,能有效提升教學管理水平。
使用釘釘簽到的最大門檻在于軟件安裝和學習成本較大[2]。由于釘釘專用于企業(yè)辦公場景,復用率不高,個人安裝的意愿不強;而且釘釘是一款大型軟件,下載和安裝耗時,占用流量大,教師也無法強制學生安裝釘釘;另外,釘釘功能繁雜,簽到只是它眾多功能中的一個,軟件操作學習成本較大,短時間不易上手,無法達成使用簡單的目標。
另一種可配合智能手機實現簽到功能的技術是iBeacon 技術,最先由蘋果的iOS 操作系統開發(fā)部門提出并實現,隨后谷歌的安卓操作系統也跟進實現類似解決方案。其原理是部署iBeacon 設備在要簽到的地方,設備可定時向周邊有限半徑地理范圍(有障礙室內通常不超過100 米左右)發(fā)送低功耗藍牙協議廣播幀,接收到廣播幀后智能手機中定制軟件可據此判斷設備持有人到達過簽到地點,并上報信息到服務器端?;趇Beacon 技術實現的簽到方案目前已在商場LBS 營銷、巡邏打卡、外賣行業(yè)騎手簽到等場景得到廣泛應用[3]。但應用于課堂簽到有明顯不足:iBeacon 簽到無法確保學生在教室附近完成簽到后仍進入教室上課;而且需要采購iBeacon設備及開發(fā)定制軟件,成本過高。
通過以上幾種簽到方案的比較分析,我們發(fā)現在課堂簽到場景中使用傳統的和電子簽到方案都有難以克服的缺點,不合適在大學課堂簽到場景推廣應用?;诖耍覀兛紤]另辟蹊徑,嘗試采用新的技術,提供新的解決方案。
經過調研分析,總結新的課堂簽到系統需要重點解決以下幾個需求:
一是簽到操作簡單、耗時少、學生和教師體驗要好。課堂時間寶貴,簽到不應占用過多時間;對于學生而言,簽到行為需簡單易行;對于教師而言,前期的數據準備工作和簽到后的收尾統計應輕松不復雜。
二是要具備防作弊能力。簽到系統應有效識別和拒止學生代簽、一人多簽、遠程簽到等作弊行為。
三是要能自動生成統計報表。簽到完成后,系統可以自動統計數據,形成指定格式的結果報表。
四是要求實施總成本低。課堂簽到作為教學管理的輔助手段,新提供的解決方案實施起來付出的增量成本,不應高于所獲得的比較收益。
基于以上需求,確定基于計算機視覺技術采用人臉檢測方式來實現課堂簽到,綜合評估下來是能滿足需求的。
首先,確定能滿足簡單和用戶體驗好的需求。人臉識別對學生要求簡單,學生僅需面對攝像頭1~2 秒即可完成簽到,只要達到一定的識別率,就能確保學生的用戶體驗,而隨著AI技術的進步,CV 技術對人臉的識別率已達到商用級別,目前已廣泛用于金融機構、電商等高風險場景,對于課堂簽到場景能滿足要求。
其次,確定能滿足防作弊需求。人臉是人體的生物識別特征,兩個不同的人不會有完全相同的臉部特征,不用擔心一人多簽問題。關于代簽,正常情況下,由于學生是在教師電腦前簽到,使用照片代簽概率也并不大。為防止個別學生夾帶照片簽到,可在代碼中增加采用活體檢測技術,比如隨機要求簽到人閉眼或張嘴,在識別過程中也同步檢測規(guī)定的動作。
再次,確定能滿足自動生成報表要求。由于班級學生信息已提前采集入庫,因此系統完成簽到后可自動統計出簽到人數和未到人數及明細,并生成報表,無需教師事后統計;如果需要進一步細分請假、曠課等信息,教師也可以使用系統補錄相關信息,由于僅補錄少數未到學生信息,所以工作量非常少。
最后,具有成本低、性價比高特點。系統僅需一臺主流配置的電腦,安裝本地數據庫,配備攝像頭,即可實現簽到。開發(fā)過程中涉及的軟件均為免費軟件;采用本系統將極大減少教師用于簽到和事后統計的工作量,同時節(jié)約了因簽到而占用的課堂時間,產生的效益相對于成本而言非??捎^。
下面從不同角度,描述系統設計思想。
鑒于需求分析,我們提出一種基于計算機視覺(CV)技術的課堂簽到系統實現方案,主要包含主控模塊、班級學生信息維護模塊、簽到事務模塊、簽到補錄模塊和報表模塊,其中簽到事務模塊繼續(xù)細分為人臉檢測、人臉識別、日志模塊,過程數據和結果數據存儲在數據庫中??傮w架構如圖1所示。
圖1 系統總體架構圖
主控模塊包含系統主界面,是系統所有功能的總入口,可以分別發(fā)起維護班級、學生信息,發(fā)起簽到事務,進行簽到補錄,生成結果報表。
3.2.1 班級、學生信息維護模塊
在發(fā)起簽到前必須完善基礎數據,需要教師主動采集必要的班級、學生信息錄入系統,存進數據庫,這些維護工作的頻次很低,除非班級、學生發(fā)生變動,否則只是一次性數據采集維護工作。為增加人臉識別準確率,每位學生需采集3張頭像照片。每次成功更新學生頭像信息后,應自動觸發(fā)AI 模型訓練,對該班級內所有學生頭像重新訓練學習,更新AI 模型,即可根據更新后的頭像照片數據識別出學生。
簽到時,系統將從數據庫中取出對應班級學生逐一檢測、識別。生成報表時,可以自動使用數據庫中班級、學生數據結合簽到結果、補錄信息生成完整的統計報表。
3.2.2 簽到事務模塊
簽到事務模塊負責完成班級全體簽到,通過攝像頭對每個學生進行人臉拍照檢測、識別,成功后記錄進日志。
具體來說,首先通過攝像頭采集到學生圖像,然后使用人臉檢測算法框定出人臉,接著再使用已根據該班級學生數據學習好的AI 模型進行識別,成功識別后記為已簽到狀態(tài),簽到結束后生成一條日志記錄整個簽到情況。
3.2.3 簽到補錄模塊
由于簽到事務模塊只能記錄已簽到學生信息,可以根據班級學生總數進一步計算出未簽到學生總數。而教師對于簽到可能需要進一步的詳細信息,比如未簽到學生中請假的有多少,分別是誰,未請假記曠課的學生有多少,分別是誰。對已簽到的學生也可能需要記錄哪些學生遲到或早退。教師可以使用簽到補錄模塊補充這些信息,完成錄入后,這些補充信息記錄進數據庫。同時考慮到差錯的可能,允許教師多次補錄,以最新的補錄數據為準。
3.2.4 統計報表模塊
簽到的最終目的是獲取簽到統計報表,我們可以設置自動生成統計報表,在每次簽到完成后生成,記錄進數據庫,教師可以通過Web訪問。也允許教師隨時手動發(fā)起生成最新統計報表,之所以有這個需求,是因為教師如果重新補錄,原有統計報表信息可能不準。也允許教師導出報表數據作進一步的個性化處理。
本文采用數據庫存儲數據,根據需求,我們設計了授課教師表、班級表、學生表、簽到補錄表、簽到結果統計表、日志表等,圖2為數據字典視圖的一部分,核心的數據表是簽到結果統計表,整個班級的一次簽到生成一張簽到結果統計表,表中根據簽到結果記錄實到人數。關于未到人數,通過抽取簽到補錄表數據可進一步補充未到學生中請假、曠課數據;已到學生中遲到、早退數據??紤]到補錄動作可重復發(fā)起,所以簽到結果統計表與簽到補錄表是1:N關系,每次補錄后最新數據必須同步到簽到結果統計表中;統計報表基于簽到結果統計表生成。日志表的數據源是日志文件,通過定時腳本將數據從文件抽取到數據庫,日志文件可以作為原始信息定期歸檔,當數據庫數據丟失時,也可以用于重新抽取入庫。
圖2 系統數據字典
圖3 系統簽到界面
基于上述設計,系統實現的目標是開發(fā)完成一個B/S架構的系統,主要提供人臉檢測功能用以實現班級學生簽到目標,簽到結果能自動生成并以報表形式展現,教師只需進行簡單的可選維護操作,包括班級學生信息、課堂簽到補錄信息等。
下面從人臉識別的實現、人機交互、數據庫的角度簡要介紹系統實現。
系統的核心功能是通過人臉識別技術完成對簽到人的身份識別。OpenCV 是一個開源的計算機視覺和機器學習庫,提供了豐富的視覺處理算法。有封裝好的API 可以直接調用。且對人臉識別問題提供了較完整的解決方案。
關于人臉識別的流程,采用先檢測再識別的方式完成,即在攝像頭捕捉的圖像中先檢測出有人臉,然后再用訓練好的分類器判斷是哪個人。OpenCV 對人臉檢測主要采用Adaboost 級聯分析器進行人臉檢測和識別。所謂級聯,就是將一系列簡單的分類器按順序串聯,每個分類器識別一個簡單的器官,例如鼻子、眼睛、嘴巴等,當所有都檢測成功后,才算檢測出人臉[4]。OpenCV 提供的Harr 級聯分類器可以支持人臉、微笑、眼睛與嘴巴檢測,可以通過加載預訓練好的Harr模型完成檢測。
人臉檢測成功后才進一步進行識別,OpenCV 提供了三種人臉識別器,分別為Eigenfaces、Fisherfaces 和LBPH。三種方法都是通過對比樣本的特征實現人臉識別,但提取特征的方法不同。由于Fisherfaces分類器具有灰度不變形和旋轉不變性等優(yōu)點,適用于課堂簽到場景,所以本系統選擇Fiserfaces 分類器。使用班級所有學生事前提供的頭像對分類器進行訓練,為提升識別率,每個學生采集的頭像數為三個。然后使用分類器對攝像頭捕捉到的簽到學生頭像進行識別,通過后即認為簽到成功。
由于系統涉及班級、學生及簽到信息,并要根據數據生成統計報表,所以用文件管理數據顯然無法滿足需求,只能使用數據庫管理數據。
MySQL 是目前最流行的關系型數據庫之一,對Web 應用支持良好,并且具有體積小、速度快、功能強大、開源免費的特點,所以本系統選用性價比高的MySQL數據庫。
由于本系統不僅教師本人使用,也可能供教務或輔導員使用,甚至可開放給學生查詢,所以人機交互界面不宜采用單機版客戶端,B/S架構更為合理。
Flask 是由Python 開發(fā)的輕量級的Web 框架,和其他類型的Web 框架(如Django)相比,Flask 更為靈活、系統的操作和瀏覽界面也很簡單,更為重要的一點是Flask 也支持Python 語言,這樣可簡化開發(fā)工作,盡量避免多語言開發(fā)。所以確定采用Flask實現Web服務。
本系統基于CV 技術,而Python 語言對CV的支持較好,并且有許多現成可用的庫可供使用,如OpenCV、Numpy、Flask,同時對MySQL的支持也很好,因此本系統最終選擇使用Python語言,具體開發(fā)環(huán)境如下:
Python 版本:3.9.13,OpenCV 版本:4.7.0,Numpy 版本:1.24.2,Flask 版本:2.2.3,IDE:PyCharm社區(qū)版2022.2.2,數據庫:MySQL。
課堂簽到管理是大學教學管理環(huán)節(jié)的重要一環(huán),傳統簽到方式、刷卡和智能手機簽到方式都存在不容忽視的問題。為此本文基于CV 技術,采用人臉識別方式,圍繞課堂簽到場景,設計全新的課堂簽到系統,具有簡單方便、防作弊、性價比高等優(yōu)點,并給出了具體實現方案,具有良好的推廣價值。
本系統應用過程中需關注合規(guī)問題,雖然學生的頭像信息在學校注冊時已提供給校方,但用于課堂簽到仍應得到學生的授權許可后才能使用。
系統實現仍有提升空間,可進一步優(yōu)化人機交互界面,實現微信小程序或APP 版本,使用起來較電腦更加方便;系統功能也有拓展空間??蓢@課堂場景,打造成為課堂教學管理AI 系統,比如增加學生課堂行為識別功能,進一步提升課堂教學管理效果。