劉 健,陳 亮
(沈陽理工大學(xué)自動化與電氣工程學(xué)院,沈陽 110159)
傳統(tǒng)課堂上,教師通過觀察學(xué)生上課狀態(tài)以及作業(yè)的完成情況等很難全面、系統(tǒng)地觀察到所有學(xué)生,且不具有實時性,教學(xué)效果得不到及時反饋。 計算機視覺技術(shù)日益發(fā)展,傳統(tǒng)的特征提取算法有SIFT 算法[1]和ORB 算法[2];傳統(tǒng)的分類算法有支持向量機(Support vector machine,SVM)等。 傳統(tǒng)方法中同一類物體在圖像中呈現(xiàn)不同的狀態(tài)時,僅依靠人為設(shè)定的特征模板難以獲得較好的檢測效果。
伴隨人工智能和深度學(xué)習(xí)技術(shù)的快速發(fā)展,國內(nèi)外學(xué)者逐漸開始將深度學(xué)習(xí)模型與學(xué)生行為檢測相結(jié)合。 Girshick 等[3]提出了區(qū)域卷積網(wǎng)絡(luò)(Region-based Convolutiona Network,R-CNN)、快速區(qū)域卷積網(wǎng)絡(luò)Fast-RCNN[4]和Faster-RCNN[5]系列二階段檢測算法。 在目標(biāo)檢測領(lǐng)域,由于RCNN 系列需要對每張圖片進行特征框的提取,檢測時間長,且對于多尺度、小目標(biāo)的檢測仍存在檢測精度問題,實際應(yīng)用性不高。 He 等[6]提出殘差網(wǎng)絡(luò),解決深層網(wǎng)絡(luò)中梯度消失問題,但當(dāng)網(wǎng)絡(luò)深度過深時,會出現(xiàn)網(wǎng)絡(luò)退化。
周波等[7]提出了三維全卷積網(wǎng)絡(luò),但因其算法參數(shù)過多,數(shù)據(jù)集有限,容易過擬合。 董琪琪等[8]提出一種SSD 的改進算法結(jié)合聚類算法K-means,對教室學(xué)生數(shù)據(jù)集的檢測有較高的精度與速度,但對遮擋情況的檢測存在一定的缺陷。 王毅等[9]提出一種三維卷積與雙向長短期記憶算法(LSTM)結(jié)合的行為分類算法,該算法在人類動作視頻數(shù)據(jù)集HMDB-51 和動作識別數(shù)據(jù)集UCF-101 上表現(xiàn)良好,但算法要提高檢測速度有很大的難度。 上述方法通常存在識別精度差、檢測速度慢以及模型訓(xùn)練費時的缺點,對于教室學(xué)生目標(biāo)眾多、分布復(fù)雜、存在遮擋等情況,很難達到檢測的實時性,不符合本研究對教室學(xué)生行為分類的要求。
本文結(jié)合目標(biāo)檢測和目標(biāo)識別算法的研究現(xiàn)狀,提出一種基于一階段檢測算法YOLOv4 的深度學(xué)習(xí)網(wǎng)絡(luò)模型,將輕量化的神經(jīng)網(wǎng)絡(luò)模型MobileNetV3 替代主干網(wǎng)絡(luò)CSPDarknet53,達到簡化網(wǎng)絡(luò)結(jié)構(gòu)的目的,并使用聚類算法K-means 對自制數(shù)據(jù)集進行優(yōu)化,提升網(wǎng)絡(luò)對學(xué)生行為分類的速度、檢測精度以及對學(xué)生行為檢測的實時性。
以還原真實課堂為基準(zhǔn),本文采用的圖像采集自高校教室,以增加模型的泛化能力和數(shù)據(jù)集的普適性。 通過選取不同專業(yè)、不同課程的課堂視頻,并對視頻進行篩查,去除模糊、障礙物遮擋等部分,形成原始數(shù)據(jù)集。
研究選用計算機視覺PASCAL VOC 數(shù)據(jù)集格式制作數(shù)據(jù)集。 首先利用軟件Adobe premiere將監(jiān)控視頻轉(zhuǎn)換成圖像的格式,為呈現(xiàn)課堂的實時性,每10 秒選取一張圖片,使用標(biāo)注工具LabelImg 對圖片中的學(xué)生目標(biāo)進行手工標(biāo)注矩形框。課堂中學(xué)生行為劃分為studying(學(xué)習(xí))、sleeping(睡覺)、talking(講話)和 playing(玩手機)四類,得到標(biāo)簽文件用于訓(xùn)練。
YOLOV4 模型由主干、身體和頭部三部分組成,主干選用特征提取網(wǎng)絡(luò)CSPDarknet53、身體為空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling,SPP)與路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet), 頭 部 延 續(xù) YOLOv3[10]分 類 網(wǎng) 絡(luò)。YOLOV4 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。 在主干特征提取網(wǎng)絡(luò)中Resblock_body 模塊由卷積層和殘差層組成;在PANet 中,將輸入的特征圖轉(zhuǎn)化為不同尺度的特征圖并與原特征圖進行堆疊(Concat),擴大卷積的感受野;頭部采用兩次卷積操作,實現(xiàn)檢測輸出。 YOLOv4 網(wǎng)絡(luò)在訓(xùn)練中使用余弦退火學(xué)習(xí)率、數(shù)據(jù)增強和遺傳算法等策略,進一步減少總體損失,可增強教室學(xué)生目標(biāo)檢測的魯棒性。
圖1 YOLOv4 網(wǎng)絡(luò)結(jié)構(gòu)圖
選用MobileNetV3作為骨干網(wǎng)絡(luò),可以在損失精度極小的同時,模型訓(xùn)練的參數(shù)量大幅度降低,具有輕量化結(jié)構(gòu)、體積小、計算量少等優(yōu)點[11]。 幾種模型對比如表1 所示,與VGG16[12]模型相比,參數(shù)量僅為其1/40,與GoogleNet[13]和MobileNetV2[14]模型相比,參數(shù)量約縮小1/2。
表1 模型性能對比
傳統(tǒng)卷積過程中單通道對應(yīng)一個輸出通道,將各通道的輸入特征圖與相應(yīng)的卷積核分別作卷積操作后相加,之后輸出特征,其運算量N1 為
式中:DK為卷積核的寬;M為輸入通道數(shù);N為輸出通道數(shù);Dw、Dh分別為輸入圖片的高和寬。
深度可分離卷積由深度卷積和逐點卷積組成,首先經(jīng)過大小為3 ×3 的卷積核進行深度卷積,使通道和卷積核一一對應(yīng),之后經(jīng)過一個大小為1 ×1 的逐點卷積進行降維操作,生成特征圖。深度可分離卷積的運算量N2 為
N1 與N2 二者之間計算量的對比為
由式(3)可知,訓(xùn)練后網(wǎng)絡(luò)的計算量和參數(shù)量理論上可以縮小為原來的1/9,優(yōu)化了模型大小,可有效提高檢測速度。
YOLOv4 較之前版本在檢測精度和速度上有了大幅度的提升,但其采用的CSPDarkNet53 主干網(wǎng)絡(luò)架構(gòu)中存在大量的殘差模塊,會冗余大量的訓(xùn)練參數(shù),耗時較長,不能滿足分析學(xué)生課堂行為對實時性的要求,在移動設(shè)備端應(yīng)用有較大的難度。 針對以上問題,以 YOLOv4 網(wǎng)絡(luò)模型為基礎(chǔ)進行改進,圖2 為改進后網(wǎng)絡(luò)結(jié)構(gòu)圖,以輕量化MobileNetV3 替換原有的 CSPDarkNet53 模型,其中bneck 模塊包括逆殘差層和兩個全連接層,輸出端采用YOLOv3 分類方式,經(jīng)過卷積層,輸出大、中、小三個尺度的特征圖。 由式(3)可知,使用深度可分離卷積后計算量及參數(shù)量得到有效降低,可提高YOLOv4 模型的檢測速度。
圖2 輕量化YOLOv4 網(wǎng)絡(luò)模型
本文提出的輕量化YOLOv4 損失函數(shù)中類別損失采用回歸損失CIOU 替代YOLOv3 中的均方誤差損失,其余部分繼續(xù)延用YOLOv3 中邊界框回歸損失和置信度損失。
CIOU 考慮了目標(biāo)和錨點之間的距離、重疊比率和縮放,與交并損失IOU 相比較,目標(biāo)框回歸更加穩(wěn)定,其計算公式為
式中:b、bgt分別代表預(yù)測邊界框和真實邊界框的中心點;ρ2代表預(yù)測框和真實框中心點間距的平方;c代表包含預(yù)測框和真實框中最小矩形框的對角線長度;α、ν分別代表權(quán)重因子和用來度量長寬比的相似性。
相應(yīng)邊界框回歸損失Lciou為
網(wǎng)絡(luò)總損失Lobject為
式中:Lconf為置信度損失;Lcls為類別損失。
在自制數(shù)據(jù)集上,人工標(biāo)記的真實框尺寸相對集中,僅通過K 均值聚類產(chǎn)生的錨框大小也相對集中,無法體現(xiàn)模型的多尺度輸出優(yōu)勢。 本文改進預(yù)選框的生成辦法,使用線性尺度縮放的方式,將聚類生成的錨框尺寸優(yōu)化,通過拉伸錨框以提升模型的檢測精度,最終的預(yù)選框尺寸如表2所示。
表2 預(yù)選框尺寸
實驗使用計算機 CPU 為 i7-7700H,GPU 為NVIDIA GeForce GTX1070Ti,內(nèi)存為 16 GB,在Windows10 系統(tǒng)、深度學(xué)習(xí)開源框架Pytorch 和Python3.6 軟件環(huán)境下進行仿真實驗。
將4550 張圖像按照 7∶2∶1 的比例劃分為訓(xùn)練集、測試集和驗證集,分別為3 185 張、910 張和455 張。 用標(biāo)注軟件將所有學(xué)生課堂行為分為四類,分別為 studying、playing、sleeping、talking。 在相同的實驗環(huán)境下,在YOLOv4、高效網(wǎng)絡(luò)Efficient-Net[15]及Faster-RCNN 網(wǎng)絡(luò)模型中訓(xùn)練標(biāo)注好的訓(xùn)練集。 實驗的評價指標(biāo)選用檢測參數(shù)量、速度及平均精度。
將帶有學(xué)生課堂行為的訓(xùn)練集分別投入Faster-RCNN、EfficientNet、YOLOv4 和輕量化 YOLOv4檢測模型中訓(xùn)練。 圖3 分別為以上四種網(wǎng)絡(luò)模型訓(xùn)練的損失值變化曲線圖。 改進后模型的損失曲線如圖3(d)所示,明顯優(yōu)于其他算法,與圖3(c)相比,損失值降低了約一個點,且當(dāng)?shù)螖?shù)達到125 時曲線收斂并且損失值穩(wěn)定在0.5 附近。 由圖3(a)、圖3(b)可見,兩種模型損失值有明顯波動,且損失值較高。 根據(jù)以上對比實驗表明,改進后的YOLOv4 模型對學(xué)生行為的識別更高效。
圖3 不同模型損失值變化曲線圖
表3 為改進后算法與其他算法檢測結(jié)果對比。 由表3 可見,本文算法在進行學(xué)生目標(biāo)檢測與行為分類時與YOLOv4、EfficientNet 和Faster-RCNN 相比,平均精度和檢測速度都有明顯的提升,參數(shù)量也大幅度減少。 與YOLOv4 算法相比,準(zhǔn)確率提高了1.79%,訓(xùn)練參數(shù)近似為原模型的1/4,檢測速度提高了13.5%。
表3 四種模型對學(xué)生行為檢測結(jié)果對比
圖4 為用四種模型檢測測試集圖像的結(jié)果,與改進后算法結(jié)果相比較,YOLOv4 算法檢測的準(zhǔn)確性較低,EfficientNet 和 Faster-RCNN 會對部分遮擋的目標(biāo)出現(xiàn)漏檢的情況,且對小目標(biāo)檢測的準(zhǔn)確度低,在教室高密度、目標(biāo)遮擋等情況下,本文算法仍有較好的檢測結(jié)果。
圖4 不同模型檢測結(jié)果對比
利用深度學(xué)習(xí)網(wǎng)絡(luò)模型與傳統(tǒng)圖像處理方法結(jié)合,在YOLOv4 目標(biāo)檢測網(wǎng)絡(luò)中引用Mobile-NetV3 輕量化網(wǎng)絡(luò),同時預(yù)選框設(shè)置使用K-means方法,提高網(wǎng)絡(luò)訓(xùn)練的識別精度,利用深度可分離卷積將網(wǎng)絡(luò)訓(xùn)練參數(shù)大幅度降低,在最小化精度損失的前提下加速網(wǎng)絡(luò)模型訓(xùn)練速度,確保網(wǎng)絡(luò)檢測的實時性。 對高校課堂學(xué)生數(shù)據(jù)集的檢測結(jié)果表明,改進后的網(wǎng)絡(luò)模型更加輕量化,在學(xué)生課堂行為分類中取得了較好的效果,平均精度與檢測速度得到明顯提升,具有良好的應(yīng)用前景。