





基金項目:2023年河南省大學生創新創業訓練計劃項目大創項目;項目名稱:基于視頻監控的考研教室動態播報系統;項目編號:202310472049。2022年河南省科技發展計劃科技攻關項目;項目名稱:輕量化深度網絡的肺部分割研究;項目編號:222102210325。河南省教育廳2022年省級專創融合特色示范課程;項目名稱:C語言程序設計;項目編號:89。2024年度河南省高校人文社會科學研究一般項目;項目名稱:文化與旅游深度融合的路徑與對策研究;項目編號:2024-ZDJH-805。
作者簡介:張甲鵬(2004—),男,本科生;研究方向:目標檢測。
*通信作者:竇育民(1973—),男,講師,博士;研究方向:計算機視覺。
摘要::為了節省學生尋找空閑教室的時間,實時播報教室人數情況,文章研究基于視頻監控的考研教室動態播報系統,以滿足考研學子的需求。在視頻監控系統中,利用數字圖像處理技術進行客流識別是目前國內研究的熱點問題,涉及圖像處理與識別的許多核心問題,包括視頻圖像的實時采集、運動目標檢測、目標跟蹤以及圖像的處理與分析等多方面的內容。基于YOLOv5s的網絡結構,文章提出一種基于YOLOv5s的教室場景下的學生計數方法,從而甄別出該教室是否為空閑教室,將統計信息報送系統后臺處理,對空閑教室按空閑座位進行降序排列,推送到客戶公告端,用戶可以看到空閑教室編號、空閑位置數等信息,實現人數的實時播報。
關鍵詞:視頻監控;人員計數;YOLOv5
中圖分類號:TP3111文獻標志碼:A
0引言
近年來,我國高等教育普及化程度持續提高,高校畢業生逐年增多。在現實的就業形勢下,越來越多的大學生寄希望于讀研來舒緩“壓力”[1-3]。隨著考研學子的不斷增多、考研競爭力的不斷增加,尋找空閑教室進行自習備考已經成為多數考研學子的一項重要需求。然而,考研學子在尋找教室的過程中經常會遇到許多難題,其中主要包括:由于不知道各教室是否有課,學生需要在各教學樓、各樓層、各教室之間花費較多的時間去尋找空閑教室;學生隨機選擇自習教室,各教室之間容易出現自習人數分布不均的現象,使教學資源因分配不均而造成浪費[4]。為了節省學生尋找空閑教室的時間,本文對此項目進行研究,通過實時播報教室人數情況,為學生學習提供更多時間,滿足考研學子的需求。
隨著卷積神經網絡的發展,基于深度學習的特征提取網絡在實時性以及精度方面均優于傳統方法,常見的網絡如SSD、FasterR-CNN、YOLO等[5]。本文利用YOLOv5s模型開發出一種人數識別統計系統,為考研學子尋找空閑教室提供便利,從而解決學生浪費大量時間和精力去尋找空閑教室的痛點。
1項目概述
11背景分析
計算機技術的應用為諸多行業的發展提供了全新的工具。其中,計算機圖像處理技術在現實生活中的應用日益廣泛[6],智能視頻監控在各個領域扮演著越來越重要的角色,其中的熱點之一是基于圖像識別的人數統計[7]。對于海量的監控視頻數據,通過使用圖像與視頻中的目標檢測、跟蹤、分類和識別等技術為監控視頻的智能化處理與應用提供了新的契機[8]。目前,人數識別、教室位置空余識別、空閑教室推薦等技術愈發成熟,給人們的日常生活帶來了極大的便利。如何將這些技術具體應用于日常生活中從而給人們帶來更大的使用價值成為眾多工作者思考的問題之一。
目前的教室人數識別軟件大多只有人數識別,人數識別率和準確率也逐漸提高,但是對動態的教室人數識別以及考研教室的推薦還存在著一定的問題需要解決。視頻具有比圖片更豐富的圖像資源,蘊含著更為豐富的信息,但同時也給圖像處理帶來了更大的困難。如何對識別出的教室人數進行合理的對應處理,幫助考研學子快速找到需要的教室是本文需要研究和解決的問題之一。
12設計目標
基于視頻監控的考研教室動態播報系統的設計目標是實現教室人數檢測,判斷教室的使用狀況,實現電腦端數據的實時處理與精確的空閑教室推薦,同時傳輸到客戶端實現互通。該系統應具備一定的適應性和可擴展性,可以在不同的場景下進行人數檢測,幫助考研學子節省時間,提高學習效率。
13開發環境及工具
(1)PyQT5:QT是常用的用戶界面設計工具,在Python中則使用PyQT5這一工具包,它是Python語言和QT庫的成功融合,能夠實現檢測界面的設計。
(2)YOLOv5:YOLOv5是單階段算法中的典型代表,它由3個部分構成:主干、頸部、頭部。其中,主干網絡用于接收不同大小的圖片,從輸入圖像中提取信息特征;頸部網絡將提取到的圖像特征按照一定規律進行融合,豐富特征的語義信息,將處理后的特征輸入檢測頭中進行預測,分類器會獲取對象的類別并生成邊界框的坐標,從而實現端到端的目標檢測和識別[9]。
(3)Finalshell:Finalshell是一款一體化的服務器和網絡管理軟件。該軟件支持多標簽、批量服務器管理、自定義命令參數、SSH加速等功能,它不僅是SSH客戶端,還是功能強大的開發與運維工具,可以充分滿足本項目的開發運維需求。
(6)Redis:Redis是一個開源的、使用C語言編寫的、支持網絡交互的、可基于內存也可持久化的Key-Value數據庫[10]。
(4)Caddy:Caddy服務器是一個開源的,使用Golang編寫,支持HTTP/2的Web服務端。它可以使用Golang標準庫提供HTTP功能,也可以作為反向代理和負載均衡器[11]。
(5)FastAPI:FastAPI是一個現代的、快速(高性能)的Web框架,用于構建API。
(6)iVX:iVX是一款新型的低代碼開發平臺,其獨特之處在于它能像編程語言一樣靈活地生成代碼和整個應用。
2系統整體方案設計
21系統模塊的設計
為了實現系統層次分明,減少耦合,系統總體劃分為3個部分:教室人數檢測模塊、數據傳輸模塊和微信小程序查詢模塊。
(1)教室人數檢測模塊:該模塊利用教室的現有設備即攝像頭監控教室情況[12-13],使用Pycharm等工具開發代碼,利用YOLOv5快速目標檢測技術[14]對目標進行單一的檢測,只對教室人數進行識別和統計,從而對攝像頭傳遞的原始圖像進行初步的分析處理,得到檢測結果。
(2)數據傳輸模塊:該模塊首先搭建部署服務器,然后使用Python的Web框架創建一個API[15]接口用于接收從人數檢測界面傳來的數據。先將檢測出的數據存儲在數據庫中,然后在Pycharm中利用FastAPI編寫請求體,將數據庫上傳至服務器。隨后在小程序后臺中,通過GET調用從PythonAPI發送過來的數據。最后在小程序前端,獲取經過處理的數據并展示。
(3)微信小程序查詢模塊:該模塊主要實現將檢測平臺獲取的數據由Python[16]傳到小程序的功能。當用戶在小程序界面輸入某教室號點擊查詢時,后臺服務運行調取API,服務返回的參數是檢測到的該教室人數,然后頁面跳轉呈現該教室信息。該部分流程如圖1所示。
22關鍵功能的設計
221教室人數的檢測
教室人數檢測平臺也就是系統后端的開發主要使用了YOLOv5快速目標檢測技術和PyQT5界面開發工具,其中最為核心的是YOLOv5快速目標檢測技術。本檢測過程首先調用教室監控,然后將原始視頻傳輸到檢測平臺進行檢測。該過程主要使用YOLOv5中的detect.py程序,運用的是YOLOv5s權重文件,逐幀分析處理視頻并單一統計person標簽數量,實現人數的統計。在檢測過程中,首先對講臺位置進行檢測。如果有人則直接判定為“不可用”;如果講臺位置無人,則對教室人數進行統計。如果檢測人數超過總座位數的二分之一,則判定為“不可用”,反之則為“可用”。將檢測出的教室人數及教室使用狀況顯示在用QTDesigner設計出的界面上,如圖2所示。
222服務器的部署
服務器的搭建主要使用了Finalshell、Redis數據庫、FastAPIWeb框架及Caddy等工具。首先安裝Finalshell遠程連接服務器工具,然后在該工具中安裝Redis、Python39及Caddy。在傳輸操作中,首先以json形式將數據存儲在Redis數據庫中,然后在Pycharm中利用FastAPI編寫請求體用于將數據庫上傳至服務器,以供前端獲取數據。在此過程中同時使用了Caddy進行反向代理來確保HTTPS的安全性。
223微信小程序開發
開發者選擇首先在低代碼iVX平臺內進行微信小程序的開發,然后將生成的代碼和小程序導出,脫離平臺進行使用。iVX提供了一個完善的低代碼開發IDE(整合開發環境),支持不編寫代碼即可實現應用的構建,支持生成微信小程序等類型的應用。在小程序的前臺開發中,開發者使用可視化組件、自定義樣式和布局以及無代碼的交互邏輯設計和控制來搭建各類頁面。在后臺開發中,開發者主要進行API屬性和服務調用的配置。
小程序前臺分為3個頁面展現小程序的功能。在“首頁”,用戶可以直觀地看到由后臺推送的閑置教室,除此之外最主要的功能是用戶輸入教室號后點擊查詢來查看教室人數;在“教室信息”頁,用戶可以選擇教學樓和樓層,從而看到相應教室的數據;在“個人中心”頁面,可以看到個人信息和預約教室等內容。前臺的數據由后臺通過API獲取,在后臺配置API的屬性,通過GET調用接口URL,再通過后臺服務獲取調試結果,前臺調用后臺服務即可獲取數據,最終頁面跳轉將相關數據呈現給用戶。
3功能實現
31后端人數檢測功能
基于視頻監控的考研教室動態播報系統[17]的后臺使用已有的YOLOv5人臉檢測的算法和程序。首先調用教室攝像頭進行圖像采集,然后利用算法逐幀檢測出視頻中的人像并將其標記出來,最后統計出視頻中的人數得到檢測數據。數據傳輸模塊通過API將識別得到的教室人數數據傳送到小程序后臺數據庫中,對應至教室人數欄目,通過算法識別出教室狀態為“可用教室”,如圖3所示。
32前端小程序播報功能
(1)登錄模塊:用戶輸入手機號、密碼后點擊登錄,系統確認信息后進入功能頁面。新用戶可以通過點擊登錄下方的提示進入注冊頁面進行賬號注冊。如果成功,則提示注冊成功并返回登錄窗口,如果失敗則提示失敗原因并重新注冊[18]。
(2)注冊模塊:用戶輸入昵稱、手機號、密碼等賬號基本信息,填寫正確的圖片驗證碼和短信驗證碼后點擊注冊即可完成注冊。通過圖片驗證碼和短信驗證碼2種驗證可以提高系統的安全性。如果已有賬號,用戶可以點擊提示返回登錄頁面。
(3)教室檢索模塊:小程序前端提供教室號搜索框和查詢按鈕,用戶登錄小程序輸入教室號后發送查詢請求給后臺服務模塊。后臺服務模塊接收到查詢請求后,查詢數據庫中指定教室號對應的人數數據并將查詢結果返回給小程序前端,用戶可以在小程序上看到相關教室的人數數據。該系統結構如圖4所示。
(4)優先推選教室功能:用戶首頁有優先推選教室模塊,后臺獲取數據后會進行數據分析,然后通過算法將座位數較少的教室推送至優先推選模塊供考研學子快速選擇,如圖5所示。
(5)數據獲取模塊:使用Python的FastAPIWeb框架創建一個API接口,用于接收從人數檢測界面傳來的數據。在API接口中,根據接收到的數據做出相應的處理,通過HTTP請求將處理后的數據發送到小程序后臺,在此過程中可以使用Python的requests庫發送POST請求將數據傳遞給小程序后臺的API接口。在小程序后臺的API接口中,首先接收從PythonAPI發送過來的數據,然后在小程序前端通過調用后臺提供的API接口,獲取經過處理的數據。
(6)結果反饋模塊:通過API獲取數據后,用戶查詢的某個教室結果將以文字的形式出現在小程序教室信息頁面或者在教室信息頁面顯示某層樓的所有教室信息以供用戶選擇,如圖6所示。
4結語
本文用PyQtGUI設計實現了基于深度學習的教室人數識別系統,該系統搭載了應用于人流量較大場景下的多人臉識別算法。該算法很好地滿足了精度和速度的要求,體系統一、輕巧,易于在移動設備上搭建,界面簡潔清晰、功能強大,可以為用戶提供多人臉識別的各種功能[19]。在此基礎上,基于視頻監控的考研教室動態播報系統利用教室現有視頻監控,通過利用算法程序處理視頻圖像,實時識別教室人數并作出統計,將教室使用情況動態播報至客戶端,為考研學子提供了易于尋找空閑教室的平臺。只要有網絡,就可以實現在3個校區內多人同時在線了解各教室內座位情況,極大地節約了考研學生尋找教室的時間。開發者后期將會繼續實現播報系統和程序客戶端的統一化和規范化,提升考研教室小程序的運行管理效率。
參考文獻
[1]尹彪.基于視頻圖像處理的鐵路客運站客流識別系統研究與實現[D].北京:北京交通大學,2012.
[2]張哲華.基于視頻監控的教室人數統計方法研究[J].系統仿真技術,2022(3):228-232.
[3]宮顥韻.考研為何“越戰越勇”——基于多次考研“上岸”學生的扎根理論研究[J].大學教育科學,2023(5):85-96.
[4]王海起,李健,劉香斌,等.基于視頻的校園教室空閑率分析系統[J].地理信息世界,2019(6):74-79.
[5]劉媛,陳小麗,屠增輝,等.基于改進RetinaFace算法的教室人數統計方法[J].計算機與數字工程,2022(9):1887-1890,1916.
[6]張友愛.計算機圖像處理技術在現實生活中的應用[J].電子元器件與信息技術,2023(2):73-76.
[7]豐敏強,汪敏倩.基于熱點區域定義的人數統計方法研究[J].計算機科學,2017(增刊1):173-178,201.
[8]楊航遠,張雨佳.行人再識別技術研究進展[J].中國圖像圖形學報,2023(6):1829-1862.
[9]鄧鋼,趙慶華,祁光威,等.基于YOLOv5的鋁合金型材表面缺陷檢測方法研究[J].現代制造工程,2023(11):120-128.
[10]趙維娜,孫博,潘墨堯,等.基于Redis緩存技術的APS系統架構設計[J].河北冶金,2023(增刊1):55-57.
[11]黃聰穎,滕建.利用反向代理服務器對基于Web的選課系統的性能優化[J].微型電腦應用,2020(10):132-134.
[12]劉紅,宋茹,王保興.基于個體特征和紋理特征的視頻人數統計算法[J].安徽大學學報(自然科學版),2015(3):47-50.
[13]歐溫暖,田緒紅,朱同林.基于教室監控視頻的課堂行為計數分析[J].圖學學報,2012(2):113-118.
[14]歐陽維晰,樊萬姝,陳麟偉.基于YOLOv5的課堂抬頭低頭行為識別研究[J].電腦知識與技術,2023(29):9-12.
[15]李正,吳敬征,李明樹.API使用的關鍵問題研究[J].軟件學報,2018(6):1716-1738.
[16]李瀟敏,趙素素,馬文征,等.基于TensorFlow框架和Pycharm醫學圖像分類識別軟件的實現[J].消費導刊,2021(33):29-30.
[17]栗琳,溫薇,孫朝陽.基于微信小程序實驗室資源開放平臺探索[J].實驗室研究與探索,2021(2):248-251,265.
[18]劉劍英.人臉識別門禁聯動應用系統研究[J].遼寧高職學報,2019(5):75-78.
[19]郭琪,王志慧,范道爾吉,等.基于深度學習的多人臉識別系統的設計實現[J].內蒙古農業大學學報(自然科學版),2022(2):86-92.
(編輯王永超)