陳憶憫,李萬益*,鄭嘉穎,翁漢銳,錢焯賢,黃靖敏,倫家琪,陳 強,張 謙,鄔依林
(1. 廣東第二師范學院計算機學院,廣州 510303;2. 廣州市南沙區(qū)金沙學校,廣州 511455)
借助姿態(tài)估計、動作識別和目標跟蹤等計算機視覺任務,能夠準確定位和跟蹤教室內(nèi)的人員,實現(xiàn)對教學行為的識別和理解。這一領域是“人工智能+教育”應用場景中的一個重要方向。在課堂環(huán)境中,教師和學生的行為反映了教學風格和學生專注度,也是評估課堂氛圍和教學成效的重要指標。然而,傳統(tǒng)的分析方法主要依賴于人工或課后學生反饋,存在主觀性強、評價片面、效率低和無法回溯等問題。
為解決這些問題,本文提出了基于深度學習的目標檢測技術,利用PP-YOLOv2 模型進行課堂行為檢測。通過在兩個開源大型數(shù)據(jù)集上進行大量實驗,驗證了網(wǎng)絡的有效性,并將經(jīng)過訓練的模型應用于真實課堂環(huán)境,實現(xiàn)了對教學行為的準確檢測。這項研究為教育領域的課堂行為分析提供了一種可行的解決方案,并具有潛力改進教學效果,有利于個性化學習方案的實施。
(1)在區(qū)域建議階段,傳統(tǒng)目標檢測算法通過多次遍歷輸入圖像的不同尺度滑動窗口產(chǎn)生大量感興趣區(qū)域。然而,這種方法存在冗余計算開銷、影響算法的運行速度等問題。此外,滑動窗口通常只有幾種固定尺寸,很難完美匹配目標。
(2)特征抽取階段僅能獲得圖像的低級特征,這些特征表達能力有限,且高度依賴于具體任務。一旦檢測目標發(fā)生重大變動,就需要重新設計算法。
(3)傳統(tǒng)目標檢測算法將整個過程分割為獨立的三個階段,無法達到全局最優(yōu)解。此外,算法的設計依賴于設計者對檢測目標和具體任務的先驗知識。
針對這些缺陷[1],本文旨在尋找更精巧的計算方法來加速目標檢測算法,以滿足實時性要求。同時,設計更多元化的檢測算法以彌補人工特征表達能力不足的缺陷。通過采用新的計算方法和多元化的算法設計,本文旨在提高目標檢測算法的性能和魯棒性,以更好地適應各種檢測任務和目標變化情況。
在深度學習出現(xiàn)之前,傳統(tǒng)的目標檢測方法主要由區(qū)域選擇(滑窗)、特征提取(如SIFT、HOG 等)和分類器(如SVM、Adaboost 等)三個部分構成。然而,這些傳統(tǒng)方法存在兩個主要問題。首先,滑窗選擇策略缺乏針對性,時間復雜度高且存在窗口冗余;其次,手工設計的特征魯棒性較差,對于目標變化較大的情況需要重新設計算法。
自深度學習出現(xiàn)之后,目標檢測取得了巨大的突破,最矚目的兩個方向有:基于區(qū)域建議的深度學習目標檢測算法,以RCNN 為代表(如RCNN、SPP-NET、Fast-RCNN、Faster-RCNN 等),采用了兩階段的方法。首先,通過啟發(fā)式方法(如selectivesearch)或CNN 網(wǎng)絡(如RPN)生成候選區(qū)域(Region Proposal),然后在這些候選區(qū)域上進行分類和回歸?;诨貧w方法的深度學習目標檢測算法,以YOLO 為代表(如YOLO、SSD等),采用單一的卷積神經(jīng)網(wǎng)絡(CNN)直接預測不同目標的類別和位置。因此,基于深度學習的目標檢測網(wǎng)絡主要可以分為兩大類:一是兩階段檢測網(wǎng)絡,如R-CNN 系列算法,該類算法通過生成區(qū)域建議并在這些候選區(qū)域上進行分類和回歸來實現(xiàn)目標檢測;二是單階段檢測網(wǎng)絡,如YOLO 系列算法、SSD 和RetinaNet 等,該類算法直接在單個CNN 網(wǎng)絡中預測目標的類別和位置。
本研究旨在對視頻中學生的學習情況進行分析,以滿足教師對學生學習行為的即時反饋和后續(xù)教學調(diào)整的需求??紤]到大規(guī)模視頻數(shù)據(jù)和實時性要求,我們采用基于深度學習的目標檢測方法。具體而言,選擇了YOLOv3算法作為基礎算法,并進行了針對性優(yōu)化以適應我們的數(shù)據(jù)特點。YOLOv3算法在保持準確度的同時具有較高的訓練速度,能夠有效應對大規(guī)模視頻數(shù)據(jù)的處理挑戰(zhàn)。通過我們的優(yōu)化措施,旨在提高學生學習情況分析的準確性和實時性,并為教師提供及時準確的反饋信息,以支持其教學調(diào)整和改進決策。本研究的目標是在保持足夠準確度的前提下提高檢測速度,以滿足教學實際應用的要求。
本研究在目標檢測領域采用了一種改進的架構,將ResNet50-vd 作為整個網(wǎng)絡的主干(backbone),替代了原來的DarkNet53。為了提高模型的表達能力,我們引入了可變形卷積,將部分卷積層替換為可變形卷積,并在最后一層的3*3 卷積中使用了DCN 卷積。整個網(wǎng)絡由backbone、neck 和head 三部分組成,如圖1 所示。通過使用ResNet50-vd 和可變形卷積,我們增加了網(wǎng)絡的復雜度,從而提升了模型的性能和準確度。這一改進架構的引入為目標檢測任務帶來了顯著的改善,并在實驗中取得了良好的效果。
圖1 骨干網(wǎng)
為了改進目標檢測算法,本研究采用了ResNet50-vd 作為整個架構的替代方案,以取代YOLOv3 中使用的較為龐大的DarkNet53。這一選擇是基于ResNet 在廣泛應用和多樣化分支方面的優(yōu)勢,以及其在執(zhí)行優(yōu)化和參數(shù)數(shù)量方面的表現(xiàn)優(yōu)于Darknet53 等因素。實驗結果表明,通過將DarkNet53 替換為ResNet50-vd,模型的mAP得到了明顯的提升。
此外,為了避免性能下降,我們并非直接替換ResNet50-vd,而是采用可變形卷積層替換其中的一些卷積層。在這個過程中,我們選擇將最后階段的3*3 卷積層替換為可變形卷積層(DCN),而不是對整個網(wǎng)絡進行替換。DCN 本身并不顯著增加模型的參數(shù)量和FLOPs 數(shù)量,但在實際應用中,過多的DCN 層會顯著增加推斷時間。為了平衡精度和速度,本研究只將最后階段的3*3卷積層替換為DCN[2]。
以上改進策略的應用使得模型在精度與速度之間取得了平衡,進一步提升了目標檢測算法的性能。
與PP-YOLO 使用FPN 構建特征金字塔不同,我們的模型采用路徑聚合網(wǎng)絡(path aggregation network,PAN)。該網(wǎng)絡通過自底向上的路徑利用低層定位信號增強特征層次結構,從而縮短低層與頂層之間的信息傳遞路徑(見圖2綠色線)。此外,PAN 還引入自適應特征池,將特征網(wǎng)格與所有特征層連接,實現(xiàn)自上而下的特征聚合。通過這種方式,每個特征層的有用信息都能夠直接傳播到提案子網(wǎng),從而實現(xiàn)了特征信息的全局聚合。
圖2 路徑聚合網(wǎng)絡
激活函數(shù)(activation function)是神經(jīng)網(wǎng)絡中神經(jīng)元輸入映射到輸出的函數(shù)。目前廣泛應用的激活函數(shù)包括ReLU、TanH、Sigmoid、Leaky ReLU 和Swish。本文采用了一種新的激活函數(shù)Mish,用于PP-YOLOv2。
Mish 函數(shù)的優(yōu)勢在于它沒有上限,可以達到任意高度,避免了飽和問題。對于負值,Mish允許輕微的梯度流動,而不像ReLU 那樣具有硬零邊界。平滑的激活函數(shù)使得信息能夠更好地傳遞到神經(jīng)網(wǎng)絡中,從而提高準確性和泛化性能。通過驗證實驗發(fā)現(xiàn),與Swish 相比,Mish 的精度提高了0.494%,與ReLU 相比提高了1.671%[3]。
Mish 函數(shù)是在保障有信息流動的情況下而存在下限的,這樣可以使函數(shù)規(guī)范正則化,
Mish 函數(shù)的表達如式(1)所示:
此函數(shù)是非單調(diào)的,可以使大多數(shù)的神經(jīng)元得到更新,具備較好的穩(wěn)定性,并且其效果優(yōu)于其他激活函數(shù),比如Swish、ReLU函數(shù)。
與其他大多數(shù)模型一樣,PP-YOLOv2 也采用了Mish 激活函數(shù),但此模型沒有將其應用在骨架網(wǎng)絡,原有骨架網(wǎng)絡預訓練參數(shù)已經(jīng)讓網(wǎng)絡在ImageNet 上top-1 準確率高達82.4%,所以此模型仍傾向于采用原有的骨架網(wǎng)絡,而將Mish 激活函數(shù)應用在了detection neck,使其能夠更好地發(fā)揮作用(圖3)[4]。
圖3 PP-YOLOv2檢測頸的架構
IoU Aware Branch[2]:在PP-YOLO 中,我們注意到IoU Aware Branch 的計算采用了一種與初衷不符的軟權重格式(soft weight format)。為了改進這一問題,我們引入了soft label format。式(2)表示IoU aware loss。
t為錨點與ground-truth-bounding box 之間的IoU,p為IoU Aware Branch 的原始輸出,為sigmoid激活函數(shù)。僅計算陽性樣本的IoU aware loss,并通過替換損失函數(shù)進一步提高了模型的性能。這一改進使得模型在性能上比之前有了顯著的提升。
實驗中用到電腦配置以及系統(tǒng)環(huán)境如下:CPU 為12th Gen Intel(R)Core(TM)i9-12900HX;GPU 為GeForce RTX 3090;運行內(nèi)存為24 GB;操作系統(tǒng)為Windows 10;Python 版本為3.9;深度學習框架為PyTorch 1.13.1。
本次實驗數(shù)據(jù)集總數(shù)為5012 條,本文所分析的課堂五種典型學生行為狀態(tài)包括:看手機、喝水、寫字、聽講和走神,其中,數(shù)據(jù)集的人工標注部分共有2506 條(約占50%),半自動標注部分共有2506 條(約占50%),實驗部分數(shù)據(jù)集如圖4所示。
圖4 實驗數(shù)據(jù)集
本次實驗的數(shù)據(jù)集共有5012 條數(shù)據(jù),每條數(shù)據(jù)包含一張圖片和其對應的標簽,分為以下五類:listen,write,phone,drink,trance,并按7∶2∶1的比例劃分為訓練集、驗證集、測試集,具體情況如圖5所示。
圖5 實驗數(shù)據(jù)集
此次實驗選擇PP-YOLOv2 ResNet50 預訓練模型作為本實驗的目標檢測模型,圖像輸入尺寸為128px×128px;圖像均值為0.485、0.456、0.406;圖像方差為0.229、0.224、0.225。迭代次數(shù)設定為300;學習率為0.0001;批大小為30;保存間隔為30。
數(shù)據(jù)集標注完后,分為兩個文件夾,JPEGImage 文件夾存放圖像,格式為JPG;Annotations 文件夾存放標注后以XML 格式的數(shù)據(jù),文件分布如圖6所示。
圖6 實驗文件分布
為了評估模型性能,我們將針對listen、write、phone、drink 和trance 這五個標簽,采用準確率(Precision)、召回率(Recall)和平均精度(Average Precision, AP)作為評估模型性能的指標,評估結果件表1。
表1 評估結果
在實驗中,PP-YOLOv2 預訓練模型在300 次迭代后,達到了99.3%的mAP 值,如圖7所示,實驗結果顯示,在300 次迭代后,PP-YOLOv2 預訓練模型在該5012 條數(shù)據(jù)集上表現(xiàn)出了很高的性能和準確率。整體mAP 值達到了99.3%,說明模型具有很好的目標檢測能力。各個類別的mAP 均在96%~100% 之間,相對均衡,表明模型在識別不同類別的目標時具有相近的性能。
圖7 實驗數(shù)據(jù)集
實驗中某次寫的動作檢測結果及準確率如圖8所示。
圖8 實驗預測結果
由于實驗結果已經(jīng)達到了較高的精度,可以認為模型在這個數(shù)據(jù)集上的泛化能力較好。但是,實驗僅進行了300 次迭代,可能還存在進一步優(yōu)化的空間。在實際應用中,可以嘗試增加迭代次數(shù)或調(diào)整訓練參數(shù),以進一步提高模型的性能和準確率。同時,為了更好地評估模型的泛化能力,可以在更大規(guī)模的數(shù)據(jù)集上進行實驗。
增加迭代次數(shù):嘗試將迭代次數(shù)提高到更高的水平,如500、1000 或更多次,觀察模型在更多迭代次數(shù)下的性能變化。這將有助于了解模型是否已經(jīng)收斂,或者是否還有進一步優(yōu)化的潛力。
調(diào)整訓練參數(shù):嘗試調(diào)整學習率、權重衰減、優(yōu)化器等訓練參數(shù),以探索在不同參數(shù)設置下模型的性能表現(xiàn)。這可以幫助找到最佳的參數(shù)組合,進一步提高模型的準確率。
交叉驗證:采用K折交叉驗證的方法,將數(shù)據(jù)集劃分為K份,依次將每一份作為驗證集,其余K-1 份作為訓練集。這將有助于評估模型在不同訓練集和驗證集上的性能,并減少過擬合的可能性。
測試實際場景:將模型應用到實際場景中,例如在線課堂、教室等環(huán)境,觀察模型在實際應用中的表現(xiàn)。這將有助于驗證模型在實際場景中的效果,以及發(fā)現(xiàn)可能存在的問題和需要改進的地方。
課堂行為檢測在教育領域具有重要意義,能夠評估學生的參與度和專注度。然而,傳統(tǒng)的行為檢測方法通常復雜且耗時。為了解決這一問題,本文提出了基于PP-YOLOv2 的課堂行為檢測方法。該方法充分利用了計算機視覺和深度學習技術,通過采集和標注學生樣本數(shù)據(jù)集,并進行數(shù)據(jù)預處理,實現(xiàn)了高效準確的行為檢測。
在研究中,我們采用了Mish 激活函數(shù),這一創(chuàng)新的激活函數(shù)提升了模型的學習能力和行為檢測的準確性。通過實驗結果的分析,我們發(fā)現(xiàn)該方法在真實的課堂環(huán)境中展現(xiàn)出了良好的性能,并為教育工作者提供了高效準確的課堂行為檢測工具。
這項研究對于實時監(jiān)測和評估學生行為,改善教學效果以及促進個性化學習具有重要意義。它為教育工作者提供了一種可靠的手段,可以實時監(jiān)控學生的行為表現(xiàn),幫助他們更好地了解學生的學習狀態(tài)和需求。這樣的個性化反饋和指導能夠提升教學質(zhì)量,培養(yǎng)學生的自主學習能力。
未來的研究可以繼續(xù)擴展該方法的應用范圍,例如在不同年級、學科和教學場景下的行為檢測。此外,還可以進一步優(yōu)化算法,提高模型的性能和效率,以滿足教育領域對于實時行為檢測的需求。通過持續(xù)的研究和創(chuàng)新,我們可以不斷推動教育技術的發(fā)展,為學生和教育工作者創(chuàng)造更好的學習和教學環(huán)境。