













摘要:云自習的發展對培養學生的自主學習能力、推動智慧教育的建設有重要意義。然而云自習的用戶監管正面臨一些困難,如目前已有的視頻監控方法仍需由監督者使用完整過程錄像觀測用戶的自習狀態。此外,完整的視頻監控數據上傳云服務器后,有較大的隱私泄露風險。為解決以上問題,文章設計了一種基于Dlib模型的人臉關鍵點檢測算法,通過視頻流分析用戶自習狀態下臉部特征的變化,實現用戶自習狀態的智能識別檢測。根據上述檢測算法,文章實現了云自習智能檢測和監管系統。該系統無需存儲完整的視頻數據進行回看,即可展現用戶的自習狀態變化和自習結果,充分保護用戶的隱私。自習場景模擬下的實驗數據表明,該系統的平均檢測正確率達到80%以上,可實時處理每秒20幀以上的視頻流,能夠滿足自習狀態檢測準確率和實時性的要求。
關鍵詞:云自習;行為檢測;智能監管;圖像處理;Dlib模型
中圖分類號:TP315文獻標志碼:A
0 引言
20世紀以來,教育信息化歷經1.0到2.0階段,加強網絡學習空間建設和應用,推動數字校園建設和智慧教育建設,構建高質量教育支撐體系是國家教育政策的實施重點。2021年多部門聯合發布《關于進一步減輕義務教育階段學生作業負擔和校外培訓負擔的意見》,亦稱“雙減”政策。在該政策背景下,如何科學利用課后時間以及營造課后學習環境成為主要痛點。
云自習通過視頻直播營造線上自習室的多人學習氛圍,借助攝像頭全景敞視的監督機制,有效規范個人行為和學習習慣[1]。然而,目前已有的視頻監控方法,仍需監督者使用過程錄像觀測用戶的自習狀態。而且,完整的監控數據上傳云服務器后,用戶的隱私數據面臨泄露的風險。
綜上所述,文章設計了基于Dlib模型的云自習智能檢測和監管系統。該系統使用Dlib模型設計了一個人臉關鍵點檢測算法,通過分析用戶自習狀態下人體行為特征的變化,智能識別用戶的自習狀態。該檢測算法無須存儲完整的視頻數據進行回放,保護了用戶的隱私。基于此算法,文章搭建了云自習的Web服務,提供用戶注冊登錄、實時監管自習、自習情況統計分析等完整的系統功能。
1 基于Dlib模型的人臉關鍵點檢測算法
1.1 算法的總體流程
檢測算法的流程如圖1所示,分為如下3步。
(1)對每幀圖片圖像預處理:采集獲得圖像后,該算法為排除周圍環境的影響,需要對圖像并行進行灰度化處理,根據網絡延時調整幀率。
(2)提取人臉關鍵點:從預處理后的圖像中,該算法分析并提取人臉關鍵點的位置數據,用于狀態分析和動作識別。
(3)狀態分析以及動作識別:該算法通過相鄰幀人臉關鍵點的坐標變化,基于動作檢測算法對用戶是否具有特殊動作進行判定,將結果記錄在該幀的數據結構中。
1.2 圖像預處理
環境因素、光照條件和設備質量的差異會影響人臉關鍵點特征的提取,需對采集的圖像進行適當的預處理[2]:該算法使用高斯濾波幫助去除圖像中的噪聲點;通過直方圖均衡化進行照度校正,使圖像的灰度分布更均勻;通過線性拉伸將圖像的灰度值映射到一定范圍內,以增強圖像的對比度;為了確保圖像的一致性,對其進行幾何和灰度歸一化處理,同時進行圖像增強等操作[3]。
1.3 人臉特征的提取
人臉關鍵點檢測(Facial Landmark Detection, FLD)根據輸入的人臉圖像,自動定位出面部關鍵特征點,如眼睛、鼻尖、嘴角點、眉毛以及人臉各部位的輪廓點[4]。在特征提取中,文章使用Dlib提供的imgLab工具[5]進行標注并生成此xml文件;使用Dlib庫中的人臉68個關鍵點檢測dat模型庫(shape_predictor_68_face_landmarks.dat)提取視頻中的人臉特征[6];返回人臉特征點坐標、人臉框及人臉角度等[7-8]。計算程序如下所示 :
predictor_path = 'model/shape_predictor_68_face_landmarks.dat'
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path)
# 面部特征點檢測
shape = predictor(img, det)
landmarks = np.matrix([[p.x, p.y] for p in shape.parts()])
人臉68個關鍵點檢測結果如圖2所示,該模型通過訓練人臉坐標的變化特征,可準確提取視頻中人臉的特征及其變換情況,得到較為準確的判定結果。
1.4 狀態分析及動作識別
1.4.1 轉頭檢測的實現
轉頭檢測是對鼻尖變換情況的檢測。在轉頭識別中,分為左轉頭和右轉頭,當滿足其中一項則被判斷為轉頭。
左轉頭判斷:關鍵點30的橫坐標<關鍵點48的橫坐標
右轉頭判斷:關鍵點30的橫坐標>關鍵點54的橫坐標
具體描述為前一幀的鼻尖橫坐標(key30)小于下一幀的左側臉邊框點的橫坐標(key48)為左轉頭,同理大于右側臉邊框點的橫坐標(key54)為右轉頭。
計算程序如下所示 :// lastmark前幀坐標信息,landmark當前幀的坐標信息
if landmark[30].tolist()[0][0]< lastmark[48].tolist()[0][0]
or landmark[30].tolist()[0][0]> lastmark[54].tolist()[0][0]:
print("轉頭")
return True
第12期2024年6月無線互聯科技·智能控制No.12June,2024
第12期2024年6月無線互聯科技·智能控制No.12June,2024
1.4.2 說話檢測和哈欠檢測的實現
說話和哈欠行為的檢測都是對嘴部特征的模擬。在說話的檢測中,包含張嘴和閉合2個過程,但歸根結底還是嘴部關鍵點(key62與key64)之間歐式距離的改變。文章根據前、后兩幀距離變化通過機器學習的簡單回歸得到最佳閾值,嘴部關鍵點超過該閾值則被判定為說話。
王超等[9]提出只關注嘴部圖像,利用卷積神經網絡(Convolutional Neural Network,CNN)和長短期記憶(Long Short-Term Memory,LSTM)網絡對視頻進行空間和時間的特征提取,從而實現哈欠檢測。文章中哈欠檢測則是通過對比同時兩幀上下嘴唇(key62與key66)的歐式距離。如果歐式距離達到嘴長的1/2,則判斷為哈欠。歐式距離的計算方法如式(1)所示。
1.4.3 眼疲勞檢測的實現
基于視覺特征的疲勞檢測具有非接觸性的特點,而且可直接根據人的面部關鍵點坐標的變化(如頭部位置的偏移、眼睛閉合時長、打哈欠等)反映其疲勞狀態[10-11]。
利用數字序號定位人眼,使用Dlib模型庫可以方便地進行人眼關鍵點的標記[12]。眼疲勞檢測通過多幀眼睛閉合來判定,通過計算眼睛長寬比(Eye Aspect Ratio,EAR)[13]。當人眼睜開時,EAR在某個值上下波動,當人眼閉合時,EAR迅速下降,理論上會接近于0,但關鍵點檢測模型還沒有這么精確。所以通常認為當EAR低于某個閾值時,眼睛處于閉合狀態。眼部關鍵點分布如圖3所示,EAR計算如式(2)所示。
2 云自習智能檢測和監管系統的實現
2.1 提示框設計
每一幀的檢測包含離開、說話、轉頭、哈欠、眼疲勞5種。在利用模型對每一幀畫面進行檢測后,其結果都會被前端獲取并反饋,這使得提示的頻率非常夸張,故對提示框的邏輯提示需做合理收縮并保留有效提示,達到消除冗余的效果。如果說話、轉頭、哈欠、眼疲勞等行為判定為真,且上一幀沒有此類行為,那么提示出現在右邊的提示框中。如果離開行為連續出現5幀,那么提示出現在對話框中,并且直至下一次出現在鏡頭之前,不再提示離開。
2.2 自習數據計算
自習數據分成2類:一類為狀態;另一類為細節動作。狀態包括說話狀態、離開狀態、自習狀態。細節動作包括轉頭、哈欠、眼疲勞。狀態最后以時間為單位進行展示,動作以用戶發生動作的次數進行展示。狀態計算過程如下。
設tall為用戶自習的總時間,A為系統處理總幀數,S為其中說話幀數,L為未檢測到用戶幀數。由此,根據式(3)—(5),可以計算用戶的說話狀態時間Ts、離開時間Tl以及有效自習時間Tk。
2.3 實時視頻自習狀態檢測系統的實現
模塊功能劃分情況如表1所示,根據實際的檢測和監管需求,系統劃分了4個業務模塊,每個模塊包含具體的功能。
系統使用Web端獲取用戶狀態后送至服務器處理分析,同時服務端返回結果給Web端實時展示。每次任務結束后,Web端再將數據總結送回服務器,服務器將本次記錄寫入數據庫。同時,用戶在查看歷史記錄時,Web端會向服務器發送數據請求,服務端從數據庫篩選記錄返回給Web端。
云自習客戶端模塊的主要功能包含:用戶注冊、用戶登錄、開始自習、結束自習、自習記錄查詢以及自習狀況分析。故主要用例有注冊登錄模塊、自習業務模塊、記錄展示模塊。
3 模擬實驗與性能測試
本文采用前、后端分離的測試方法,插入實錄視頻流在視頻中模擬自習狀態。邀請40名同學,要求每位同學錄制一個總時長為5 min的視頻,每個視頻包含共計10次轉頭、10次哈欠、5次眼疲勞、1 min的背誦以及1 min離開座位。下面是一些實驗結果的展示。
轉頭關鍵點變化模擬如圖4所示。當發生轉頭時,測試者的鼻尖關鍵點到臉的兩側比例變化明顯。
說話關鍵點變化模擬如圖5所示。當發生說話動作時,測試者的上下嘴唇關鍵點分離,但上下分離的距離一般達不到嘴的左右兩側關鍵點的長度。
哈欠關鍵點變化模擬如圖6所示。當發生哈欠動作時,測試者的上下嘴唇關鍵點分離且相距的長度往往超過左右嘴唇的距離。
控制臺結果反饋如圖7所示。由圖可知:檢測的結果存儲在以動作為區分的key、value為布爾值的哈希表中,并且具備識別一組幀中同時存在的多種動作。
文章算法統計3類動作以及2種狀態的平均識別率,結果如表2所示。根據表中對本文算法的綜合性能比較,可以得出如下結論:該算法在實時性和平均識別率方面均表現出一定的穩定性和保證。
前端狀態提示模塊功能測試中,選取哈欠和離開狀態進行展示。測試者哈欠提示如圖8所示,離開5幀后系統提示如圖9所示。
4 結語
基于Dlib模型,在系統在線自習室的應用場景中,文章通過特征點的變化作為感知機的輸入達到分類自習者自習狀態的檢測和記錄的目的,實現了用戶狀態實時、精確地檢測,根據數據結果的交互性驗證了系統的可行性,優化用戶的產品體驗。系統記錄的數據能夠用于數據分析,并以直觀的方式反饋給用戶。
所提人臉關鍵點采集方法應用于動作檢測時同樣存在一定的弊端,主要在于檢測的效果僅通過人臉的變化來表現,當系統無法檢測到完整的人臉時,關鍵點的坐標便無法計算,檢測失效。
參考文獻
[1]曲興儒,喬桂娟.中國高校畢業生與勞動力市場的對接問題研究[J].教育現代化,2018(10):169-172.
[2]劉兆豐.Dlib在人臉識別技術中的運用[J].電子制作,2020(21):39-41,7.
[3]姚麗莎,張軍委,房波,等.基于LBP和SVM的人臉表情識別系統的設計與實現[J].貴州師范大學學報(自然科學版),2020(1):63-72.
[4]董瑞霞.結合人臉檢測的人臉特征點定位方法研究[D].青島:青島科技大學,2017.
[5]趙志強,袁恩昌,張智雄.基于Dlib庫的人臉識別考勤系統設計與實現[J].無線互聯科技,2020(20):72-74.
[6]唐海濤,吳果林,陳迪三,等.基于Dlib的矢量特征實時笑臉檢測[J].電子元器件與信息技術,2021(8):101-102,105.
[7]王秀,周楓曉,劉保羅,等.基于Dlib庫的駕駛員疲勞駕駛檢測系統[J].物聯網技術,2021(12):26-29.
[8]任艷,張蕾,徐春,等.基于圖像處理的人臉識別技術研究[J].電子元器件與信息技術,2020(7):81-82.
[9]王超,徐楚昕,王志鋒.面向空中交通管制員疲勞識別的哈欠檢測[J].安全與環境學報,2023(6):1970-1977.
[10]陸榮秀,張筆豪,莫振龍.基于臉部特征和頭部姿態的疲勞檢測方法[J].系統仿真學報,2022(10):2279-2292.
[11]楊佳萍.基于人臉特征點對齊的協同表示分類算法[J].信息系統工程,2017(11):154-155.
[12]唐琎,許海柱,王力.圖像中人眼檢測技術綜述[J].計算機應用研究,2008(4):961-965.
[13]龔淑娟.基于面部多指標的貨運司機疲勞駕駛檢測[J].物流技術,2020(9):74-81.
Design of cloud self-studying intelligent detection and supervision system based on Dlib model
Abstract: The development of cloud self-study is of great significance for cultivating students’ self-learning ability and promoting the construction of smart education. However, user supervision for cloud self-study is facing difficulties. The existing video surveillance methods still require the use of complete process video recordings to observe the user’s self-study status. Moreover, there is a significant risk of privacy leakage when complete video surveillance data is uploaded to the cloud server. To address the aforementioned issues, this paper proposes a Dlib model based facial keypoint detection algorithm that analyzes the changes in human behavior characteristics during user self-study through video stream analysis, achieving intelligent recognition and detection of user self-study status. Based on the above detection algorithms, this article implements a cloud self-learning intelligent detection and supervision system. The system does not need to store complete video data for review, and can fully display the changes in the user’s self-study status and self-study results, fully protecting the user’s privacy. The experimental data under the simulation of self-study scenarios shows that the detection accuracy of the system reaches an average of over 80%, and it can process video streams of more than 20 frames per second in real-time, meeting the requirements of accuracy and real-time detection of self-study status.
Key words: cloud self-studying; behavioral testing; intelligent supervision; image processing; Dlib model