薛 凱,鄧福興,王 菁,焦日升,曹盛楠
(1.國(guó)網(wǎng)吉林省電力有限公司培訓(xùn)中心,吉林 長(zhǎng)春 132022;2.東北電力大學(xué)電氣工程學(xué)院,吉林 吉林 132012)
在線學(xué)習(xí)又稱虛擬課堂,是指通過網(wǎng)絡(luò)開展的師生同步直播學(xué)習(xí)或者非同步的學(xué)習(xí)方式[1].基于移動(dòng)客戶端的在線學(xué)習(xí)因其具有學(xué)習(xí)方式和時(shí)間靈活,學(xué)習(xí)覆蓋面大的特點(diǎn)已經(jīng)成為企業(yè)常用的員工培訓(xùn)手段和高校的輔助教學(xué)手段.例如,南方電網(wǎng)在2013年就開始使用在線直播技術(shù)培訓(xùn)員工[1].高校在線學(xué)習(xí)的技術(shù)和手段則更為豐富.例如,高校普遍使用的超星學(xué)習(xí)通可以實(shí)現(xiàn)非同步的在線學(xué)習(xí)和同步的語音直播[2-3].另外,有些高校使用雨課堂進(jìn)行同步的視頻直播[4-5].由于2020年的新型冠狀病毒疫情,學(xué)生的在線學(xué)習(xí)和員工的在線培訓(xùn)已經(jīng)成為了高校和部分企業(yè)的必然選擇.
然而,在線學(xué)習(xí)是在沒有教師監(jiān)督的情況下學(xué)員自主學(xué)習(xí)[6].從教師的角度看,在上課過程中難以面對(duì)面的監(jiān)督學(xué)生的學(xué)習(xí)狀態(tài).從學(xué)員角度看,在上課過程中,由于缺少監(jiān)督難免會(huì)產(chǎn)生不重視學(xué)習(xí)的心里.甚至自律性差的學(xué)員,可能僅僅是打開了在線學(xué)習(xí)客戶端而沒有真正學(xué)習(xí).因此,在線學(xué)習(xí)客戶端需要在不干擾學(xué)員學(xué)習(xí)的情況下采用技術(shù)手段對(duì)學(xué)員的學(xué)習(xí)狀態(tài)進(jìn)行監(jiān)督.
本文提出了一種基于人臉識(shí)別技術(shù)的移動(dòng)客戶端學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法.本方法的目的是在上課過程中實(shí)時(shí)監(jiān)督學(xué)生是否在客戶端屏幕前聽課.為了達(dá)到監(jiān)督的實(shí)時(shí)性和不干擾學(xué)員學(xué)習(xí)的目的.本文使用YOLOv3深度神經(jīng)網(wǎng)絡(luò)檢測(cè)學(xué)員的人臉.YOLO網(wǎng)絡(luò)是原名為“你只看一次”系列網(wǎng)絡(luò)(You Only Look Once,YOLO)的縮寫.YOLOv3是該系列網(wǎng)絡(luò)的第三個(gè)版本.YOLOv3是一種準(zhǔn)確且高效的圖像檢測(cè)方法.YOLOv3對(duì)尺寸為320×320的圖片進(jìn)行目標(biāo)檢測(cè)僅耗時(shí)22毫秒.因此,使用YOLOv3作為學(xué)員人臉檢測(cè)方法可以做到不干擾學(xué)員聽課.由于聽課學(xué)員會(huì)有不同的姿勢(shì),學(xué)員的人臉會(huì)存在不同的角度和不同的尺度.本文采用了尺度不變特征(Scale-Invariant Feature Tansform,SIFT)提取人臉特征向量.提取到的人臉特征和預(yù)先上傳的學(xué)員照片比對(duì)以識(shí)別學(xué)員身份.學(xué)習(xí)狀態(tài)監(jiān)督算法被學(xué)員客戶端定期調(diào)用.人臉檢測(cè)和識(shí)別這兩個(gè)監(jiān)督步驟在客戶端的后臺(tái)運(yùn)行,監(jiān)督過程不會(huì)被學(xué)員感知,因此不影響學(xué)員聽課.
本文提出的基于人臉識(shí)別技術(shù)的移動(dòng)客戶端學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法流程圖,如圖1所示.每隔t時(shí)刻,學(xué)習(xí)客戶端調(diào)用如圖1所示的學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法.該方法通過移動(dòng)客戶端(一般是智能手機(jī))的前置攝像頭拍攝照片.為了保證處理速度,我們將前置攝像頭的圖像尺寸統(tǒng)一縮放為800×800像素.之后,使用YOLOv3人臉檢測(cè)神經(jīng)網(wǎng)絡(luò)檢測(cè)該照片中是否存在人臉.若存在人臉則從檢測(cè)框中的人臉圖像中提取人臉的SIFT特征向量,并與學(xué)員注冊(cè)時(shí)上傳照片的特征向量進(jìn)行比對(duì)識(shí)別.若YOLOv3未檢測(cè)到人臉,或者人臉對(duì)比識(shí)別失敗,則將人臉識(shí)別失敗計(jì)數(shù)器fn加1.如果人臉識(shí)別多次失敗,即fn大于閾值n,則學(xué)習(xí)狀態(tài)監(jiān)督程序?qū)⑺臄z的照片發(fā)送給該課程的講師或者系統(tǒng)管理員以提示相關(guān)人員該學(xué)員可能沒有專心學(xué)習(xí).
圖1 學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法流程
學(xué)習(xí)狀態(tài)監(jiān)督方法中相關(guān)參數(shù)可以由系統(tǒng)管理員設(shè)置.參數(shù)t表示兩次調(diào)用學(xué)習(xí)狀態(tài)監(jiān)督過程的時(shí)間間隔.由于人臉檢測(cè)和識(shí)別過程會(huì)受到學(xué)員聽課姿勢(shì),光照,攝像頭是否有效等多種情況干擾.為了避免誤報(bào)對(duì)課堂造成干擾,在某學(xué)員的客戶端人臉識(shí)別失敗的情況下系統(tǒng)并不立刻通知講師或者系統(tǒng)管理員,而是要等待人臉識(shí)別失敗計(jì)數(shù)器fn大于閾值n,即該學(xué)員在一定時(shí)間內(nèi)人臉識(shí)別失敗次數(shù)達(dá)到一定數(shù)量時(shí)才認(rèn)為該學(xué)員未認(rèn)真聽課.閾值n表示當(dāng)有多少次人臉識(shí)別失敗的情況下系統(tǒng)通知講師或者系統(tǒng)管理員.閾值n的值可以由系統(tǒng)管理員根據(jù)實(shí)際情況設(shè)置.
2016年,Redmon[8]首次提出了一種基于端到端的檢測(cè)算法:“你只看一次”神經(jīng)網(wǎng)絡(luò)(You Only Look Once,YOLO).該算法通過一個(gè)卷積網(wǎng)絡(luò)同時(shí)預(yù)測(cè)圖像中目標(biāo)的類別和坐標(biāo).YOLO只包含一個(gè)神經(jīng)網(wǎng)絡(luò),因此稱之為端到端的檢測(cè)算法.YOLO系列目標(biāo)檢測(cè)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)是一種端到端的一共有三個(gè)版本[7,8,11].YOLO的檢測(cè)速度遠(yuǎn)高于之前的很多兩階段的檢測(cè)方法[9-10],但版本1和版本2對(duì)圖像中一些較小的目標(biāo)檢測(cè)性能較差.YOLOv3版本的網(wǎng)絡(luò)結(jié)構(gòu)使得該網(wǎng)絡(luò)對(duì)于各個(gè)尺度目標(biāo)的檢測(cè)能力都顯著提高.YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)的簡(jiǎn)略示意圖,如圖2所示.
圖2 簡(jiǎn)化的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)示意圖
YOLOv3網(wǎng)絡(luò)由兩部分組成,即自下而上的特征提取網(wǎng)絡(luò)和自上而下的多尺度檢測(cè)網(wǎng)絡(luò).前者負(fù)責(zé)提取輸入圖像的低層細(xì)節(jié)特征.后者從底層細(xì)節(jié)特征中提取高層語義特征.然后將這些高層次特征與相應(yīng)的低層次特征連接起來,對(duì)檢測(cè)網(wǎng)絡(luò)中的不同尺度的目標(biāo)進(jìn)行檢測(cè).自上而下的特征提取網(wǎng)絡(luò)的骨干作者稱為Darknet53.Darknet53的深度為75層,由53個(gè)卷積層和22個(gè)快捷連接層疊加而成.Darknet53網(wǎng)絡(luò)可細(xì)分為單個(gè)DBL模塊和Res1、Res2、Res8、Res8、Res4五個(gè)殘差模塊.DBL是YOLOv3的基本組成部分.DBL由卷積層、批處理規(guī)范化操作和ReLU激活函數(shù)組成.Resn表示每個(gè)殘差模塊含n個(gè)剩余單元.每個(gè)殘差模塊由兩個(gè)串聯(lián)的DBL模塊組成.為了便于分析,我們將Darknet53分為三個(gè)階段.每個(gè)階段Darknet53提取到的特征圖的尺寸各不相同.我們用圖2左側(cè)的三個(gè)方框A1、B1、C1來表示Darknet53的三個(gè)階段所提取到的特征圖.由圖2可知,特征圖尺寸由下至上越來越小.
右邊的三個(gè)藍(lán)色框A1、B1、C1表示一個(gè)自上而下的多尺度檢測(cè)網(wǎng)絡(luò).該網(wǎng)絡(luò)主要用于預(yù)測(cè)三種不同尺度的輸出特征圖.
學(xué)員學(xué)習(xí)時(shí)面部距離攝像頭的遠(yuǎn)近不同,這就導(dǎo)致所拍攝的人臉占畫面的比例不同.因此YOLOv3神經(jīng)網(wǎng)絡(luò)能夠檢測(cè)大、中、小不同比例目標(biāo)的特性就特別適合學(xué)員人臉檢測(cè)任務(wù).
我們使用無約束自然場(chǎng)景人臉檢測(cè)數(shù)據(jù)集(FDDB)[12]作為訓(xùn)練數(shù)據(jù)集,訓(xùn)練YOLOv3神經(jīng)網(wǎng)絡(luò).FDDB數(shù)據(jù)集包含了2845張圖像.在這些圖像中包含5171個(gè)人臉.每個(gè)人臉在圖像中的坐標(biāo)位置都進(jìn)行了標(biāo)注.我們將訓(xùn)練得到的YOLOv3人臉檢測(cè)模型的參數(shù)直接導(dǎo)入到學(xué)習(xí)狀態(tài)監(jiān)督APP的中YOLOv3網(wǎng)絡(luò)中.這樣學(xué)習(xí)狀態(tài)監(jiān)督APP的中YOLOv3網(wǎng)絡(luò)就可以直接應(yīng)用訓(xùn)練完畢后的模型參數(shù)進(jìn)行人臉檢測(cè).
尺度不變特征變換[13](Scale-Invariant Feature Transform,SIFT)是一種提取圖像局部特征點(diǎn)的算法.因SIFT對(duì)于圖像的尺度、旋轉(zhuǎn)和位置具有非常高的魯棒性,出現(xiàn)了大量使用其作為局部特征點(diǎn)提取的應(yīng)用[14-15].將SIFT應(yīng)用于人臉識(shí)別[16-17]可以解決因人臉尺度、不同姿勢(shì)、不同角度而造成的識(shí)別率降低,而且SIFT具有占用內(nèi)存空間小,實(shí)時(shí)性高等優(yōu)點(diǎn).
提取圖像SIFT特征的主要步驟有建立多尺度空間、極值點(diǎn)搜索、確定關(guān)鍵特征點(diǎn)、特征向量生成.SIFT算法尺度空間,如圖3所示.
通過對(duì)尺度空間中的每個(gè)像素點(diǎn)與其同尺度的8鄰域、以及相鄰尺度的8鄰域共26個(gè)點(diǎn)相比較,找到尺度空間中的極值點(diǎn).之后對(duì)于極值點(diǎn)進(jìn)行篩選.刪除對(duì)比度低的和不穩(wěn)定的邊緣極值點(diǎn),篩選后剩下的點(diǎn)為關(guān)鍵特征點(diǎn).將關(guān)鍵特征點(diǎn)鄰域內(nèi)像素用提法方向直方圖表示.該直方圖中最大值所對(duì)應(yīng)的梯度方向?yàn)殛P(guān)鍵特征點(diǎn)的主方向.將關(guān)鍵特征點(diǎn)為中心的16×16像素的區(qū)域4等分.分別計(jì)算每個(gè)小區(qū)域內(nèi)的8個(gè)梯度方向,最后可以得到4×4×8=128維的特征向量.我們只提取人臉檢測(cè)算法所確定的檢測(cè)框中像素的SIFT特征向量.對(duì)每個(gè)人臉提取的特征點(diǎn)數(shù)為N.特征點(diǎn)的數(shù)量可以由用戶指定.特征點(diǎn)數(shù)越多識(shí)別準(zhǔn)確率越高,但會(huì)使得識(shí)別速度降低,相反則有更高的識(shí)別速度.在本文中我們通過試驗(yàn)發(fā)現(xiàn)設(shè)置人臉特征點(diǎn)的個(gè)數(shù)為40時(shí)效果就能令人滿意.
圖3 SIFT算法尺度空間示意圖
我們使用歐式距離衡量所提取到的人臉特征向量和學(xué)員上傳的證件照片的人臉特征向量的差值.如果歐式距離的最小值與歐式距離的次小值的比值小于某一閾值時(shí)則認(rèn)為這一對(duì)特征點(diǎn)匹配成功.當(dāng)兩個(gè)人臉圖片的匹配成功的特征點(diǎn)數(shù)量超過總特征點(diǎn)數(shù)量的一定比例時(shí)認(rèn)為兩個(gè)圖片為同一個(gè)人的人臉.在實(shí)驗(yàn)中我們?cè)O(shè)置這個(gè)比例為85%.
為了驗(yàn)證本文提出的基于人臉識(shí)別技術(shù)的移動(dòng)客戶端學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法的有效性,我們實(shí)現(xiàn)了基于Android客戶端的學(xué)習(xí)狀態(tài)監(jiān)督程序并進(jìn)行了如下實(shí)驗(yàn).我們首先使用學(xué)員的聽課圖片測(cè)試了人臉檢測(cè)算法的效果.之后,我們建立了一個(gè)學(xué)員照片數(shù)據(jù)集,并采用人臉檢測(cè)率、人臉識(shí)別率和有效監(jiān)督率來衡量所提出的學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法在學(xué)員照片數(shù)據(jù)集上的表現(xiàn).最后,我們從圖片的處理效率角度衡量了所提出的學(xué)習(xí)效率監(jiān)督方法.
人臉檢測(cè)算法是學(xué)員學(xué)習(xí)效果監(jiān)督的第一個(gè)步驟.我們使用學(xué)員的聽課圖片測(cè)試了人臉檢測(cè)算法的效果.為了增加測(cè)試難度,我們還選擇了一些帶有遮擋,甚至遮擋較大的人臉圖片作為測(cè)試圖片.人臉檢測(cè)的效果,如圖4所示.
圖4 人臉檢測(cè)效果圖
從圖4中可以看出,當(dāng)學(xué)員面部沒有遮擋的時(shí),檢測(cè)算法可以從學(xué)員的正面、側(cè)面、歪頭、托腮等聽課姿勢(shì)圖片中找到人臉的位置.當(dāng)學(xué)員面部有不嚴(yán)重遮擋時(shí)(例如圖4中第三排照片1和照片4,學(xué)員只遮擋了嘴巴),檢測(cè)算法仍可以檢測(cè)到人臉.當(dāng)學(xué)員面部有嚴(yán)重遮擋時(shí)(例如圖4中第三排照片3和照片5),檢測(cè)失敗.圖4中第三排照片2雖然遮擋不嚴(yán)重,但是遮擋位于面部中心,使得人臉的連續(xù)性被破壞,檢測(cè)算法也不能檢測(cè)到人臉.
使用嚴(yán)重遮擋的圖片測(cè)試檢測(cè)算法效果的目的是測(cè)試檢測(cè)算法的弱點(diǎn).在實(shí)際應(yīng)用學(xué)習(xí)狀態(tài)監(jiān)督方法時(shí),應(yīng)當(dāng)提示學(xué)員盡量避免遮擋面部.
(a)
(b)圖5 測(cè)試集圖片樣本
我們采集了10位學(xué)員的110張?jiān)诰€學(xué)習(xí)照片.在這個(gè)學(xué)習(xí)照片數(shù)據(jù)集中,每個(gè)學(xué)員都有11種聽課姿態(tài)分別為:面向屏幕、左/右托腮、左/右歪頭、左/右側(cè)臉、仰頭、低頭、有輕微遮擋、人離開屏幕.其中兩位學(xué)員的在線學(xué)習(xí)照片,如圖5所示.我們采用人臉檢測(cè)率、識(shí)別率和有效監(jiān)督率三個(gè)指標(biāo)來衡量所提出的學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法的表現(xiàn).人臉檢測(cè)率是為了衡量人臉檢測(cè)算法的性能.數(shù)據(jù)集中學(xué)員11種學(xué)習(xí)動(dòng)作對(duì)應(yīng)的照片如果被檢測(cè)出有人臉則認(rèn)為檢測(cè)正確.數(shù)據(jù)集中共有10張人離開屏幕的照片.如果這些照片未被檢測(cè)出人臉則認(rèn)為檢測(cè)正確.即被正確檢測(cè)的照片數(shù)等于存在且被檢測(cè)到人臉的照片數(shù)加上沒有人臉且沒有被檢測(cè)到人臉的照片數(shù).被正確檢測(cè)的照片數(shù)除以總?cè)藬?shù)就是人臉檢測(cè)率.人臉檢測(cè)率的計(jì)算公式定義為
(1)
在人臉檢測(cè)之后,再對(duì)被檢測(cè)到的人臉做進(jìn)一步的身份識(shí)別.人臉識(shí)別率是為了衡量人臉識(shí)別算法的性能.人臉識(shí)別率等于被人臉識(shí)別算法正確確認(rèn)身份的人臉數(shù)除以存在人臉且被正確檢測(cè)到的人臉數(shù).人臉識(shí)別率的公式定義為
(2)
有效監(jiān)督率是為了衡量所提出的學(xué)習(xí)監(jiān)督方法的性能.在所有存在人臉的照片中,被正確的檢測(cè)出人臉且被正確確認(rèn)身份的照片是被進(jìn)行了有效監(jiān)督的照片.對(duì)于數(shù)據(jù)集中的無人照片,如果這些照片未被檢測(cè)出人臉,則認(rèn)為這些照片被進(jìn)行了有效監(jiān)督.有效監(jiān)督率的計(jì)算公式定義為
(3)
采用學(xué)員照片數(shù)據(jù)集測(cè)試本文所提出的學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法得到的人臉檢測(cè)率、識(shí)別率和有效監(jiān)督率,如表1所示.
表1 學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法的測(cè)試結(jié)果
在人臉檢測(cè)的過程中,99張有人臉的圖片檢測(cè)到人臉,有1張存在人臉的照片檢測(cè)失敗,10張無人臉的照片均未檢測(cè)到人臉(即檢測(cè)成功).之后,使用有人臉且檢測(cè)成功的99照片測(cè)試人臉識(shí)別算法.人臉識(shí)別算法成功識(shí)別了其中97張照片的身份.人臉檢測(cè)算法中有1張照片檢測(cè)失敗,人臉識(shí)別算法中有2張照片識(shí)別失敗.因此,其余的107張照片被認(rèn)為是進(jìn)行了有效監(jiān)督的照片.
表2 各算法的平均耗時(shí)(毫秒ms)
我們?cè)趯W(xué)員聽課照片數(shù)據(jù)集上分別運(yùn)行了人臉檢測(cè)算法,人臉識(shí)別算法和我們提出的學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督算法.我們測(cè)試算法的Android手機(jī)的參數(shù)為:CPU主頻2253MHz,運(yùn)行內(nèi)存6GB,操作系統(tǒng)內(nèi)核版本4.9.1.各個(gè)算法處理數(shù)據(jù)集所有照片的平均耗時(shí),如表2所示.從表2中可知,本文提出的學(xué)習(xí)狀態(tài)監(jiān)督算法處理數(shù)據(jù)集中110張照片的平均耗時(shí)為502毫秒,即0.5秒,可以滿足實(shí)時(shí)性的監(jiān)督需求.
本文提出了一種基于人臉識(shí)別技術(shù)的移動(dòng)客戶端學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法.該方法分別采用YOLOv3神經(jīng)網(wǎng)絡(luò)和SIFT特征點(diǎn)作為人臉檢測(cè)和識(shí)別算法.為了驗(yàn)證本文所提出方法的有效性,本文建立了含有100張學(xué)員在線學(xué)習(xí)圖像的測(cè)試數(shù)據(jù)集.在該數(shù)據(jù)集上的測(cè)試結(jié)果表明,本文所提出的移動(dòng)客戶端學(xué)員學(xué)習(xí)狀態(tài)監(jiān)督方法對(duì)于學(xué)員是否認(rèn)真聽課的識(shí)別率達(dá)到了97%.同時(shí)該方法對(duì)于一張圖片的處理速度約為0.5秒,滿足實(shí)時(shí)識(shí)別和監(jiān)督的需要.因此,該方法可以在不干擾課程的情況下,準(zhǔn)確的識(shí)別出未認(rèn)真聽課的學(xué)員.