







關鍵詞:YOLOv8;人數統計;深度學習;目標檢測
0 引言(Introduction)
隨著信息技術的發展,智能化管理系統在教育領域的應用日益廣泛。傳統的教務管理依賴人工操作方式,不僅耗時耗力,還難以保證數據的準確性,在學生人數統計、教室資源分配方面,傳統方式暴露出的弊端尤為明顯。智慧教室的出現,為自動化人數統計帶來了新的解決方案,但其高昂的設備價格及后續的維護成本,成為制約其普及的障礙,特別是在資源有限的地區廣泛推廣存在困難。傳統的教室人數檢測任務依賴于專用的攝像頭和傳感器,盡管這種方法檢測精度較高,但是其硬件成本高且安裝和維護復雜,并且普通的攝像頭設備必須升級或替換才能滿足任務需求[1-2]。相比之下,基于計算機視覺的深度學習目標檢測方法具有顯著的成本優勢。該技術通過對現有普通攝像頭的視頻數據進行處理和分析,即可實現精確的人數檢測。
主流的目標檢測方法可以分為兩類。一類是兩階段目標檢測方法,包括R-CNN(Region-Convolutional Neural Network)[3]、Fast R-CNN[4]、Faster R-CNN[5]等。這類方法首先生成一系列候選區域,其次使用卷積神經網絡(CNN)對候選區域進行分析后得到檢測結果。雖然兩階段目標檢測方法具有較高的檢測精度,但是其處理速度相對較慢,難以滿足實時檢測的需求。另一類是單階段目標檢測方法,包括YOLO(You Only LookOnce)[6-8]系列和SSD(Single Shot MultiBox Detector)[9]等。這類方法可以直接在整幅圖像上進行目標檢測,省去了候選區域生成的步驟,因此具有較快的檢測速度。鑒于本系統需要實現實時教室人數檢測,因此選擇YOLOv8模型作為基礎網絡。YOLOv8引入了更多的特征提取層和更高效的檢測頭,其改進的架構能夠更好地捕捉圖像中的細節和特征,提高小目標檢測的準確率,適合在不同的教室環境內進行人數檢測。
本文設計并實現了一款高效、低成本的輕量級智能教室人數統計系統,該系統利用現有普通的攝像頭即可實現端到端的自動化管理功能,其基于YOLOv8算法實時統計教室內的人數,能直觀地顯示各個教室的利用率。此外,該系統具備自動記錄出勤及教室使用情況的功能,能夠生成各個教室在不同時段的出勤及教室使用情況統計表。
1 系統架構(System architecture)
基于YOLOv8的實時教室人數統計系統主要有數據處理與存儲模塊、YOLOv8人數檢測模塊、數據統計模塊以及用戶界面,系統架構流程圖如圖1所示。由攝像頭實時采集教室視頻數據,并發送到服務器數據處理與存儲模塊,處理后的數據通過YOLOv8人數檢測模塊識別和統計學生人數后,將檢測結果發送到數據統計模塊,該模塊可以為用戶提供指定數據的導出。用戶界面中可以直觀地顯示各個教室的實時使用情況,還能通過按鈕切換呈現不同教室的實時人數檢測結果和統計信息。
1.1 數據處理與存儲模塊
數據處理與存儲模塊接收來自攝像頭的視頻數據,進行初步處理后存儲在服務器中。該模塊的主要功能如下:從攝像頭接收實時視頻流并將其緩存在服務器中,模塊每3分鐘從視頻流中提取一幀圖像,并將提取的圖像進行處理,包括調整圖像大小、歸一化和數據增強等,以符合YOLOv8模型的輸入格式,確保圖像適配YOLOv8的輸入要求;將處理后的圖像和相應的元數據存儲在數據庫中,以便后續的檢測和分析。通過以上步驟,數據處理與存儲模塊為YOLOv8人數檢測模塊提供了高質量的輸入數據,為檢測結果的準確性和實時性提供了保障。
1.2 YOLOv8人數檢測模塊
YOLOv8算法是Ultralytics公司繼YOLOv5之后的重大更新版本,該算法進一步優化了網絡結構,并引入了可變形卷積網絡(DCN)和全局注意力機制(GAM),這些改進增強了網絡對形變、尺度變化和復雜形態目標的適應能力以及特征提取能力。同時,輕量級卷積模型(GPConv)的融入減少了模型的計算量和存儲需求,使其更加輕量化,更適用于實時應用場景。YOLOv8采用CIoU損失函數和分布焦點損失(DFL)優化邊界框的預測精度,同時利用二元交叉熵損失函數強化分類準確性。基于YOLOv8人數識別的智能檢測算法網絡結構如圖2所示,輸入圖像尺寸為640×640×3(圖像高度、圖像寬度和圖像通道數)。
1.3 數據統計模塊
數據統計模塊是基于YOLOv8的實時教室人數統計系統的關鍵組成部分,負責匯總、分析由YOLOv8人數檢測模塊生成的學生人數數據,并為用戶提供豐富的報表和數據導出功能。
將由YOLOv8人數檢測模塊得到的檢測數據存儲在數據庫中,以便后續分析和查詢。根據時間段(如每分鐘或每小時等)匯總實時檢測數據,生成教室內學生人數的即時統計結果。根據用戶需求,生成詳細的學生出勤報告及教室資源的使用報告,包括每日、每周和每月的統計數據。該模塊提供數據導出功能,將統計數據和生成的報告導出為常見格式的文件(Excel和PDF)。同時,本系統支持多教室管理,能夠匯總多個教室的學生人數統計數據,并生成整體報告。
2 數據集(Datasets)
2.1 公開數據集
SCUT-HEAD是一個公開的頭部檢測數據集,由A和B兩個部分組成,總共包含4 179張標注圖像,每個圖像中的可見頭部都已用坐標標注。當A和B兩個部分合并使用時,該數據集具備了較好的多樣性和平衡性,覆蓋了多種場景、光照條件、姿態和表情,適用于小型教室環境中的頭部檢測,還非常適用于人臉檢測任務 。公開數據集示例如 圖3所示。
2.2 自制數據集
為了使系統更好地適應教室場景,本文依托某大學教室內的攝像頭資源,采集了大量真實教室場景下的視頻素材。在采集過程中,選擇不同天氣、光照條件和教室使用狀態,從而保證了樣本的多樣性。在處理視頻數據時,每隔1 s取一幀,并將每一幀圖像調整為640×640的像素尺寸。使用LabelImg開源工具,設置標記類別為person,標注后的文件以xml格式保存。將數據轉化成YOLO格式,包含圖像文件和相應的標注文件。圖像文件以JPEG或PNG格式保存,而標注文件則以TXT格式存在。在標注文件中,每一行代表一個標注對象,格式為“class_id center_x center_y width height”,其中class_id是類別編號,center_x和center_y是標注對象的中心坐標,width和height分別是標注對象的寬度和高度。所有的坐標和尺寸都歸一化到[0,1]范圍內。最終獲得228個樣本,自制數據集ClassCount示例如圖4所示。
3 實驗與結果分析(Experiment and result analysis
本文使用在COCO數據集上預訓練的YOLOv8n模型作為預訓練模型,在SCUT-HEAD數據集和自制數據集上分別進行了微調。批次大小為16,初始學習率為0.001,迭代輪數為100,選擇Adam優化器。
使用兩種測試集評估模型的泛化能力。①公開測試集,從公開數據集SCUT-HEAD中隨機劃分出400個樣本作為測試集。② 混合測試集,共由兩個部分組成,從自制數據集ClassCount中隨機劃分出40個樣本,加上公開測試集中的400個樣本,構成最終的測試集(共440個樣本)。
為了從不同的角度評估模型的性能,本文主要使用4個主要指標,即查準率 (Precision)、召回率(Recall)、mAP @50和mAP@50~95。
3.1 模型在SCUT-HEAD數據集上的實驗
從SCUT-HEAD數據集中刪除圖像模糊、重復的樣本,得到3 024個樣本,除去400個用作公開測試集的樣本,隨機選取2 224個樣本作為訓練集用于模型學習,其余400個樣本作為驗證集用于模型選擇。將驗證集上的評價指標mAP @50與mAP@50~95按照1∶9的比重進行加權,選取在驗證集表現最佳的模型作為最終模型。表1展示了模型在公開測試集和混合測試集上的性能表現。
3.2 模型在自制數據集上的實驗
為保證樣本的多樣性,增強模型的泛化能力,本文對自制數據集ClassCount中的188個樣本(去除ClassCount數據集中用來構成混合測試集的40個樣本)進行隨機翻轉與裁剪,數據增強之后得到388 個樣本。將兩種樣本進行組合后共得到3 012個樣本,其中2 544個樣本作為訓練集(包括2 224個公開數據集樣本和320個自制數據集樣本),468個樣本作為驗證集(包括400個公開數據集樣本和68個自制數據集樣本)。表2展示了模型在不同測試集上的性能表現。
實驗結果表明,YOLOv8n加入ClassCount數據集進行訓練后,其性能相較于未加入該數據集之前有了顯著提升。在混合數據集中,mAP@50提高了約7.7%,mAP@50~95提高了約6.8%。這一結果驗證了模型的有效性,其能夠在教室場景下出色地完成對學生人數的精準檢測。
3.3 模型效果展示
圖5展示了本文提出的人數智能檢測算法使用在教室數據集上的檢測結果。在不同的場景下,模型均能準確地檢測出人數。
4 UI界面展示及功能介紹(UI interface displayand function introduction
本系統的用戶界面(圖6)主要由實時監控視頻、教室選擇按鈕、當前教室人數顯示區域以及上傳視頻按鈕組成。用戶可以通過界面直觀地查看所有教室的實時占滿率情況,并可以切換不同的教室進行監控。界面具有以下功能。
視頻顯示區域:顯示所選教室的檢測結果,視頻界面中可以看到檢測到每位學生的位置。
文本框區域:顯示當前教室的實時人數統計。例如,在圖示界面中顯示204教室當前人數為11人。
教室選擇區域:界面底部提供了多個教室的選擇按鈕(如204教室、206教室、302教室等),方便查看各個教室的使用情況。用戶可以點擊不同按鈕選擇不同的教室,被選擇的教室其視頻檢測結果會出現在上方視頻展示區域,并且會在文本框中顯示統計人數。每個按鈕除了能夠進行教室選擇,還能以進度條的形式顯示當前該教室的占滿率。
此外,在界面右下角提供了“上傳視頻”和“數據導出”按鈕。點擊“上傳視頻”按鈕可以上傳本地視頻文件進行檢測,處理預先錄制的視頻文件,擴展系統的應用場景。點擊“數據導出”按鈕可以導出指定數據。
5 結論(Conclusion)
本文實現了一款高效、低成本的輕量級智能教室人數統計系統,采用普通攝像頭即可實現端到端的自動化統計功能。該系統基于YOLOv8算法,能夠實時統計教室內人數,并顯示各個教室的利用率,同時記錄出勤及教室使用情況。通過對真實教室場景下的數據進行采集和處理,本文驗證了該系統的有效性和可靠性。實驗結果表明,加入自制數據集ClassCount之后,模型在混合數據集上的性能得到顯著提升,為智能化的教務管理提供了一種可行的解決方案。未來,隨著技術的不斷發展和優化,有望進一步提升系統的檢測性能和用戶體驗,推動智能化教育管理的普及應用。