





摘 要:大學教學環境中,由于學生數量龐大而教師資源相對有限,導致教師難以實時、全面地了解每個學生的學習狀態和需求,這種信息的不對稱性使得教師難以提供個性化的教學服務。為了解決這一問題,采用YOLOv8深度學習框架搭建檢測系統,利用教室攝像頭或希沃課堂錄制等采集數據,訓練出可智能識別學生舉手、閱讀、書寫、玩手機、低頭以及打瞌睡六種課堂常見行為的檢測模型。采用PyQt5設計可視化UI界面,實現圖片檢測、視頻檢測及攝像頭實時跟蹤識別,識別結果可保存便于后續數據分析。經實驗,系統可高效準確地檢測出學生這六類課堂常見行為,界面友好,操作簡便,使高校教師能夠更好地觀察學生的學習狀態,優化教學方法,進而提高教學效果和學生的學習效率。
關鍵詞:學習狀態;YOLOv8;智能識別;PyQt5;UI;課堂狀態檢測
中圖分類號:TP39 文獻標識碼:A 文章編號:2095-1302(2025)08-00-06
0 引 言
據2024年最新高等教育統計數據顯示,中國高校教育師生比基準為1∶14。然而實際情況是,很多高校的師生比低于這一標準。在245所專任教師數量超過1 000名的重點大學中,僅有41所大學的師生比在1∶14之內,占16.7%,83.3%的高校師生比低于此標準。隨著高等教育的擴招,教師隊伍的建設在數量上已跟不上擴招的速度,導致很多高校的師生比嚴重低于國家規定的標準。這可能會對高等教育的人才培養質量產生不良影響。
在大學課堂上,教師往往需要面對數十甚至上百名學生,為了提高教學質量,教師的首要任務是改善學生的聽課狀態,這需要教師對學生的課堂表現進行分析。由于視頻數據量龐大,單純依賴人力檢測難以實現,因此采用自動化解決方案,如深度學習和計算機視覺領域的前沿技術—YOLOv8(You Only Look Once version 8)算法框架來處理大規模圖像數據檢測問題。
YOLOv8是一種先進的“One Stage”目標檢測算法,它繼承并顯著提升了YOLO系列算法的性能。其重要的優勢是適應性和靈活性,它向下兼容之前的YOLO版本,支持多種模型的導出格式,使得算法能夠靈活部署在各種平臺和設備上。無論是在邊緣設備還是云端,YOLOv8都能夠提供高效的目標檢測能力。
本文提出了一款基于YOLOv8的學生上課行為檢測系統,重點關注學生課堂上的六種行為:舉手、閱讀、書寫、玩手機、低頭和打瞌睡,實時監測并評估學生的課堂行為,向教師提供即時反饋,協助他們改進教學策略,提升課堂互動效果。
1 研究現狀
傳統的學生課堂狀態監測方法通常需要投入大量人力,準確率低時效性較差。深度學習技術不僅能夠極大地減少人力資源的消耗,還能在保持快速響應的同時,實現更高的檢測準確度。值得一提的是,深度學習方法對于使用環境的光照變化、拍攝角度差異等外部因素具有出色的適應性和魯棒性,從而確保了監測結果的穩定性和可靠性。通過深度學習技術,我們可以更精準地捕捉學生在課堂上的參與度和注意力情況,為教學管理和學生學習提供有力的技術支持。
文獻[1]提出采用輕量級多人臉識別算法以適應硬件條件較差的環境,從而快速、準確地識別身份。通過開發多角度身份識別算法,解決非正面朝向攝像頭識別問題,分析學生的課堂行為和心理壓力,提出行為識別方法。文獻[2]提出了一種基于深度學習的學生異常行為分析系統和方法,通過校園一卡通記錄學生消費、就餐、就寢和學習等行為數據,利用數據建模分析學生行為,挖掘有價值信息,輔助學校和教師加強學生管理和教學管理。文獻[3]研究了基于AWS SageMaker和DeepLens的高校課堂學生問題行為自動檢測方法,實驗結果表明,結合云計算和智能攝像頭進行行為識別,在成本效益和部署靈活性方面均具有較大優勢,有效突破了傳統計算機視覺的局限,促進信息技術與課堂教學的融合。文獻[4]提出了一種基于改進OpenPose的學生行為識別方法,通過高斯濾波降噪、注意力機制目標檢測、改進OpenPose提取骨骼點和ST-SVM分類,實現快速準確識別學生行為狀態。實驗結果顯示,該方法準確率超99%,幀率超20 FPS,相比原模型幀率提升了50%,有效提高了模型的實時性和準確率。文獻[5]提出了一種基于深度學習的學生打卡及上課狀態檢測系統,包括數據采集、檢測和存儲可視化子系統,通過確定學生身份和狀態,實時輸出數據以提高教學質量。系統具有結構精簡、計算量低、準確性高的優點。文
獻[6]提出一種基于深度學習的學生課堂狀態檢測算法,利用K-means++聚類分析候選框特征,構建雙YOLO網絡模型分析課堂行為,實時精準反饋學生學習狀態,并進行評分輔助教學評價。實驗結果顯示,模型準確率高達86.62%,單幀計算時間為0.2 s,可有效提升教學管理效率。文獻[7]提出了一種深度學習模型,其通過集成Ghost模塊實現輕量化,并引入坐標注意力機制來增強檢測的準確性。實驗結果顯示,改進模型在識別精度上提升了3.5%,推理時間減少了16.7%,參數量降低了35.5%,有效提升了課堂行為識別的速度和精度,滿足了智慧課堂的需求。
2 材料和方法
2.1 數據集制作
通過實景拍攝上課照片及網上搜索各類課堂圖片,以及教室監控和希沃課堂視頻錄制上課視頻,圖片共計2 000余張,大小視頻時長余200 h。圖1所示為采用圖像標注工具labelme標注分類訓練圖片,標注邊框及害蟲類別生成JSON文件,提取JSON文件中的label和point數據,并將生成文件轉化成txt文件(YOLO系列標準讀取的文件為txt類型),如圖2所示。
本系統可識別出高校課堂6種常見的學生上課狀態,分別為:舉手、閱讀、書寫、玩手機、低頭以及打瞌睡,設置編號0~5。模型劃分為三類數據集,分別為train數據集,val(驗證)數據集,test數據集,按照7∶1∶2的比例進行隨機劃分,部分圖像數據如圖3所示。
本系統可識別的圖片文件為jpg,png,jpeg,bmp四種常見格式。視頻格式為.avi,.mp4,.wmv,.mkv。使用OpenCV(通常通過CV2模塊)讀取攝像頭信息并捕獲視頻流,使用VideoCapture()函數捕獲視頻,采用read()方法讀取幀圖像,借助imshow()顯示捕獲的幀。
2.2 YOLOv8算法模型
YOLOv8是一款創新的圖像分類、物體檢測和實例分割模型,它不僅延續了YOLO系列的卓越性能,還引入了多項創新功能和優化措施,進一步提升了模型的性能和靈活性。它是一種高效的實時目標檢測算法,能夠快速準確地在圖像中識別出多個目標的類別和位置。
YOLOv8由三部分組成:主干網絡(Backbone)、頸部網絡(Neck)和檢測頭(Head)。主干網絡負責提取圖像的關鍵特征,頸部網絡整合主干網絡提取的信息,檢測頭負責完成目標的定位和分類。
YOLOv8采用CSPDarkNet作為主干網絡,引入了高效的雙流FPN結構作為頸部網絡,并采用了無錨點(Anchor-Free)的檢測頭設計,這種設計可以減少超參數的數量,有助于提高模型的泛化能力[8]。此外,YOLOv8還引入了全新的骨干網絡和損失函數,進一步優化了檢測精度和效率,為圖像分類、物體檢測和實例分割任務提供了解決方案。
本系統所用YOLOv8網絡架構參數如圖4所示,0~9層
為Backbone,包含了一系列卷積層和可能的池化層,用于提取輸入圖像的特征;10~21層為Head,主要負責目標檢測任務;第22層為輸出層,用于最終檢測分類。
2.3 模型配置及訓練
CPU型號:Intel Core i5-12500,主頻3.00 GHz。
GPU型號:NVIDIA GeForce RTX 3060。
顯卡驅動版本:536.67。
操作系統:Windows 11。
CUDA庫版本:12.1。
深度學習框架:Python 3.9和PyTorch 1.9.0。
新建模型配置文件程序如圖5所示。
修改系統模型Ultralytics文件夾下settings.yaml的datasets_dir,修改為當前數據文件目錄。新建模型配置文件程序data.yaml,如圖5所示,將類別數量nc修改為6,并存放需要檢測的學生課堂行為類別英文名,同時存儲train數據集和val數據集的絕對路徑,加載運行該配置文件。
設置訓練epochs為250輪,訓練批次batch為4,patience為50,圖片尺寸分辨率為640×640像素,運行圖6所示train.py文件進行模型訓練。
如圖7所示,模型訓練驗證運行結束后,結果存放在runs文件夾下,含模型與所有過程內容,其中./weights目錄下有最好的模型權重參數best.pt,后續檢測任務需要使用該參數。
圖8所示為train數據集和val數據集的運行結果,定位損失box_loss用于衡量模型預測的邊界框與真實標定框之間的偏差程度,cls_los用于區分不同目標類別的準確性,以及動態特征損失dfl_loss。由圖8可以看出這三類損失值隨著Epoch的不斷迭代,都在收斂減小,反映了模型在定位、分類和動態特征處理方面的性能有所提升,能夠較好地實現精確的目標檢測。
2.4 模型評價方法
本文以平均精度均值(mAP)作為衡量模型檢測準確度的主要標準,使用平均精度(AP)來評估每個單獨類別的檢測性能。
mAP的計算過程包括如下四個主要步驟:
(1)計算交并比IoU
IoU是評估預測區域與真實標注區域之間匹配程度的重要指標,通過比較兩個區域的重疊部分與它們總面積的比例來計算。計算公式如下:
式中:SA∩SB表示預測區域SA和真實標注區域SB的交集面積;SA+SB-(SA∩SB)表示兩個區域的并集面積,即總面積減去重疊部分的面積;IoU的范圍為0~1,IoU值越高表示預測區域與真實標注區域的匹配程度越好,通過該指標,可以量化模型在目標檢測任務中的表現。
(2)計算精確率P和召回率R
根據IoU值確定預測結果為真正例(TP)、假正例(FP)或假負例(FN)。
精確率(P)表示在所有預測為正的樣本中,實際為正樣本的比例,計算公式為:
式中:TP代表預測為正樣本且實際也為正樣本的情況;FP代表預測為正樣本但實際為負樣本的情況;FN代表預測為負樣本但實際為正樣本的情況。
召回率(R)表示在所有實際為正的樣本中,被預測為正樣本的比例,計算公式為:
(3)計算平均精度AP
平均精度(AP)是精確率-召回率曲線下的面積,通常通過在召回率軸上每隔0.01取101個點來計算,它反映了在不同置信度閾值下,模型預測精度與召回率的平衡關系。平均精度AP的計算公式為:
(4)計算平均精度均值mAP
平均精度均值(mAP)是所有AP的平均值,用于評估模型整體檢測精度的評價,mAP值越高意味著模型的檢測能力越強[9]。mAP的計算公式為:
系統精確率P、召回率R、平均精度AP以及平均精度均值mAP隨著訓練次數不斷迭代,值越來越大,最后趨于飽和,代表預測越來越準確,查找出真樣本的能力越來越強,模型在目標檢測任務中性能越來越好,可以更好地識別出目標類別。
訓練過程中得到的P-R曲線如圖9所示,它直觀展示了精確率P與召回率R之間的關系,圖中各色細線代表了不同類別上課狀態的P-R曲線,而粗線則代表所有類別狀態的平均P-R曲線mAP。
本文針對交并比(IoU)閾值設定為0.5的情況,評估了模型的平均精度均值(mAP@0.5)。實驗結果顯示,所提出的模型在mAP@0.5上達到了0.891。然而,系統性能的進一步提升受樣本數量不足的限制,尤其在某些行為類別上,例如“舉手”動作,樣本量較少導致其檢測精度相對較低,這反過來影響了整個系統的性能。為了進一步提高系統的性能,我們計劃在未來的研究中增加樣本量,并確保各類別樣本的均衡性,以期達到更全面的優化效果。
3 系統設計與實現
3.1 技術路線
本系統的前端用戶界面采用Python 3.9版本,基于PyQt5- 5.15.2框架進行開發。PyQt5框架作為Qt5的Python綁定,致力于實現與Python語言的無縫集成,為桌面應用程序的開發提供了一套全面的API和工具集。該框架的組件庫,特別是“Qt Designer”,提供了一個可視化的拖拽界面設計工具,極大地簡化了用戶界面的設計流程,從而提升了開發效率[10]。
通過Qt Designer,設計者能夠以圖形化的方式快速構建用戶界面,并通過拖放組件等直觀操作,實現界面布局和組件配置。設計完成后,設計界面將被保存為.ui格式的XML文件。隨后,利用Pyuic5工具,將.ui文件轉換為Python代碼,以便在Python項目中進行集成和使用。
在MainProgram.py文件中,我們將目標檢測算法的邏輯與用戶界面進行集成。具體實現包括編寫事件處理函數,以響應用戶的操作,如按鈕點擊事件。此外,還涉及加載圖像資源、執行目標檢測算法等關鍵功能。通過這種方式可確保用戶界面與后端邏輯的緊密結合,為用戶提供直觀、高效的交互體驗。相關設置程序如圖10所示。
本系統最終呈現的用戶界面尺寸設定為770×480像素,以適應不同分辨率的顯示需求。采用IoU閾值0.5作為評估標準,系統選用基于狀態的顏色編碼機制,對不同狀態的目標對象使用不同顏色的邊界框進行標注。此外,系統允許用戶將檢測識別的結果進行存儲,以便于后續的數據分析和處理。這一功能對于科研人員和數據分析師而言尤為重要,此舉大大簡化了數據收集和整理的過程。
最終展示界面如圖11所示,它不但詳細展示了系統功能布局,而且為用戶提供了友好清晰的操作指引和直觀的結果反饋。
3.2 系統功能
用戶能夠通過三種方法輸入所需檢測的內容,分別為導入圖像、播放視頻文件以及通過在線攝像頭實時獲取圖像。
3.2.1 圖片檢測
圖12所示為點擊“圖片”按鈕,選擇待檢測圖片數據,可以通過導入圖片文件夾一次性檢測多張圖片。
檢測完畢后,界面顯示檢測用時、目標物體個數。當一張圖片里出現多個目標物體時,用戶可選擇需要顯示哪一個目標對象的詳細信息,點擊“目標選擇”即可。界面顯示出學生上課狀態的類別名稱,置信度大小以及目標物體在圖片中的位置信息等[9-10]。
3.2.2 視頻檢測
如圖13所示,點擊“視頻”圖標導入待檢測視頻文件,系統會自動播放視頻識別結果。每一幀的視頻檢測都能夠精確地識別出相應狀態類別。
3.2.3 在線攝像頭檢測
如圖14所示,選擇“攝像頭”icons后,打開監控攝像頭,系統實時顯示攝像頭拍攝到的視頻流檢測結果。
4 結 語
本文提出了一種基于YOLOv8的高校學生上課狀態檢測系統,旨在解決高校課堂中學生數量龐大與教師資源有限的矛盾,通過智能化手段輔助教師實時、全面地了解學生的學習狀態和需求。系統通過教室攝像頭或課堂錄制視頻采集數據,訓練出了一個能夠智能識別學生舉手、閱讀、書寫、玩手機、低頭和打瞌睡六種常見課堂行為的檢測模型。利用PyQt5設計了可視化用戶界面,實現了對圖片、視頻以及攝像頭進行實時跟蹤、檢測的功能,并能夠保存識別結果以便于后續的數據分析。實驗結果表明,該系統能夠高效準確地檢測出六類行為,實時性高,且界面友好、操作簡便,有助于教師優化教學方法,提高教學效果和學生學習效率。盡管本系統在實驗中表現出色,但仍存在一些局限性和改進空間。后期可以考慮將系統與更先進的算法和模型結合,如集成學習、遷移學習等,以提高檢測的準確性和魯棒性。此外,系統界面和用戶體驗也將持續優化,以適應不同用戶的需求和操作習慣。此外,系統的應用范圍可以進一步擴展,例如將其應用于遠程教育、在線課堂等場景,為教育領域提供更廣泛的技術支持。同時,系統的數據收集和分析能力也將得到加強,為教學管理和決策提供更深入的洞察視角。
參考文獻
[1]汪璠.基于深度學習的校園環境下學生狀態及異常行為識別方法研究[D].南京:南京師范大學,2021.
[2]陳智林,盧昭金,李佳雯,等.一種基于深度學習的學生異常行為分析方法及系統:CN202310805438.6 [P]. 2023-11-03.
[3]陸仟禧,梁文耀,李琳,等.基于AWS SageMaker和DeepLens的高校課堂學生問題行為檢測方法研究[J].電腦知識與技術,2022(1):18.
[4]蘇超,王國中.基于改進OpenPose的學生行為識別研究[J].計算機應用研究,2021,38(10):3183-3188.
[5]陳波,田曉華,王建民.一種基于深度學習的學生打卡及上課狀態的檢測系統:CN201911138397.X [P]. 2022-04-12.
[6]史雨,辛宇,袁靜,等.基于深度學習的學生課堂狀態檢測算法與應用[J].人工智能與機器人研究,2021,10(2):10.
[7]王禹鈞,馬致明.基于深度學習的學生課堂行為識別研究[J].軟件工程,2023,26(7):40-43.
[8]邵延華,張鐸,楚紅雨,等.基于深度學習的YOLO目標檢測綜述[J].電子與信息學報,2022,44(10):12.
[9]鄭偉成,李學偉,劉宏哲.基于深度學習的目標檢測算法綜述[J].中國寬帶,2022(3):3.
[10]朱文偉. PyQt 5從入門到精通 編程語言[M].北京:清華大學出版社,2023.