尹力威,王瀚林,雷奕達,錢鵬宇
(1.西南交通大學 利茲學院,四川 成都 611756;2.西南交通大學 電氣工程學院,四川 成都 611756)
近年來,隨著教育改革的推進,對學生的考核日益嚴格,考試科目與次數(shù)都在增加,然而傳統(tǒng)監(jiān)考模式卻已無法滿足學校對于監(jiān)考的需求。若采用人工監(jiān)考,存在監(jiān)考人員任務重,無法在大型考試中及時發(fā)現(xiàn)學生的作弊行為等問題;若采用無人監(jiān)考,存在難以保證考試公平性等問題[1-3]。因此,研發(fā)一種具有智能化功能的監(jiān)考系統(tǒng)實乃當下所需。
近年來,國內(nèi)在計算機視覺技術及視頻處理技術方面已取得長足進步[4],為智能監(jiān)考系統(tǒng)的設計提供了技術支持。目標檢測(Object Detection)是計算機圖像、視頻處理工作的基礎[5]。目標檢測即檢測圖片中的目標物體,需輸出圖像中所有目標的坐標框與目標的具體類別[6]。YOLO(You Only Look Once, YOLO)算法和SSD(Single Shot Multibox Detector, SSD)算法[7-12]都是深度學習網(wǎng)絡應用于目標檢測的典型實例。在上述算法中,SSD算法檢測性能相對更優(yōu)[13]。
本文基于OpenCV-Python平臺設計了一種SDD算法,可通過前期大量訓練集的練習,并結合視頻處理技術實現(xiàn)適用于學校的智能監(jiān)考系統(tǒng)。本系統(tǒng)的使用有利于推進學校標準化、智能化考場建設,為監(jiān)考人員減負的同時提升監(jiān)考效果。
基于計算機視覺的學校智能監(jiān)考系統(tǒng)工作流程如圖1所示。其工作流程分為以下四步:
(1)啟動系統(tǒng)并獲取視頻資料(既可輸入攝像頭實時視頻流,也可輸入本地視頻流);
(2)對已獲取的視頻資料進行預處理(本系統(tǒng)利用視頻捕獲處理算法對視頻流進行分幀操作,以10 FPS的速度均勻讀入并保存為圖像);
(3)系統(tǒng)采用Caffe框架下的SSD算法從圖像中檢測人體行為,并標記人體邊框(Bounding-Box);
(4)將圖像按照正常、異常、作弊進行分類,一旦檢測到作弊行為系統(tǒng)會自動保存圖像,并發(fā)出警報。

圖1 基于計算機視覺的學校智能監(jiān)考系統(tǒng)工作流程
監(jiān)考是在場景相對固定的環(huán)境下識別教室內(nèi)的作弊行為。考慮到學校服務器電腦的配置及運算速度,基于計算機視覺的學校智能監(jiān)考系統(tǒng)運用SSD算法對分幀后的視頻進行分類,通過處理靜態(tài)圖像識別特征以區(qū)分作弊行為或正常行為。相比于動作識別,該方法對系統(tǒng)性能要求低,能夠在節(jié)約成本的前提下提高識別速度。
SSD是提出的一種目標檢測算法。與傳統(tǒng)區(qū)域候選方法相比,SSD算法更高效。此外,SSD算法簡化了采樣及Proposal生成過程,實現(xiàn)了單網(wǎng)絡下的運算,同時SSD算法還具有快速訓練和學校集成等功能[14]。
SSD算法的特點如下所示:
(1)具有多尺度特征圖檢測(Multi-Scale)功能;
(2)相比YOLO算法,SSD算法使用卷積層代替YOLO算法的全連接層進行預測效果更佳;
(3)SSD算法使用默認的邊界框+(1,2/1,3/1,1/2,1/3)框進行檢測(Aspect Ratios);
(4)SSD算法允許從CNN各層的feature map預測檢測結果,便于適應不同規(guī)模的物體。
SSD算法是一種具備YOLO算法回歸思想及FasterRCNN anchors機制的單次檢測深度神經(jīng)網(wǎng)絡。SSD框架通過RPN(Region Proposal Network, RPN)生成候選區(qū)域,從輸入圖像到輸出結果只需一個階段。因此,SSD算法極大地提升了檢測速度,降低了網(wǎng)絡訓練成本。
SSD訓練即將搜集到的訓練集輸入到Caffe網(wǎng)絡中進行訓練。本文采用的隨機梯度下降方法具有訓練速度快,訓練使用硬件資源較少等優(yōu)點。對于樣本較少的訓練集,可更換梯度下降方式。SGD(Stochastic Gradient Descent, SGD)的梯度更新規(guī)則如式(1)所示:

SSD通過一種匹配策略為每個檢測器分配一個真實標簽,指定標簽為前景的預測器稱為正樣本,指定標簽為背景的預測器稱為負樣本(按照預設正負樣本比例,挑選出一定數(shù)量的負樣本)。SSD的最終損失是挑選的正負樣本的總損失。
SSD損失函數(shù)主要分為兩部分,即對應搜索框的位置損失(Location Loss)和置信損失(Confidence Loss)。總體目標損失是上述兩類損失的加權和,如式(2)所示:

式中,N為匹配默認框的數(shù)量。
SSD中的置信損失是在多類別置信度上的Softmax Loss,如式(3)所示:

式中:i為搜索框序號;j為真實框序號;p為類別序號,p=0表示背景;xijP={1,0}中取1表示第i個Prior Box匹配到第j個GT box,該GT box的類別為p;表示第i個搜索框對應類別p的預測概率;Pos和Neg分別表示正負樣本。
位置損失是經(jīng)典的Smooth L1 Loss,其計算過程如式(4)所示:

式中:l為預測框;g為ground truth;(cx,cy)為補償后的默認框(d)的中心;(w,h)為默認的寬和高。
一般情況下,原始數(shù)據(jù)量越大,得到的最終效果就越好,模型精度越高。但如果數(shù)據(jù)集照片數(shù)量不足,則需要在Caffe中進行數(shù)據(jù)增強處理,且網(wǎng)絡結構中需要使用Dropout層以防止出現(xiàn)過擬合。使用Dropout層的另一原因是對作弊行為和正常行為的分類都是基于“人”,若不采用,則難以提高檢測率。
學生頭部轉動或手部、肩膀、臂膀等大幅度肢體活動都被算法視為作弊。當學生頭部向前,視線位于桌面上方,手部與臂膀無大幅度動作,即保持正常寫作或思考姿勢時,被系統(tǒng)視為正常。訓練集正常圖例如圖2所示,訓練集作弊圖例如圖3所示。

圖2 訓練集正常圖例

圖3 訓練集作弊圖例
系統(tǒng)采用SSD算法將特定作弊行為及違禁物品分為8類:正常、左顧右盼、傳遞物品、轉身、睡覺、舉手、起立、手機。對于其他類別,可根據(jù)實際情況進行適當增加或刪減。
除上述作弊行為外,手持或以其他方式持有違禁物品的行為同樣會被系統(tǒng)判定為作弊。SSD算法在識別過程中將“人的動作”與“違禁物品”分別識別。如果學生雙手置于桌上,頭部看向課桌桌面且無其他肢體動作,此時學生的人體部分會被算法視為“正常”;但當算法識別出“違禁物品”時,則會判定其作弊。
對于放在指定路徑的視頻文件,若要對其進行檢測,首先需要對視頻進行分幀處理。根據(jù)人的動作幅度與動作速度,在正常視頻流即30 FPS以上的視頻文件中,每秒取10幀進行作弊行為檢測。相比于檢測視頻的全部數(shù)據(jù),此方法大幅縮短了運算消耗的時間。
視頻采用OpenCV循環(huán)讀取視頻幀,然后將讀取到的每1幀保存為圖片,隨即用訓練好的模型文件對各幀圖片進行檢測與標注,并在圖片上記錄此刻時間。
使用OpenCV的DNN接口將訓練好的模型文件導入程序中,在設定各項參數(shù)后,利用OpenCV中的Mat類將需要檢測的每幀數(shù)據(jù)進行定義和約束。
依照訓練好的模型文件,將視頻流以10 FPS的速率進行檢測。檢測完畢后,將異常圖片和正常圖片分開保存于不同路徑下的文件夾,以便之后進行二次審核。視頻檢測流程如圖4所示。

圖4 視頻檢測流程
實時視頻檢測與本地視頻檢測基本一致,只在前端做了一定修改(將本地視頻流輸入切換為攝像頭實時視頻流輸入)。
但在實際操作中,由于OpenCV 3系列版本只能使用CPU對圖像進行檢測,無法進行GPU加速,因此檢測效果不佳,實時監(jiān)測延時較大,故新方案選用2019年12月發(fā)布的OpenCV 4.2,此版本具有可運用GPU加速的DNN相關函數(shù)。
通過GPU加速后,檢測時間縮短了近60%。受實驗設備顯卡配置條件的限制,暫時無法達到更快的檢測速度,此方面有待后續(xù)改善。
在驗證檢測系統(tǒng)時,通過實時監(jiān)控對相應目標進行判定。樣本涵蓋兩個不同場景的教室與12個不同的人,分別檢測單人情況與多人情況下的識別效率。
單人檢測的總體準確率約84%,其中“正常”動作的識別成功率約為92%;“舉手”動作的識別成功率約為94%;“傳遞”識別成功率約為76%。多人同時檢測時,每個對象的平均精確率約為69%。手機形狀較小,相比人體更難識別,尤其是在有部分遮擋的情況下,識別難度更大。
整體而言,本系統(tǒng)的檢測精確率較為理想,達到了84%,能夠滿足現(xiàn)階段學校對智能監(jiān)考的要求。相關實驗結果如圖5、圖6所示。

圖5 判定轉身圖例

圖6 判定睡覺圖例
本文基于計算機視覺技術,通過視頻分幀、建立訓練集和優(yōu)化代碼的方式,實現(xiàn)了利用計算機檢測考場作弊行為并自動保存作弊圖像,將作弊信息反饋給人工處理的智能監(jiān)考系統(tǒng)。實驗結果表明,系統(tǒng)檢測準確率可達84%。但該系統(tǒng)也存在一些缺陷,如視頻分幀和檢測速度較慢,無法做到實時檢測;檢測準確率有待進一步提高。在后續(xù)研究中,該系統(tǒng)將在代碼編號、運行速度等方面持續(xù)優(yōu)化;建立更多更全面的訓練集,提高檢測準確率;增加更多角度的視頻檢測,為后續(xù)實現(xiàn)多路攝像并行處理打下基礎。通過逐步升級優(yōu)化,該系統(tǒng)可用于學校建立智能監(jiān)考系統(tǒng),并為未來的無人監(jiān)考系統(tǒng)設計提供參考。