楊長凡 , 呂夢鴿 , 周澤宇 , 張子騰 , 趙彤陽 , 趙 桐
(中國礦業(yè)大學(xué),北京 100083)
如今高校大部分仍采用傳統(tǒng)點(diǎn)名簽到的方式統(tǒng)計(jì)學(xué)生的出勤狀況,這存在著許多隱藏問題,例如消耗人力且效率低下,以及人工點(diǎn)名可能存在“放水”的包庇行為,無法約束學(xué)生課堂遲到或早退等行為,大多數(shù)考勤資料以紙質(zhì)形式保存,難以進(jìn)行統(tǒng)計(jì),容易遺失等。對于高等院校來說,教學(xué)的秩序和質(zhì)量至關(guān)重要。在課堂環(huán)節(jié),學(xué)生是主體,學(xué)生對課堂內(nèi)容的專注程度極其重要。然而,目前老師只能通過課堂隨機(jī)提問或者觀察的方式來實(shí)時(shí)地獲取學(xué)生課堂專注度的情況,這種方式易使老師分心,從而影響教學(xué)質(zhì)量。綜合學(xué)生、老師和高校三方面考慮,找到一種高效的課堂考勤方法是十分有必要的。
隨著深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)的發(fā)展,人臉檢測技術(shù)越來越多地在身份核驗(yàn)、大數(shù)據(jù)統(tǒng)計(jì)等信息工程領(lǐng)域廣泛應(yīng)用,各種檢測算法如雨后春筍一般涌現(xiàn)[1-2]。2001年,文獻(xiàn)[3-4]提出了Viola-Jones檢測器,在AdaBoost算法的基礎(chǔ)上,使用Haar-like小波特征和積分圖方法進(jìn)行人臉檢測,設(shè)計(jì)了針對人臉檢測更有效的特征,并對AdaBoost訓(xùn)練出的強(qiáng)分類器進(jìn)行級聯(lián)。文獻(xiàn)[5]將Viola-Jones檢測器進(jìn)行了擴(kuò)展,形成了OpenCV現(xiàn)在的Haar分類器。近年來,人臉檢測領(lǐng)域常用的算法有DeepFace、FaceNet、SphereNet和InsightFace[6-9]等。InsightFace[9]算法提出ArcFace 損失函數(shù),將角度距離作為分類依據(jù),提高了準(zhǔn)確率。RetinaFace[10]是目前最強(qiáng)的開源人臉檢測算法,它提出了一種新型像素智能人臉定位方法,采用多任務(wù)學(xué)習(xí)策略同時(shí)預(yù)測人臉分?jǐn)?shù)、面部框、五個(gè)面部標(biāo)志點(diǎn)和三維位置。本文借助課堂監(jiān)控視頻,利用RetinaFace算法設(shè)計(jì)了一種多層次評價(jià)等級的課堂考勤方法,旨在進(jìn)一步提高課堂考勤的效率。
RetinaFace是一種魯棒的單級人臉檢測算法,該算法利用聯(lián)合監(jiān)督和自我監(jiān)督的多任務(wù)學(xué)習(xí),實(shí)現(xiàn)在各種人臉尺度上執(zhí)行像素級的人臉定位。使用輕量級主干網(wǎng)絡(luò)——Mobilenet-0.25,使其可以在VGA分辨率的圖片上實(shí)時(shí)運(yùn)行,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 RetinaFace算法網(wǎng)絡(luò)結(jié)構(gòu)示意圖
RetinaFace的特征提取網(wǎng)絡(luò)采用P2~P6的特征金字塔層,其中P2~P5通過使用自頂向下和橫向連接計(jì)算相應(yīng)的ResNet殘差階段C2~C5的輸出。P6是在C5處通過一個(gè)步長為2的3×3卷積計(jì)算得到的。C1~C5使用了在ImageNet-11k數(shù)據(jù)集上預(yù)先訓(xùn)練好的ResNet-152分類網(wǎng)絡(luò),P6是通過“Xavier”方法隨機(jī)初始化得到的。它將P2~P6五個(gè)特征金字塔層應(yīng)用于五個(gè)獨(dú)立的上下文模塊,來提高感受野的作用,同時(shí)增加剛性上下文建模的能力。
對于任意一個(gè)訓(xùn)練的錨點(diǎn)i,多任務(wù)損失函數(shù)定義為:
其中,Lcls(pi,pi*)是人臉的分類損失函數(shù),pi是第i個(gè)錨點(diǎn)框中一個(gè)人臉的預(yù)測概率,pi*為1表示正錨點(diǎn)框,反之為0代表負(fù)錨點(diǎn)框。Lbox(ti,ti*)為人臉檢測框的回歸損失函數(shù),其中ti={tx,ty,tw,th,}i和ti*={tx*,ty*,tw*,th*,}i代表與正錨相關(guān)的預(yù)測框和真實(shí)框的坐標(biāo)。Lpts(li,li*)為人臉密集點(diǎn)回歸損失函數(shù)。損失平衡調(diào)節(jié)參數(shù)λ1~λ3分別設(shè)置為0.25、0.1和0.01,增加檢測框和面部標(biāo)志位置的顯著性。
RetinaFace在P2~P6特征金字塔級別上使用特定比例的錨點(diǎn),如表1所示。
表1 細(xì)節(jié)特征金字塔
其中P2通過平鋪尺寸小的錨點(diǎn)來捕獲微小的面部,以花費(fèi)更多的計(jì)算時(shí)間,承擔(dān)更多的誤報(bào)風(fēng)險(xiǎn)作為代價(jià)。
目前常用的人臉檢測數(shù)據(jù)集為WiderFace數(shù)據(jù)集,但是WiderFace中圖片的場景跨度、人臉位置變化較大,圖片之間獨(dú)立性較強(qiáng),與課堂環(huán)境中的區(qū)別較大。由于沒有公開的課堂環(huán)境中人臉數(shù)據(jù)集,本文在真實(shí)的課堂環(huán)境中錄制視頻并將其截取成圖像,進(jìn)行數(shù)據(jù)采集。筆者選擇電氣工程及其自動化專業(yè)的專業(yè)核心必修課“電機(jī)與拖動”(以下簡稱電機(jī)課),以及計(jì)算機(jī)科學(xué)與工程專業(yè)的學(xué)科基礎(chǔ)必修課“電工原理”(以下簡稱電工課),在課堂上分別錄制了709s和256s的視頻。
由于課堂環(huán)境較為單一,人臉位置變化較小,本文選定時(shí)間間隔為5s,即每隔5s從視頻中提取一張圖片作為本文的數(shù)據(jù)集。電機(jī)課與電工課分別得到142張和52張照片,并對每張照片進(jìn)行了標(biāo)注,兩種課程的樣本圖片如圖2、圖3所示。
圖2 電機(jī)課樣本示意圖
圖3 電工課樣本示意圖
筆者借助Mobilenet-0.25的 RetinaFace 算法[10],基于Pytorch深度學(xué)習(xí)框架,采用python 3.7進(jìn)行編程。硬件配置包括Intel(R)Core(TM) i7-8550U@1.80 GHz,GPU為NVDIA GeForce MX130,RAM為24 GB。
電機(jī)課和電工課的檢測結(jié)果,即人臉坐標(biāo)和五點(diǎn)信息,如圖4、圖5所示。由圖可知,圖片中存在部分人臉未檢出現(xiàn)象。主要考慮如下3點(diǎn)原因:
1)視頻的錄制角度問題,導(dǎo)致許多后排的學(xué)生經(jīng)常被遮擋,甚至前排的學(xué)生也會被“完全”遮擋;
2)畫面內(nèi)的人臉數(shù)量較少,畫面邊緣的人臉,會出現(xiàn)時(shí)而在鏡頭內(nèi),時(shí)而不在鏡頭內(nèi)的情況;
3)受拍攝設(shè)備的限制,后排、角落中學(xué)生的人臉部位較為模糊,亦或相機(jī)失焦、偶爾的局部亮度過低等,都會導(dǎo)致算法檢測不出人臉,導(dǎo)致了誤差。
綜合上述誤差分析,為了更好地計(jì)算課堂出勤率,刪去了3個(gè)由于坐在后排,臉部經(jīng)常被遮擋或頻繁不在鏡頭內(nèi)的學(xué)生圖像,單個(gè)位置檢出率低于30%的人臉位置,重新進(jìn)行人臉檢測,最后通過所有畫面中的總方框數(shù)除以總檢測到的人數(shù)進(jìn)行計(jì)算,得到的總檢出率為81.20%。
圖4 電機(jī)課檢測結(jié)果示意圖
圖5 電工課檢測結(jié)果示意圖
根據(jù)拍攝到的畫面及教室的比例,選擇電機(jī)課和電工課圖片中的應(yīng)到人數(shù)為班級總?cè)藬?shù)的四分之一,即22人和15人,并以此給出課堂出勤率的計(jì)算方法。
根據(jù)2.2節(jié)中的檢測結(jié)果,提出3種計(jì)數(shù)方案。
1)比較所有圖片中的人臉數(shù)量,取數(shù)量最小的數(shù)值作為最終的出勤人數(shù)。視頻中有些人坐在教室的后排或邊緣,經(jīng)常不抬頭,甚至整堂課持續(xù)趴在桌上,這種情況將其記錄為未出勤。經(jīng)計(jì)算得到,電機(jī)課與電工課檢測出的人數(shù)最小值分別為10人和8人,對應(yīng)的出勤率分別為45.5%和53.3%。
但同時(shí),由于存在人臉被遮擋、攝像頭清晰度不高等原因所致的未檢測到的情況,以最小值作為最終結(jié)果而不將其計(jì)入考勤,這種考勤方法顯得有些嚴(yán)苛。
2)比較所有圖片中的人臉數(shù)量,取數(shù)量最大的數(shù)值作為最終的出勤人數(shù)。取最大值作為最終結(jié)果,這種方法能夠彌補(bǔ)由于設(shè)備和算法問題而帶來的漏檢。經(jīng)計(jì)算得到,電機(jī)課與電工課檢測出的人數(shù)最大值分別為17人和11人,對應(yīng)的出勤率分別為77.3%和73.3%。
但是這種檢測方法,無法檢出學(xué)生遲到早退的現(xiàn)象,也就是說,只要檢測到一次全班同學(xué)都在的情況,本堂課即被記為全勤,如果中間有學(xué)生溜走,最終結(jié)果也不會有所變化。
3)因此提出了第3種方法,比較每張圖片中的人臉數(shù)量,取出現(xiàn)次數(shù)最多的數(shù)值作為最終的出勤人數(shù),即眾數(shù)的概念。這樣可以有效避免取最小值、最大值帶來的漏檢、多檢和忽略遲到早退的現(xiàn)象,可以反映出較為真實(shí)的課堂出勤情況。經(jīng)計(jì)算得,電機(jī)課與電工課檢測出人數(shù)的眾數(shù)分別為14人和10人,對應(yīng)的出勤率分別為63.6%和66.7%。
采用最大值、最小值和眾數(shù)的計(jì)數(shù)方法較為籠統(tǒng)、單一。于是,筆者提出了一種多層次的評價(jià)標(biāo)準(zhǔn),可以將出勤情況分為多個(gè)等級,從而靈活地進(jìn)行課堂考勤,為智能化課堂考勤提供一種新的可解思路。
分別根據(jù)電機(jī)課和電工課得到的142張和52張圖片,按照一定的間距,在盡可能跨越全部圖片的原則下,均勻地抽取五組連續(xù)圖片,最終確定電機(jī)課和電工課每組圖片的數(shù)量分別為5張和3張。這樣就得到了一個(gè)縮小后的數(shù)據(jù)集,并依此來進(jìn)行考勤統(tǒng)計(jì)。抽取圖片均勻跨越了整個(gè)課堂視頻的始終,數(shù)據(jù)集可信度高,可以將其視為整個(gè)課堂的真實(shí)情況。
對電機(jī)課的5張照片進(jìn)行處理,若該位置有檢測框,即記為1,若沒有則記為0。若該位置在5張圖片中只要出現(xiàn)一次人臉框,即算作本組中出現(xiàn),接著將得到的5組結(jié)果進(jìn)行求和,得到最終的評價(jià)值。這樣記錄考勤,可以有效記錄到遲到早退的情況,即使遲到早退,也有分值被記錄,不會被單純地算作未出勤,同時(shí)也不會被絕對地否定,即一次都沒被相機(jī)抓拍到即記作未出勤。設(shè)定5表示優(yōu)秀,4代表良好,3為一般,0~2則為較差。其中,5分和4分都能很好地表明該位置上的同學(xué)本堂課認(rèn)真聽課,沒有缺勤的情況。3分則表示,該位置上的同學(xué)可能有遲到、早退的現(xiàn)象,亦或是在教室的角落玩手機(jī)、睡覺等,聽課效果不佳。0分~2分的情況,老師可以根據(jù)自己的標(biāo)準(zhǔn),來判定該位置上的同學(xué),本堂課算作出勤還是缺勤。將所有位置上同學(xué)的得分取平均值,即可得到本堂課的綜合評價(jià)分?jǐn)?shù)。經(jīng)計(jì)算得,電機(jī)課和電工課的得分分別是4.78分和4.55分,均為優(yōu)秀。
經(jīng)綜合評價(jià)可知,電機(jī)課的最終得分總體上是略高于電工課的??紤]是由于電機(jī)課為該專業(yè)的核心必修課,而電工課則為大類必修課。電機(jī)課的課程性質(zhì)較電工課更重要,難度更大,學(xué)生心里更加重視,因此出勤率更高。
借助Retinaface算法,提出了一種基于人臉檢測的多等級評價(jià)的課堂考勤方法。該方法對真實(shí)課堂的畫面分時(shí)間段、分組進(jìn)行人臉檢測,將各組之間的檢測情況求和,得到該位置上同學(xué)本堂課的出勤表現(xiàn)得分。設(shè)定優(yōu)秀、良好、一般、較差四個(gè)等級反饋給授課教師,依此作為本堂課每個(gè)位置同學(xué)的出勤及聽課情況的評判標(biāo)準(zhǔn)。經(jīng)計(jì)算得,電機(jī)課和電工課的最終得分分別為4.78分和4.55分,均為優(yōu)秀。在下一步的研究中,準(zhǔn)備將人臉比對與識別加入算法中,即可給出每名同學(xué)的出勤情況統(tǒng)計(jì)表,同時(shí),進(jìn)一步優(yōu)化網(wǎng)絡(luò),訓(xùn)練自己的網(wǎng)絡(luò)模型,提高課堂環(huán)境中人臉的檢測能力和檢測效率。