陳濤 謝寧寧 張曦 張玉嬋 史新增 李攀
摘? 要:為了提高教室人數檢測精度識別出教室的正確狀態,克服學生上課姿態,座位遠近、面部遮擋、尺度較小等因素而造成傳統人臉檢測技術識別精度較低,無法滿足實際需求的問題。實驗采用了如今熱門的實時目標檢測算法——YOLOv3(YOU ONLY LOOK ONCE v3),并根據教室這一特定場景采集大量圖像信息樣本,對其進行標注制成訓練集。通過多次訓練并不斷調整參數,得出最佳的教室人數檢測模型.實驗結果表明,在1000張測試集圖片樣本中能得到90%以上的準確率,可以識別出教室人數并準確判斷出教室狀態,驗證了基于YOLOv3的教室人數檢測方法的有效性。
關鍵詞:人數統計;目標檢測;YOLO;圖像識別
中圖分類號:TP18 文獻標志碼:A 文章編號:2095-2945(2020)27-0030-04
Abstract: In order to improve the detection accuracy of the number of students in the classroom and recognize the correct state of the classroom, overcome the problems of students' classroom postures, seat distances, face occlusions, small scales and other factors which easily result in the low-accuracy recognition of traditional face detection technology, thereby can not meet the actual needs. In the experiment, we used the popular real-time target detection algorithm - YOLOv3 (YOU ONLY LOOK ONCE v3). A large number of image information samples are collected according to the specific scene of the classroom and labeled to make a training set. By training many times and adjusting the parameters continuously, we got the best number detection model of classroom. The experimental results show that the accuracy rate of more than 90% can be obtained in 1000 test set picture samples, and the number of students in the classroom can be identified and the state of classroom can be accurately determined, which verifies the effectiveness of the number detection method based on YOLOv3.
Keywords: number of students; target detection; YOLO; image recognition
引言
目前CNN(Convolutional Neural Networks)已經廣泛應用于機器學習、語音識別、圖像識別等多個領域[1-3]。以CNN為基礎的目標檢測算法、人群計數算法的發展也趨于穩定,在大部分場景中已有實際運用[4-5]。在課余時間,在校大學生往往有上自習的需求,而圖書館和自習室存在無座、擁擠等問題,因此教學樓中空閑的教室就為想上自習的學生提供了一個不錯的選擇。根據實際體驗,因教室的課程安排或臨時課程安排等諸多因素,同學將會花費大量時間尋找一個沒有安排課程的教室。此外,找到的空閑教室中也存在不久就會上課的問題,存在頻繁更換教室的問題。因此以神經網絡為基礎,通過識別教室人數判斷教室狀態并匹配課程表過濾有課教室,為同學推薦人數最少、可自習時間最長的教室具有重要意義,可極大的為在校生的學習生活提供便捷。
在傳統的人群計數方法中常用的有基于檢測的方法和基于回歸的方法?;跈z測的方法通常會利用SVM和隨機森林等傳統機器學習方法訓練一個分類器[6],利用人體的整體或部分結構,如頭部、肩膀等提取HOG(Histograms of Oriented Gradients)、邊緣等特征來檢測并統計人數[7]。但該方法并不適用于人群遮擋的場景,針對不同尺度大小目標的檢測效果并不理想。基于回歸的方法,其思想是學習一種特征到人群數量的映射,通常是學習一個回歸模型來估計人群的數量。
相較于傳統機器學習的方法,深度學習在計算機視覺的識別、檢測方面取得了很大的進步,識別精度有了很大的提高[9]。無論是使用目標檢測的方法還是基于回歸的方法在CNN上都能得到優于傳統機器學習方法的結果,隨著深度學習的不斷發展,在目標檢測等多領域體現出明顯優勢已經逐漸開始取代傳統的機器學習方法。
針對高密度人群場景,Zhang等人在2016年提出了MCNN(Multi-column Convolutional Neural Network)[8]利用卷積神經網絡提取密度圖,通過回歸密度圖的方式估計人群密度,該算法在SHT A得到了110.2的MAE和173.2的MSE[9]。而對于低密度人群、人群無遮擋的場景,采用目標檢測的方法進行人群計數其準確度明顯優于采用密度圖回歸的方法。
因此根據教室這一特定場景具有人群低密度、遮擋少等特點采用目標檢測的方法進行人數統計。YOLO(You Only Look Once)[9]是Joseph Redmon等人于2015年提出的目標檢測算法,最初的版本最多只能檢測49個目標。當前,已有YOLOv1、YOLOv2[10]和YOLOv3[11]等多個版本。在最新的版本中YOLOv3調整了網絡結構,利用多尺度特征進行對象檢測并且借鑒了殘差網絡[12]結構,形成更深的網絡層次。相較于前兩個版本YOLOv3可分類的目標更多、檢測的目標更多、檢測速度更快并且檢測精度也更高[11]。在精確度相當的情況下,YOLOv3的速度是其它目標檢測模型的3、4倍[11]。
本文將YOLOv3目標檢測算法應用于教室人數識別中,在采集的教室監控樣本中訓練目標檢測模型,利用訓練得到的模型對測試集進行測試,具有較高的準確性。
1 YOLOv3網絡結構
YOLOv3以darknet-53作為基礎網絡,整個網絡使用了全卷積層,由一系列1x1、3x3的卷積層組成。并且采用了三種先驗框13x13、26x26、52x52,可在特征圖上進行不同尺度的檢測,提高了小尺度目標檢測識別的能力。圖2說明了YOLOv3的網絡結構[11]。
2 實驗過程
2.1 數據集制作
實驗數據集取自教學樓各個教室視頻監控,為了提高識別系統在不同時間段針對不同人數的檢測能力,因此實驗數據集包含多張不同時間段、不同光照和不同人數的教室視頻監控截圖。在這樣的數據集上進行模型訓練更具有代表性,可更加準確的反映出教室的準確狀態。將獲取到的教室監控截圖使用LabelImg進行標注,產生訓練需要的xml文件,xml文件中包含目標分類名稱以及目標所在位置的坐標信息。為了應對更多復雜的光線環境、進一步擴充數據集的數量,因此采用了隨機參數設置的方法調整原始圖像的亮度、對比度和飽和度,訓練樣本及標注后的訓練樣本如圖3所示。最終得到的實驗數據集包含3000張教室監控截圖樣本訓練集,1000張測試集以及1000張驗證集。各個數據集中的數據均不重復,如表1所示。
2.2 訓練模型過程
本文使用的是基于Pytorch[13]深度學習框架實現的YOLOv3進行訓練和測試。采用darknet53.conv.74預訓練權重以及使用數據增強方法擴充后得到的3000張圖像的訓練集進行訓練。
模型在訓練過程中可分為3個步驟:
(1)根據損失函數計算預測框的誤差
YOLO的損失由4部分組成:對預測的中心坐標做損失、對預測邊界框的寬高做損失、對預測的類別做損失、對預測的置信度做損失。
對預測的中心坐標做損失公式為:
(1)
式中λcoord表示網格內沒有目標的系數;l■■表示網格單元i的j網格是否負責obj目標;(x,y)為預測邊界框的位置,(■,■)為訓練數據中的實際位置。
對預測邊界框的寬高做損失公式為:
(2)
式中(w,h)為預測框的尺寸,(■,■)為訓練數據中的實際尺寸。
對預測類別做損失的公式為:
(3)
式中p■■(c)為預測結果為c類的概率,■■■(c)表示單元格i為c類的真實概率。
對預測的置信度做損失的公式為:
(4)
式中C是置信度得分,■是預測邊界框基本事實的交叉部分。當在一個單元格中有對象時,? ? 等于1,否則取值為0。
(2)根據誤差計算卷積核中每個權重的梯度。
(3)通過基于梯度的優化算法更新權重。
在訓練過程中保存模型,在訓練結束后選出最優的教室人數檢測模型。
3 實驗結果
本次實驗僅需對一類目標進行識別,故采用精確率(Precision)和召回率(Recall)作為模型的評價標準,精確率反應出在識別的測試集中,預測出的樣本與實際正樣本的比值;召回率反應出所有正樣本比例中被正確識別為正樣本的比例。
式中:tp為正樣本被正確識別為正樣本;fp為負樣本被錯誤識別為正樣本;fn為正樣本被錯誤識別為負樣本;n為樣本總數。
網絡模型完成訓練后,得到最終的教室人數檢測模型,將教室監控數據幀數據輸入模型中,即可完成對教室人數進行檢測,測試結果如圖4所示。
在訓練好的模型上,使用1000張圖像的測試集進行驗證?;赮OLOv3的教室人數檢測模型的精確率和召回率如表2所示
表2 重要指標
通過表2和圖4可以看到基于YOLOv3網絡訓練的教室人數檢測方法,其精確率和召回率都達到90%以上。對一些存在遮擋問題的目標也能進行有效識別。在實際應用中,可以準確判斷教室狀態,滿足實驗需求。
4 結束語
為了解決傳統目標檢測算法帶來的識別精度低、魯棒性差等問題,本文基于YOLOv3目標檢測算法實現了教室人數實時檢測與統計功能,結果表明基于YOLOv3的人數檢測方法無論是在測試精度和還是檢測統計速度上都取得了良好的效果。在1000張測試集上進行評估,達到了92%的準確率。本研究的結果意味著,使用YOLOv3進行教室人數檢測切實可行,能夠準確的檢測出教室狀態,為同學們推薦符合要求的教室。下一步,將通過優化網絡結構、優化參數,進一步提高教室人數檢測算法的識別速度和識別精度。
參考文獻:
[1]武陽,余綜.基于CNN的擴展混合端到端中文語音識別模型[J].青島科技大學學報(自然科學版),2020,41(01):104-109+118.
[2]朱超平,楊藝.基于YOLO2和ResNet算法的監控視頻中的人臉檢測與識別[J].重慶理工大學學報(自然科學),2018,32(08):170-175.
[3]Engineering. Studies from Civil Aviation University of China Further Understanding of Engineering (A Light Cnn for End-to-end Car License Plates Detection and Recognition)[J]. Journal of Technology & Science,2020.
[4]Gao, J., Lin, W., Zhao, B., Wang, D., Gao, C., & Wen, J. (2019). C^3 Framework: An Open-source PyTorch Code for Crowd Counting[J]. ArXiv, abs/1907.02724.
[5]Xingjiao Wu, Baohan Xu, Yingbin Zheng, et al. Fast video crowd counting with a Temporal Aware Network[J]. arXiv,2020, 403:13-20.
[6]江中華.人群密度估計綜述[J].輕工科技,2018,34(10):80-81+87.
[7]Li M, Zhang Z, Huang K, et al. Estimating the number of people in crowded scenes by mid based foreground segmentation and head-shoulder detection[C]. International Conference on Pattern Recognition. New York, NY, USA: IEEE, 2008: 1-4.
[8]Zhang Y, Zhou D, Chen S, et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.
[9]Redmon, J., Divvala, S.K., Girshick, R.B., & Farhadi, A. (2015). You Only Look Once: Unified, Real-Time Object Detection[J]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 779-788.
[10]Redmon, J., & Farhadi, A.(2016). YOLO9000: Better, Faster, Stronger[J]. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 6517-6525.
[11]Redmon, J., & Farhadi, A.(2018). YOLOv3: An Incremental Improvement[J]. ArXiv, abs/1804.02767.
[12]He, K., Zhang, X., Ren, S., & Sun, J.(2016). Deep Residual Learning for Image Recognition[J]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),770-778.
[13]本刊訊.Facebook發布深度學習框架PyTorch 1.3[J].數據分析與知識發現,2019,3(10):65.