劉 媛 陳小麗 屠增輝 謝志敏 鄭祎能
(華中科技大學(xué) 武漢 430074)
隨著社會經(jīng)濟和信息技術(shù)的發(fā)展,智能校園建設(shè)日益普及。教室場景下的人數(shù)統(tǒng)計是教學(xué)領(lǐng)域重要問題之一,基于課堂視頻數(shù)據(jù)統(tǒng)計教室人數(shù)方便教師了解學(xué)生到課率情況,同時也為學(xué)生尋找自習(xí)室提供了便利,學(xué)校也可以通過學(xué)生自習(xí)人數(shù)合理分配教室數(shù)量,在一定程度上避免了教室資源的浪費。
主流人數(shù)統(tǒng)計方法可分為回歸方式進行計數(shù)和目標檢測識別計數(shù)?;貧w方式不需要對單個個體進行分割和識別跟蹤,通常是對某個人群進行特征屬性提取,通過回歸函數(shù)將其和人數(shù)關(guān)系進行映射估計[1],適用于人群密度較大的擁擠環(huán)境。隨著計算機技術(shù)的發(fā)展,利用深度學(xué)習(xí)進行目標檢測的研究方法被廣泛應(yīng)用,人數(shù)統(tǒng)計可通過對某個場景下的所有個體、人頭或人臉進行檢測識別得到,從而提升了人數(shù)統(tǒng)計的魯棒性和準確率。陳久紅[2]等使用深度學(xué)習(xí)目標檢測框架檢測人頭進行人數(shù)統(tǒng)計并在自制數(shù)據(jù)集上驗證,最終得到的準確率為89.4%;沈守娟[3]等在提出了在原有算法基礎(chǔ)上增加了目標跟蹤算法來實時更正檢測結(jié)果,在CoCo數(shù)據(jù)集[4]上達到93.4%的精確度。
綜合上述方法以及考慮到教室場景存在高遮擋高密度問題,身體遮擋嚴重,通過檢測身體統(tǒng)計人數(shù)具有較大誤檢率和漏檢率;學(xué)生在課堂上也存在低頭記筆記或看書的情況,人臉檢測算法可能無法正常工作,使得人數(shù)統(tǒng)計準確率較低。因此本文通過改進高精度的人臉檢測算法RetinaFace[5],將人臉檢測遷移至人頭檢測,進一步提高教室場景下人數(shù)統(tǒng)計準確率。
目前主流的人數(shù)統(tǒng)計方法為目標檢測統(tǒng)計法,通過識別人臉、人頭或單個人體,從而統(tǒng)計某個空間內(nèi)的總?cè)藬?shù)。該方法的關(guān)鍵問題是準確提取目標特征,傳統(tǒng)特征提取方法有Forstner算子、SUSAN算子和SIFT算子,均需要人工設(shè)計提取器且泛化能力較差。
隨著卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,基于深度學(xué)習(xí)的特征提取網(wǎng)絡(luò)在實時性以及精度方面均優(yōu)于傳統(tǒng)方法,常見網(wǎng)絡(luò)如SSD、Faster R-CNN、YOLO等。楊璐[6]通過對視頻中采集的圖像進行預(yù)處理與形態(tài)學(xué)運算,提取人體輪廓特征進而統(tǒng)計教室人數(shù),但該方法需要針對不同教室進行不同的攝像機位置布局,靈活性及通用性較差;鄭國書[7]等通過深度學(xué)習(xí)SSD[8]網(wǎng)絡(luò)檢測教室內(nèi)人頭數(shù)量并進行人數(shù)統(tǒng)計,對于小尺度的人頭檢測該模型具有較強的魯棒性和實時性,但SSD低級特征層數(shù)較小,無法充分提取頭部特征;陳久紅[2]等基于R-FCN[9]目標檢測框架進行了算法改進并在自制數(shù)據(jù)集上驗證,最終得到的準確率僅有89.4%;沈守娟[3]等基于YOLOv3及Deep-Sort目標跟蹤算法實時更正目標檢測結(jié)果,在CoCo數(shù)據(jù)集上達到93.4%的精確度,該方法在實時性和準確率上均有較大的提升,但在遮擋程度較高的情況下仍無法準確統(tǒng)計,距離實際應(yīng)用仍有一定距離。
教室內(nèi)人數(shù)統(tǒng)計的核心網(wǎng)絡(luò)為學(xué)生人臉或頭部檢測網(wǎng)絡(luò),輸入真實教室場景的圖片,輸出學(xué)生人臉或頭部檢測結(jié)果,并根據(jù)檢測到的數(shù)量進行人數(shù)統(tǒng)計?,F(xiàn)有人臉檢測算法的檢測精度已較為精確,然而教室場景下學(xué)生聽講過程中的頭部姿態(tài)情況較為復(fù)雜,在學(xué)生低頭或側(cè)頭的情況下,人臉檢測算法常常無法成功檢測到所有人臉,從而導(dǎo)致教室場景下人數(shù)統(tǒng)計結(jié)果誤差較大。如張杰[10]為解決教室場景下上述問題帶來的干擾,提出了對連續(xù)時間內(nèi)多幀教室圖像中的人臉檢測結(jié)果進行綜合分析,在此基礎(chǔ)上進行人數(shù)統(tǒng)計,從而降低了統(tǒng)計誤差,將誤差降至10%以內(nèi),但若能解決人臉遮擋情況下的識別問題,人臉檢測結(jié)果誤差將進一步大幅度減小。
RetinaFace是自然場景下較為精確且高效的人臉檢測算法之一,人臉和頭部的長寬比例及大小非常相似,因此本文認為將頭部替換人臉作為檢測目標是可行的,并對原有RetinaFace算法進行改進來設(shè)計教室內(nèi)學(xué)生頭部檢測網(wǎng)絡(luò),并將改進后網(wǎng)絡(luò)命名為RetinaStudent。該網(wǎng)絡(luò)結(jié)構(gòu)示意如圖1所示,輸入實際教室場景下的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ǔ),來提取圖像特征。由于教室場景下目標大小不會特別大,RetinaStudent網(wǎng)絡(luò)添加了C2、C3、C4、C5層共4個降采樣模塊,輸入網(wǎng)絡(luò)的圖像在每個降采樣模塊處理后,特征圖大小降低兩倍。由于低層網(wǎng)絡(luò)有相對豐富的圖像特征信息,而高層網(wǎng)絡(luò)有更強的語義性和分辨性,通過FPN融合四種不同尺度的特征,使網(wǎng)絡(luò)在教室場景下可以準確檢測到不同尺度大小的目標。FPN會產(chǎn)生較大的計算消耗,為在一定程度上減少網(wǎng)絡(luò)計算量,本文對于FPN的每層輸出只增加了一層語義模塊提升網(wǎng)絡(luò)感受野,并使用3*3卷積核進行構(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è)置為負樣本,IoU值介于0.3~0.5之間的不參與網(wǎng)絡(luò)訓(xùn)練,但匹配過程中有大部分anchor被標記為負樣本,使得正樣本的數(shù)量遠低于負樣本,網(wǎng)絡(luò)訓(xùn)練存在嚴重的樣本不均衡問題。為解決上述問題,本文利用在線困難樣本挖掘(OHEM)策略,將所有被標記為負樣本的anchor按照loss值從大到小排序,正樣本與負樣本按照1∶3的比例選擇相應(yīng)的數(shù)量進行訓(xùn)練,有效緩解了上述樣本不均衡問題。
本文使用NVIDIA Tesla P100顯卡對RetinaStudent網(wǎng)絡(luò)進行訓(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所示,橫坐標為訓(xùn)練的迭代次數(shù),縱坐標為網(wǎng)絡(luò)的總損失值。由圖可知,該網(wǎng)絡(luò)在大約160次迭代后逐漸收斂。
圖2 RetinaStudent訓(xùn)練過程中損失值變化曲線
目標檢測算法可分為兩大類,兩階段檢測算法和單階段檢測算法。RetinaStudent網(wǎng)絡(luò)同時進行目標定位和目標分類任務(wù),屬于單階段檢測算法,因此本文通過一個適用于多任務(wù)的損失函數(shù)來優(yōu)化網(wǎng)絡(luò)參數(shù),RetinaStudent網(wǎng)絡(luò)的總損失值為定位任務(wù)和分類任務(wù)的損失值之和。
交叉熵通常用于表示兩個不同分布的距離,因此本文分類任務(wù)使用交叉熵損失函數(shù),目標定位任務(wù)采用loss收斂穩(wěn)定且容易收斂到局部最優(yōu)的Smooth L1損失函數(shù),兩個任務(wù)的損失函數(shù)所占比例通過λ(本文中取值為2.0)進行調(diào)節(jié)。根據(jù)3.2節(jié)中的anchor策略,正樣本需計算兩類損失,而負樣本只需要計算交叉熵損失,因此對于第i個anchor,多任務(wù)損失函數(shù)如式(1)所示。其中,Lcls為交叉熵損失函數(shù),pi是一個一維向量,用來表示RetinaStudent網(wǎng)絡(luò)對當前樣本分類的預(yù)測結(jié)果,為當前數(shù)據(jù)標注值的one-hot表示。Lbox為Smooth L1損失函數(shù),ti表示網(wǎng)絡(luò)預(yù)測的偏移量,為當前真實值。網(wǎng)絡(luò)訓(xùn)練一次迭代過程中的每個損失值累加即為本次迭代過程的總損失值。
本文對湖北某大學(xué)進行課堂視頻錄制,采集了大量教室場景下的視頻,該視頻包含了多種具有真實意義的教學(xué)場景,如聽講場景,討論場景,回答問題場景等。從不同的課堂視頻中選出1043張和400張圖像分別作為RetinaStudent網(wǎng)絡(luò)的訓(xùn)練集和測試集。同時,為了測試該網(wǎng)絡(luò)模型的泛化能力,以上訓(xùn)練集和測試集中的圖像來自于不同的課堂視頻。
本文所收集的數(shù)據(jù)集StudentDetection共包含1443張圖像,無論學(xué)生是否露出臉部,每張圖像均標注了學(xué)生完整的頭部區(qū)域,約79100個頭部數(shù)據(jù),數(shù)據(jù)集具體信息如表1所示,數(shù)據(jù)集圖像中的標注示例如圖3所示。本文將數(shù)據(jù)集中圖像大小統(tǒng)一調(diào)整為640*640,為增強模型的泛化能力,對圖像進行了隨機裁剪與翻轉(zhuǎn),同時隨機調(diào)整圖像的亮度、飽和度和對比度等再輸入網(wǎng)絡(luò)進行訓(xùn)練。
表1 StudentDetection數(shù)據(jù)集標注信息
圖3 StudentDetection數(shù)據(jù)集中的標注示意圖
本節(jié)對RetinaStudent網(wǎng)絡(luò)訓(xùn)練后得到的模型進行測試,并將本文算法與當下表現(xiàn)較為優(yōu)異的算法進行對比分析。由于RetinaStudent網(wǎng)絡(luò)是由專門進行人臉檢測的RetinaFace算法改進而來,因此本節(jié)首先對模型在公開數(shù)據(jù)集SCUT-HEAD上進行人臉檢測到人頭檢測的遷移能力測試,同時與現(xiàn)有優(yōu)秀開源算法對比分析;其次在自制數(shù)據(jù)集StudentDetection上測試該模型在教室場景下對學(xué)生頭部的檢測性能,驗證該算法在真實教室場景下能否提升對學(xué)生頭部的檢測效果。學(xué)生頭部檢測的測試評價指標選擇平均精準率AP、精準率Presicion和召回率Recall。該算法的教室人數(shù)統(tǒng)計能力測試評價指標采用準確率Accuracy。
4.2.1 RetinaStudent遷移能力測試
將本文模型在公開數(shù)據(jù)集SCUT-HEAD[13]上進行測試,以驗證模型的泛化和遷移能力。SCUT-HEAD數(shù)據(jù)集包含真實教室場景和網(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算法進行對比測試,以檢測器的精準率和召回率作為評價指標,測試結(jié)果如表2所示。該表共包含了6種檢測算法的測試結(jié)果,前4個算法是較為主流的檢測算法,D Peng等使用SCUT-HEAD數(shù)據(jù)集對這4種算法進行訓(xùn)練并測試得到了結(jié)果。作者提出的R-FCN+FRN(ResNet-50)算法分別進行了單尺度與多尺度的測試,從表中可以看出模型檢測效果在多尺度輸入情況下提升顯著,但采用單尺度輸入的RetinaStudent的精準率與召回率在測試集上超越了其他所有算法,因此RetinaStudent作為人頭檢測算法的泛化能力與遷移能力較強。
表2 基于SCUT-HEAD數(shù)據(jù)集的測試結(jié)果詳情
4.2.2 RetinaStudent頭部檢測性能測試
本文使用NVIDIA Tesla P100顯卡對RetinaStudent頭部檢測模型進行性能測試,通過平均精度AP與PR評價指標衡量該模型的檢測效果。模型的輸入為原尺度的圖像,分別設(shè)置IoU匹配閾值為0.5和0.75。測試結(jié)果如表3所示,當輸入圖像大小為1920*1080時,平均每張圖片頭部檢測時間為0.015s,當IoU匹配閾值變大時,檢測準確率有所下降,但仍有較高的準確率。由此可見RetinaStudent有較高檢測精度和效率。
表3 RetinaStudent測試結(jié)果詳情
本文通過學(xué)生頭部的檢測結(jié)果來統(tǒng)計教室內(nèi)學(xué)生人數(shù),我們將檢測到的人頭數(shù)量作為相應(yīng)教室中的人數(shù)統(tǒng)計結(jié)果,并使用自制StudentDetection數(shù)據(jù)集對該算法在真實教室場景下的人數(shù)統(tǒng)計能力進行測試,當檢測結(jié)果與教室圖像中學(xué)生數(shù)量一致時將記為有效的統(tǒng)計結(jié)果。實驗結(jié)果表明本文使用RetinaStudent訓(xùn)練的頭部檢測模型應(yīng)用到教室人數(shù)統(tǒng)計場景時,其準確率高達99.1%。
針對教室場景下的人數(shù)統(tǒng)計問題,本文通過人臉檢測結(jié)果統(tǒng)計教室內(nèi)人數(shù),提出的RetinaStudent網(wǎng)絡(luò)改進了原RetinaFace網(wǎng)絡(luò),在學(xué)生因不同的頭部姿態(tài)而遮擋臉部情況下仍可以檢測人頭,該算法具有人臉檢測到人頭檢測的遷移能力,與現(xiàn)有人數(shù)統(tǒng)計方法相比較為簡潔且頭部檢測效率與精確度足以滿足日常需求;同時建立了教室場景下數(shù)據(jù)集StudentDetection,本文算法在該數(shù)據(jù)集上人數(shù)統(tǒng)計準確率高達99.1%,解決了因?qū)W生頭部姿態(tài)影響導(dǎo)致的人數(shù)統(tǒng)計不精確問題。