劉 媛 陳小麗 屠增輝 謝志敏 鄭祎能
(華中科技大學(xué) 武漢 430074)
隨著社會經(jīng)濟(jì)和信息技術(shù)的發(fā)展,智能校園建設(shè)日益普及。教室場景下的人數(shù)統(tǒng)計是教學(xué)領(lǐng)域重要問題之一,基于課堂視頻數(shù)據(jù)統(tǒng)計教室人數(shù)方便教師了解學(xué)生到課率情況,同時也為學(xué)生尋找自習(xí)室提供了便利,學(xué)校也可以通過學(xué)生自習(xí)人數(shù)合理分配教室數(shù)量,在一定程度上避免了教室資源的浪費(fèi)。
主流人數(shù)統(tǒng)計方法可分為回歸方式進(jìn)行計數(shù)和目標(biāo)檢測識別計數(shù)。回歸方式不需要對單個個體進(jìn)行分割和識別跟蹤,通常是對某個人群進(jìn)行特征屬性提取,通過回歸函數(shù)將其和人數(shù)關(guān)系進(jìn)行映射估計[1],適用于人群密度較大的擁擠環(huán)境。隨著計算機(jī)技術(shù)的發(fā)展,利用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測的研究方法被廣泛應(yīng)用,人數(shù)統(tǒng)計可通過對某個場景下的所有個體、人頭或人臉進(jìn)行檢測識別得到,從而提升了人數(shù)統(tǒng)計的魯棒性和準(zhǔn)確率。陳久紅[2]等使用深度學(xué)習(xí)目標(biāo)檢測框架檢測人頭進(jìn)行人數(shù)統(tǒng)計并在自制數(shù)據(jù)集上驗證,最終得到的準(zhǔn)確率為89.4%;沈守娟[3]等在提出了在原有算法基礎(chǔ)上增加了目標(biāo)跟蹤算法來實(shí)時更正檢測結(jié)果,在CoCo數(shù)據(jù)集[4]上達(dá)到93.4%的精確度。
綜合上述方法以及考慮到教室場景存在高遮擋高密度問題,身體遮擋嚴(yán)重,通過檢測身體統(tǒng)計人數(shù)具有較大誤檢率和漏檢率;學(xué)生在課堂上也存在低頭記筆記或看書的情況,人臉檢測算法可能無法正常工作,使得人數(shù)統(tǒng)計準(zhǔn)確率較低。因此本文通過改進(jìn)高精度的人臉檢測算法RetinaFace[5],將人臉檢測遷移至人頭檢測,進(jìn)一步提高教室場景下人數(shù)統(tǒng)計準(zhǔn)確率。
目前主流的人數(shù)統(tǒng)計方法為目標(biāo)檢測統(tǒng)計法,通過識別人臉、人頭或單個人體,從而統(tǒng)計某個空間內(nèi)的總?cè)藬?shù)。該方法的關(guān)鍵問題是準(zhǔn)確提取目標(biāo)特征,傳統(tǒng)特征提取方法有Forstner算子、SUSAN算子和SIFT算子,均需要人工設(shè)計提取器且泛化能力較差。
隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,基于深度學(xué)習(xí)的特征提取網(wǎng)絡(luò)在實(shí)時性以及精度方面均優(yōu)于傳統(tǒng)方法,常見網(wǎng)絡(luò)如SSD、Faster R-CNN、YOLO等。楊璐[6]通過對視頻中采集的圖像進(jìn)行預(yù)處理與形態(tài)學(xué)運(yùn)算,提取人體輪廓特征進(jìn)而統(tǒng)計教室人數(shù),但該方法需要針對不同教室進(jìn)行不同的攝像機(jī)位置布局,靈活性及通用性較差;鄭國書[7]等通過深度學(xué)習(xí)SSD[8]網(wǎng)絡(luò)檢測教室內(nèi)人頭數(shù)量并進(jìn)行人數(shù)統(tǒng)計,對于小尺度的人頭檢測該模型具有較強(qiáng)的魯棒性和實(shí)時性,但SSD低級特征層數(shù)較小,無法充分提取頭部特征;陳久紅[2]等基于R-FCN[9]目標(biāo)檢測框架進(jìn)行了算法改進(jìn)并在自制數(shù)據(jù)集上驗證,最終得到的準(zhǔn)確率僅有89.4%;沈守娟[3]等基于YOLOv3及Deep-Sort目標(biāo)跟蹤算法實(shí)時更正目標(biāo)檢測結(jié)果,在CoCo數(shù)據(jù)集上達(dá)到93.4%的精確度,該方法在實(shí)時性和準(zhǔn)確率上均有較大的提升,但在遮擋程度較高的情況下仍無法準(zhǔn)確統(tǒng)計,距離實(shí)際應(yīng)用仍有一定距離。
教室內(nèi)人數(shù)統(tǒng)計的核心網(wǎng)絡(luò)為學(xué)生人臉或頭部檢測網(wǎng)絡(luò),輸入真實(shí)教室場景的圖片,輸出學(xué)生人臉或頭部檢測結(jié)果,并根據(jù)檢測到的數(shù)量進(jìn)行人數(shù)統(tǒng)計。現(xiàn)有人臉檢測算法的檢測精度已較為精確,然而教室場景下學(xué)生聽講過程中的頭部姿態(tài)情況較為復(fù)雜,在學(xué)生低頭或側(cè)頭的情況下,人臉檢測算法常常無法成功檢測到所有人臉,從而導(dǎo)致教室場景下人數(shù)統(tǒng)計結(jié)果誤差較大。如張杰[10]為解決教室場景下上述問題帶來的干擾,提出了對連續(xù)時間內(nèi)多幀教室圖像中的人臉檢測結(jié)果進(jìn)行綜合分析,在此基礎(chǔ)上進(jìn)行人數(shù)統(tǒng)計,從而降低了統(tǒng)計誤差,將誤差降至10%以內(nèi),但若能解決人臉遮擋情況下的識別問題,人臉檢測結(jié)果誤差將進(jìn)一步大幅度減小。
RetinaFace是自然場景下較為精確且高效的人臉檢測算法之一,人臉和頭部的長寬比例及大小非常相似,因此本文認(rèn)為將頭部替換人臉作為檢測目標(biāo)是可行的,并對原有RetinaFace算法進(jìn)行改進(jìn)來設(shè)計教室內(nèi)學(xué)生頭部檢測網(wǎng)絡(luò),并將改進(jìn)后網(wǎng)絡(luò)命名為RetinaStudent。該網(wǎng)絡(luò)結(jié)構(gòu)示意如圖1所示,輸入實(shí)際教室場景下的RGB圖像,輸出圖像中學(xué)生頭部檢測結(jié)果。

圖1 RetinaStudent網(wǎng)絡(luò)結(jié)構(gòu)圖
RetinaStudent網(wǎng)絡(luò)的目的是通過檢測學(xué)生頭部來統(tǒng)計教室內(nèi)人數(shù),本文采用經(jīng)過ImageNet[11]數(shù)據(jù)集預(yù)訓(xùn)練后的ResNeXt50[12]網(wǎng)絡(luò)為基礎(chǔ),來提取圖像特征。由于教室場景下目標(biāo)大小不會特別大,RetinaStudent網(wǎng)絡(luò)添加了C2、C3、C4、C5層共4個降采樣模塊,輸入網(wǎng)絡(luò)的圖像在每個降采樣模塊處理后,特征圖大小降低兩倍。由于低層網(wǎng)絡(luò)有相對豐富的圖像特征信息,而高層網(wǎng)絡(luò)有更強(qiáng)的語義性和分辨性,通過FPN融合四種不同尺度的特征,使網(wǎng)絡(luò)在教室場景下可以準(zhǔn)確檢測到不同尺度大小的目標(biāo)。FPN會產(chǎn)生較大的計算消耗,為在一定程度上減少網(wǎng)絡(luò)計算量,本文對于FPN的每層輸出只增加了一層語義模塊提升網(wǎng)絡(luò)感受野,并使用3*3卷積核進(jìn)行構(gòu)建。最終,網(wǎng)絡(luò)輸出檢測到的頭部置信度及位置信息。由于人臉和頭部的長寬比例及大小非常相似,因此本文網(wǎng)絡(luò)的anchor設(shè)置策略和RetinaFace保持一致。
本文網(wǎng)絡(luò)訓(xùn)練過程中anchor設(shè)置如下,將IoU大于0.5的設(shè)置為正樣本,小于0.3的則設(shè)置為負(fù)樣本,IoU值介于0.3~0.5之間的不參與網(wǎng)絡(luò)訓(xùn)練,但匹配過程中有大部分anchor被標(biāo)記為負(fù)樣本,使得正樣本的數(shù)量遠(yuǎn)低于負(fù)樣本,網(wǎng)絡(luò)訓(xùn)練存在嚴(yán)重的樣本不均衡問題。為解決上述問題,本文利用在線困難樣本挖掘(OHEM)策略,將所有被標(biāo)記為負(fù)樣本的anchor按照loss值從大到小排序,正樣本與負(fù)樣本按照1∶3的比例選擇相應(yīng)的數(shù)量進(jìn)行訓(xùn)練,有效緩解了上述樣本不均衡問題。
本文使用NVIDIA Tesla P100顯卡對RetinaStudent網(wǎng)絡(luò)進(jìn)行訓(xùn)練,網(wǎng)絡(luò)訓(xùn)練設(shè)置了SGD優(yōu)化 器,其 中momentum值 為0.9,weight decay為0.0005,初始學(xué)習(xí)率(learning rate)設(shè)置為0.01,每次迭代的數(shù)量大小為12,并采用熱啟動方式在10個迭代完成之后將學(xué)習(xí)率升至0.1,最后通過余弦退火策略(CosineAnnealingLR),將學(xué)習(xí)率逐漸降至0。在200輪訓(xùn)練過程中該網(wǎng)絡(luò)的總損失值變化如圖2所示,橫坐標(biāo)為訓(xùn)練的迭代次數(shù),縱坐標(biāo)為網(wǎng)絡(luò)的總損失值。由圖可知,該網(wǎng)絡(luò)在大約160次迭代后逐漸收斂。

圖2 RetinaStudent訓(xùn)練過程中損失值變化曲線
目標(biāo)檢測算法可分為兩大類,兩階段檢測算法和單階段檢測算法。RetinaStudent網(wǎng)絡(luò)同時進(jìn)行目標(biāo)定位和目標(biāo)分類任務(wù),屬于單階段檢測算法,因此本文通過一個適用于多任務(wù)的損失函數(shù)來優(yōu)化網(wǎng)絡(luò)參數(shù),RetinaStudent網(wǎng)絡(luò)的總損失值為定位任務(wù)和分類任務(wù)的損失值之和。
交叉熵通常用于表示兩個不同分布的距離,因此本文分類任務(wù)使用交叉熵?fù)p失函數(shù),目標(biāo)定位任務(wù)采用loss收斂穩(wěn)定且容易收斂到局部最優(yōu)的Smooth L1損失函數(shù),兩個任務(wù)的損失函數(shù)所占比例通過λ(本文中取值為2.0)進(jìn)行調(diào)節(jié)。根據(jù)3.2節(jié)中的anchor策略,正樣本需計算兩類損失,而負(fù)樣本只需要計算交叉熵?fù)p失,因此對于第i個anchor,多任務(wù)損失函數(shù)如式(1)所示。其中,Lcls為交叉熵?fù)p失函數(shù),pi是一個一維向量,用來表示RetinaStudent網(wǎng)絡(luò)對當(dāng)前樣本分類的預(yù)測結(jié)果,為當(dāng)前數(shù)據(jù)標(biāo)注值的one-hot表示。Lbox為Smooth L1損失函數(shù),ti表示網(wǎng)絡(luò)預(yù)測的偏移量,為當(dāng)前真實(shí)值。網(wǎng)絡(luò)訓(xùn)練一次迭代過程中的每個損失值累加即為本次迭代過程的總損失值。

本文對湖北某大學(xué)進(jìn)行課堂視頻錄制,采集了大量教室場景下的視頻,該視頻包含了多種具有真實(shí)意義的教學(xué)場景,如聽講場景,討論場景,回答問題場景等。從不同的課堂視頻中選出1043張和400張圖像分別作為RetinaStudent網(wǎng)絡(luò)的訓(xùn)練集和測試集。同時,為了測試該網(wǎng)絡(luò)模型的泛化能力,以上訓(xùn)練集和測試集中的圖像來自于不同的課堂視頻。
本文所收集的數(shù)據(jù)集StudentDetection共包含1443張圖像,無論學(xué)生是否露出臉部,每張圖像均標(biāo)注了學(xué)生完整的頭部區(qū)域,約79100個頭部數(shù)據(jù),數(shù)據(jù)集具體信息如表1所示,數(shù)據(jù)集圖像中的標(biāo)注示例如圖3所示。本文將數(shù)據(jù)集中圖像大小統(tǒng)一調(diào)整為640*640,為增強(qiáng)模型的泛化能力,對圖像進(jìn)行了隨機(jī)裁剪與翻轉(zhuǎn),同時隨機(jī)調(diào)整圖像的亮度、飽和度和對比度等再輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

表1 StudentDetection數(shù)據(jù)集標(biāo)注信息

圖3 StudentDetection數(shù)據(jù)集中的標(biāo)注示意圖
本節(jié)對RetinaStudent網(wǎng)絡(luò)訓(xùn)練后得到的模型進(jìn)行測試,并將本文算法與當(dāng)下表現(xiàn)較為優(yōu)異的算法進(jìn)行對比分析。由于RetinaStudent網(wǎng)絡(luò)是由專門進(jìn)行人臉檢測的RetinaFace算法改進(jìn)而來,因此本節(jié)首先對模型在公開數(shù)據(jù)集SCUT-HEAD上進(jìn)行人臉檢測到人頭檢測的遷移能力測試,同時與現(xiàn)有優(yōu)秀開源算法對比分析;其次在自制數(shù)據(jù)集StudentDetection上測試該模型在教室場景下對學(xué)生頭部的檢測性能,驗證該算法在真實(shí)教室場景下能否提升對學(xué)生頭部的檢測效果。學(xué)生頭部檢測的測試評價指標(biāo)選擇平均精準(zhǔn)率AP、精準(zhǔn)率Presicion和召回率Recall。該算法的教室人數(shù)統(tǒng)計能力測試評價指標(biāo)采用準(zhǔn)確率Accuracy。
4.2.1 RetinaStudent遷移能力測試
將本文模型在公開數(shù)據(jù)集SCUT-HEAD[13]上進(jìn)行測試,以驗證模型的泛化和遷移能力。SCUT-HEAD數(shù)據(jù)集包含真實(shí)教室場景和網(wǎng)絡(luò)資源圖像兩部分內(nèi)容,是一個較為豐富的頭部檢測數(shù)據(jù)集,共包含4405張圖像,111251個頭部區(qū)域,涵蓋有豐富的課堂場景,適合驗證模型的遷移能力。Peng D等人建立SCUT-HEAD數(shù)據(jù)集的同時,也提出了基于ResNet-50的頭部檢測算法R-FCN+FRN,并在SCUT-HEAD數(shù)據(jù)集上取得最優(yōu)檢測結(jié)果。因此本文將與R-FCN+FRN算法進(jìn)行對比測試,以檢測器的精準(zhǔn)率和召回率作為評價指標(biāo),測試結(jié)果如表2所示。該表共包含了6種檢測算法的測試結(jié)果,前4個算法是較為主流的檢測算法,D Peng等使用SCUT-HEAD數(shù)據(jù)集對這4種算法進(jìn)行訓(xùn)練并測試得到了結(jié)果。作者提出的R-FCN+FRN(ResNet-50)算法分別進(jìn)行了單尺度與多尺度的測試,從表中可以看出模型檢測效果在多尺度輸入情況下提升顯著,但采用單尺度輸入的RetinaStudent的精準(zhǔn)率與召回率在測試集上超越了其他所有算法,因此RetinaStudent作為人頭檢測算法的泛化能力與遷移能力較強(qiáng)。

表2 基于SCUT-HEAD數(shù)據(jù)集的測試結(jié)果詳情
4.2.2 RetinaStudent頭部檢測性能測試
本文使用NVIDIA Tesla P100顯卡對RetinaStudent頭部檢測模型進(jìn)行性能測試,通過平均精度AP與PR評價指標(biāo)衡量該模型的檢測效果。模型的輸入為原尺度的圖像,分別設(shè)置IoU匹配閾值為0.5和0.75。測試結(jié)果如表3所示,當(dāng)輸入圖像大小為1920*1080時,平均每張圖片頭部檢測時間為0.015s,當(dāng)IoU匹配閾值變大時,檢測準(zhǔn)確率有所下降,但仍有較高的準(zhǔn)確率。由此可見RetinaStudent有較高檢測精度和效率。

表3 RetinaStudent測試結(jié)果詳情
本文通過學(xué)生頭部的檢測結(jié)果來統(tǒng)計教室內(nèi)學(xué)生人數(shù),我們將檢測到的人頭數(shù)量作為相應(yīng)教室中的人數(shù)統(tǒng)計結(jié)果,并使用自制StudentDetection數(shù)據(jù)集對該算法在真實(shí)教室場景下的人數(shù)統(tǒng)計能力進(jìn)行測試,當(dāng)檢測結(jié)果與教室圖像中學(xué)生數(shù)量一致時將記為有效的統(tǒng)計結(jié)果。實(shí)驗結(jié)果表明本文使用RetinaStudent訓(xùn)練的頭部檢測模型應(yīng)用到教室人數(shù)統(tǒng)計場景時,其準(zhǔn)確率高達(dá)99.1%。
針對教室場景下的人數(shù)統(tǒng)計問題,本文通過人臉檢測結(jié)果統(tǒng)計教室內(nèi)人數(shù),提出的RetinaStudent網(wǎng)絡(luò)改進(jìn)了原RetinaFace網(wǎng)絡(luò),在學(xué)生因不同的頭部姿態(tài)而遮擋臉部情況下仍可以檢測人頭,該算法具有人臉檢測到人頭檢測的遷移能力,與現(xiàn)有人數(shù)統(tǒng)計方法相比較為簡潔且頭部檢測效率與精確度足以滿足日常需求;同時建立了教室場景下數(shù)據(jù)集StudentDetection,本文算法在該數(shù)據(jù)集上人數(shù)統(tǒng)計準(zhǔn)確率高達(dá)99.1%,解決了因?qū)W生頭部姿態(tài)影響導(dǎo)致的人數(shù)統(tǒng)計不精確問題。