◆李豪豪 李洪進
基于大數據和人工智能的教學分析系統的研究
◆李豪豪 李洪進通訊作者
(遵義醫科大學醫學信息工程學院 貴州 563000)
信息網絡技術的飛速發展,越來越多的大學生沉浸在種類繁多的網絡信息中而忽視了課堂知識,學生對課程或授課方式的感興趣程度也直接影響著學校教學質量。對此,我們研究設計基于大數據和人工智能的教學分析系統,調用人臉模型檢測學生人臉,結合人工智能和神經網絡研究方法,利用抬頭角度訓練適合本系統的抬頭模型,根據抬頭的人數與檢測到的總人數的比值計算出抬頭率,反映學生上課行為的相關參數。分析出學生的抬頭情況,能很大程度上助推授課教師根據學生的聽課狀態及時做出調整,促使“教學互動行為”成為可能,達到高校教學評估多樣化和育人宗旨。
抬頭率;抬頭角度;人數檢測;神經網絡
當下,高校教育越來越受到人們的重視。面對優越的發展技術,給人們帶來眾多好處的同時,也沖擊著學生們課堂的學習效果。一方面,通過專家到教室聽課評判教師的授課效果所具有的預先性對教學評估的真實程度會產生一定的偏差;另一方面,高校教師們并不能夠隨時隨地掌握自己的授課情況,不論是通過查看監控或者其他方式來跟蹤自己的授課行為都會受到教學管理制度的制約,再譬如人眼長期觀看監控視頻錄像和人本身的心理狀態也容易受環境因素的影響,導致產生的視覺效應使分析結果產生偏差。
本文主要研究使用圖像識別技術分析學生在課堂中的抬頭情況大致判斷學生的聽課效率,借助百度API和Haar[1]人臉模型實現課堂人數的動態檢測,合理地分析出反映學生上課行為的相關參數;使用Bio ID Face Database–Face DB數據集研究眼睛的旋轉角度[2]判斷學生抬頭情況,計算出抬頭率[3]。研究與設計教學分析系統能夠很大程度上促使高校教師從教學實際和學生實際出發,有效地改善高校課堂教學策略,提高學生聽課效率。
系統采用當下較受歡迎的一種解釋型的、面向對象的、動態數據類型的高級程序設計語言Python進行開發,Python廣泛存在于數據可視化分析、人工智能、網頁爬蟲等多個領域,其能夠聯結計算機視覺庫OpenCV、NumPy和友好的GUI編程庫等眾多科學計算拓展庫。PyCharm編譯器更能夠高效地進行本系統的編程實驗。
Adaboost算法是機器學習中的一種重要算法,可以通過對同一個訓練集進行訓練得到不同的弱分類器,當我們將多個不同的弱分類器集成起來后,就可以得到一個最終的強分類器。對于教學分析系統而言,需要對本地的圖像信息或采集到的人臉數據進行表情分類[4],通過課堂上采集到的數據分析出此時此刻學生的特殊表情和學習動機,很大程度上能支持本系統的研究。
本系統可以利用TensorFlow的神經網絡實現,TensorFlow中使用張量(tensor)表示數據,用計算圖(Graph)搭建神經網絡,用會話(Session)執行計算圖中的節點運算,優化線上的權重(參數),得到模型。使用Graph搭建神經網絡的計算過程如圖1所示,神經元線上的權重用變量W表示:
輸出Y = w1?X1 + w2?X2 (1)

圖1 Graph搭建神經網絡
人臉注冊可以提前輸入到人臉庫中。當我們申請到一個人臉識別的賬號后,便可以調用這個人臉檢測接口;當我們獲取到每一個學生圖像的URL地址后,就可以為他們的圖像賦予一個唯一的標識FACE_TOKEN;如若使用的是同一張圖片則返回的是同一個TOKEN。但是要注意的是,我們首先需要把輸入的圖像轉為Base64編碼,這種編碼是專門用于處理二進制文件的,人不可讀,否則會報錯。
Haar人臉特征可以將我們輸入的有效數據進行灰度處理后反映出本張圖像的特征值。對于輸入的圖像,改變了其特征模板的大小和位置就可以表示出我們想要的圖像。使用OpenCV中的sum積分圖計算一般的垂直或者水平的矩形特征,用titled sum積分圖計算傾斜的圖像特征。V = Sum(白)–Sum(黑),如圖2所示:

圖2 Haar特征模板
神經網絡[5]是一種具有大量節點的運算模型,其可以對沒有經過訓練的數據進行分類模擬。神經網絡利用梯度下降機制訓練模型。在本系統的研究中,可以使用TensorFlow神經網絡庫的順序連接層,輸入圖片,訓練后進行誤差分析,精簡程序所帶來的誤差。誤差方程為cost=(predict - real)2,將我們期望得到的權重值減去實驗得到的真實值就可以反映出誤差便于系統進行下一步的優化。如果我們輸入X數據,輸出Y數據,那么誤差方程cost =(w?X-Y)2,當cost趨于w即cost=(w-0)2后,即是我們想要的理想值。但是在實際實驗中,我們的數據是以矩陣的形式展現,所使用的權重值往往也是一個多維矩陣,我們就需要得到一個權重的局部最優解,進一步理想化需要的數據。用交叉熵損失函數(categorical_crossentropy)就可以更好地評估當前訓練得到的實際輸出和期望輸出的差異,將矢量化的n維向量向量化,輸出概率值最大的向量即為本系統所需要的向量特征值。

圖3 神經網絡結構

若將我們期望的輸出設為,將神經元的實際輸出設為,那么我們引用交叉熵代價函數進行分析:


當我們取得的交叉熵值越小,說明兩概率分布就越接近;當輸出的與無比接近時,損失函數將無比接近為0。
優化器我們主要使用minimize迭代方法對目標函數進行優化。結合AdaGrad和RMSProp兩種算法,我們決定采用Adam優化器對梯度的一階矩估計即梯度的均值(First Moment Estimation)和二階矩估計即梯度的未中心化的方差(Second Moment Estimation)進行綜合考慮,計算出更新步長。利用精確率建立3次卷積神經網絡模型得出分類的指標。卷積層先對輸入的圖片進行局部感知,再逐步細化至整張圖像,進行特征提取后,池化層將輸出的特征圖進行特征選擇和信息過濾,把輸入的圖像數據擬合,降低特征維度,提高模型的準確率。
用數據集中的灰度圖像,通過獲取到圖像繞x軸旋轉的角度Pitch值、繞y軸的旋轉角度Yaw值和繞z軸的旋轉角度Roll值,得到旋轉矩陣的歐拉角。根據3*3 角度R,Pitch = np.arctan2(R[2][1],R[2][2]) * 180 / np.pi角度轉換算法計算抬頭角度。我們根據Pitch參數進行分類,分類角度介于[-10,10]之間則視為抬頭,其余非正常抬頭情況或低頭情況均視為低頭。對模型進行訓練后,訓練集與測試集估計模型對樣本的泛化誤差,最后對模型進行優化調參輸出最終模型。
教學分析系統功能結構圖如圖4所示:

圖4 教學分析系統功能結構圖
教學分析系統主要包括本地圖像采集和識別、圖像保存和攝像頭圖像采集和識別三個模塊組成。在本地圖像采集和識別模塊中,我們可以根據已有的圖片靜態地檢測出課堂學生人臉數量[6],反映課堂的到課情況,并可以導入由視頻模塊保存下的圖片實現抬頭率的檢測和此刻人數的檢測。若我們已經對某個班級的同學分別進行圖像采集后,能夠在識別過程中反饋學生信息;當我們選擇使用攝像頭采集時可以動態地采集課堂的到課情況,并對某一學生的課堂抬頭情況動態監測,就可以根據檢測到抬頭的總人數除以我們檢測到的全部總人數計算出抬頭率。為了考慮到管理人員能夠查看以往的課堂分析情況歷史記錄,我們將靜態和動態的分析結果分別保存在本地文件夾內,實現數據的整理與融合。為了減少系統產生的每一幀圖像給計算機帶來的壓力,我們設置在系統運行過程中,一分鐘之內自動保存5~6張圖片供參考,并實現手動的圖片保存,避免在系統使用過程中產生不必要的資源浪費。
系統界面如圖5所示:

圖5 教學分析系統界面
在教學分析系統的研究與設計中,還考慮到了學校教師管理人員或者教務處老師對系統的可用性,我們可以通過對學生的頭部姿態[7]進行課堂人數的檢測和抬頭情況的檢測,結合學生面部表情的分析,大致分析出學生的聽課效率。任課教師可以實時查看課堂情況并可以對自己的內容或授課方式進行適當地調整,探索出更符合學生實際、使學生更能感興趣的講課方式和內容;教務處管理人員也可以根據系統反映的參數對任課教師進行實際地評價,減少專家到教室聽課的預先性對課堂評估產生的結果偏差。
目前國內外對于學生抬頭率的實現和課堂教學情況分析已經有了很多的研究,比如根據人臉面部的結構進行特征標記,實現抬頭率的計算等。在我們這個系統研究中,最初隨機對教師和學生共43名進行了調研,認為有必要了解老師們的授課行為的比例達95.45%;認為有必要分析學生們的課堂聽課效率的比例達95.12%,所以我們開始對課堂圖像分析系統進行了設計,利用旋轉矩陣的原理標記圖像的眼睛特征進行抬頭率的計算。而預先設計的可以動態地分析學生課堂中的表情,我們還沒有充足的實驗來驗證分析表情的可用性。由于Haar特征的人臉檢測易受外界因素比如光強或遮擋的影響,使得我們的課堂人數檢測和抬頭率計算存在一定的誤差。接下來我們也將繼續深入挖掘,訓練一個專門適用于本系統的課堂圖像人臉模型,提高模型的準確率和實用性,并將對表情分析的功能設計得更加實際,集成系統。
[1]張杰.面向大學課堂的抬頭率檢測系統的研究與實現[D].華中科技大學,2018.
[2]Sakurai Keiko,Tamura Hiroki. A Study on the Gaze Range Calculation Method During an Actual Car Driving Using Eyeball Angle and Head Angle Information. 2019,19(21).
[3]錢鎧倫,謝凱,姜宏屏,白曉哲.基于Python語言的課堂抬頭率檢測方法研究[J].電子世界,2020(03):39-40.
[4]梁利亭.人臉檢測和表情識別在課堂教學評價中的應用研究[J].山東商業職業技術學院學報,2020,20(02):100-104.
[5]張珂.基于卷積神經網絡的人臉檢測和人臉屬性識別研究[D].山東大學,2019.
[6]Ho,Chen,Chang,et al. New feature based human face detection method. 2008,56(1):56-61.
[7]王敏.基于深度學習的人臉識別方法[J].計算機與數字工程,2020,48(02):433-436+466.
遵義市科技局基金項目(遵市科合HZ字(2020)43號);遵義醫科大學大創項目(ZYDC2019035)