劉新運(yùn),葉時平,張登輝
(1.常州大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 常州 213164;2.浙江樹人大學(xué) 信息科技學(xué)院,浙江 杭州310015)
行為識別應(yīng)用于課堂場景,能夠幫助教師掌握學(xué)生上課狀態(tài)、調(diào)整教學(xué)方式,并可作為教學(xué)評價的重要依據(jù)。目前主流的視頻行為識別方法多基于深度學(xué)習(xí)技術(shù)。其中Karpathy等基于CNN設(shè)計(jì)了4種不同的神經(jīng)網(wǎng)絡(luò)模型用于行為識別[1]。Simmoyan等使用圖像空間特征和時序特征的雙流網(wǎng)絡(luò)方法,改善了運(yùn)動特征提取不足問題[2]。Limin Wang等提出TSN方法將視頻分為K個部分,稀疏采樣后使用雙流網(wǎng)絡(luò)提取特征,再融合各部分特征進(jìn)行行為識別,提高了長時間視頻的行為識別能力[3]。Tran等提出的C3D方法使用三維卷積核提取視頻特征,簡化了網(wǎng)絡(luò)結(jié)構(gòu)、提高了檢測速度[4]。Wenbin Du等提出的RPAN方法[5]和Donahue等提出的LRCN方法[6],采用RNN和LSTM網(wǎng)絡(luò),提升了時間維度的理解能力。
應(yīng)用中,沈錚等使用改進(jìn)的CNN模型對經(jīng)預(yù)處理后的連續(xù)幀圖像進(jìn)行識別,實(shí)現(xiàn)了公交車中異常行為的檢測[7]??籽缘葘⒆⒁饬C(jī)制融入雙流網(wǎng)絡(luò)中,實(shí)現(xiàn)了油田現(xiàn)場人員的行為識別[8]。李辰政等使用遷移學(xué)習(xí)訓(xùn)練的C3D網(wǎng)絡(luò)實(shí)現(xiàn)了公共場合下危險(xiǎn)行為識別[9]。
上述方法計(jì)算成本較高、模型訓(xùn)練時間較長、實(shí)時性不足;此外,所用數(shù)據(jù)集包含的場景有限、目標(biāo)單一且小目標(biāo)少,訓(xùn)練所得模型難以在課堂場景中推廣。針對課堂場景中學(xué)生活動空間有限、行為受時間影響小的特點(diǎn),可使用多目標(biāo)回歸的目標(biāo)檢測方法對學(xué)生課堂行為進(jìn)行檢測。本文主要工作有:
(1)針對檢測任務(wù),通過課堂視頻均勻采樣,建立了學(xué)生行為檢測數(shù)據(jù)集;
(2)通過設(shè)計(jì)多尺寸輸出的網(wǎng)絡(luò)結(jié)構(gòu)、聚類生成的預(yù)選框,適應(yīng)了學(xué)生目標(biāo)尺寸的變化;
(3)采用了兩段式訓(xùn)練策略,優(yōu)化了訓(xùn)練參數(shù),提高了模型訓(xùn)練速度和模型性能。
YOLO(you only look once)目標(biāo)檢測算法由Rodmon等提出[10],其原理是通過神經(jīng)網(wǎng)絡(luò)提取圖像特征,將圖像劃分成S×S個網(wǎng)格,每個網(wǎng)格針對中心落在網(wǎng)格內(nèi)的目標(biāo)預(yù)測B個邊界框(bounding box)和置信度(confidence scores),以及C個類別(class)。
該算法采用基于殘差結(jié)構(gòu)[11]與全卷積網(wǎng)絡(luò)[12](fully conventional networks,F(xiàn)CN)的Darknet-53[13],包含53個卷積層,能夠提取圖像更底層的特征。算法采用Anchors boxes機(jī)制[14],使用多個預(yù)選框?qū)δ繕?biāo)進(jìn)行預(yù)測。其工作原理為:采用大小與比例不同的幾個預(yù)選框采集同一網(wǎng)格特征,并根據(jù)預(yù)測邊框與真實(shí)邊框交并比(intersection over union,IOU)與置信度的閾值選擇最適合的預(yù)選框采集圖像特征[15]。
YOLO算法在實(shí)際應(yīng)用中應(yīng)考慮以下幾點(diǎn):①根據(jù)實(shí)際場景中數(shù)據(jù)特點(diǎn)和目標(biāo)檢測要求,合理設(shè)計(jì)與制作數(shù)據(jù)集;②針對實(shí)際場景中目標(biāo)大小及特征深度提取的需求,設(shè)計(jì)結(jié)構(gòu)合理的網(wǎng)絡(luò);③選擇適應(yīng)數(shù)據(jù)特點(diǎn)的模型訓(xùn)練策略與參數(shù)。
實(shí)驗(yàn)數(shù)據(jù)來源于17個不同課堂,經(jīng)采集、篩選和處理、行為統(tǒng)計(jì)、標(biāo)注4個步驟完成數(shù)據(jù)集制作,具體過程如下:①數(shù)據(jù)采集。每課堂采集40-50分鐘的視頻數(shù)據(jù),總時長680分鐘;②數(shù)據(jù)篩選與處理。去除視頻中非課堂場景部分,并對課堂部分視頻做均勻采樣,生成jpg格式圖片數(shù)據(jù)集;③行為統(tǒng)計(jì)。經(jīng)統(tǒng)計(jì)各課堂場景中學(xué)生行為類別總數(shù)為15個,其中7個出現(xiàn)頻率低,單個課堂場景中出現(xiàn)類別最多為7個;④數(shù)據(jù)標(biāo)注。以統(tǒng)計(jì)結(jié)果為依據(jù),選取出現(xiàn)頻率較高的8個類別為標(biāo)簽對所有圖像文件進(jìn)行標(biāo)注,標(biāo)簽說明見表1,數(shù)據(jù)按照PASCAL VOC數(shù)據(jù)集格式進(jìn)行保存。數(shù)據(jù)集由圖像文件及包含有標(biāo)注對象分類信息、邊框位置信息的XML文件組成。
表1 學(xué)生課堂行為檢測數(shù)據(jù)標(biāo)簽
學(xué)生課堂行為檢測數(shù)據(jù)集共包含1300幅圖像、46 800多個目標(biāo),表2表明該數(shù)據(jù)集具有目標(biāo)數(shù)量大、目標(biāo)密集、分類和尺寸多變、遮擋率高等特征。
表2 學(xué)生課堂行為數(shù)據(jù)集特征
如圖1所示,學(xué)生行為檢測網(wǎng)絡(luò)模型包含DBA結(jié)構(gòu)(Darknetconv2D_BN_Activation)和ResN結(jié)構(gòu)(Resblock_body)。每個DBA結(jié)構(gòu)依次包含一個Conv2D層、一個BN(batch normalization)層和一個激活函數(shù)層。每個ResN結(jié)構(gòu)依次由一個Zero padding層、一個DBA結(jié)構(gòu)和N個Res_unit 組成(Res_unit為殘差網(wǎng)絡(luò)基本單元),且同一個ResN結(jié)構(gòu)中特征尺寸不變。該網(wǎng)絡(luò)為全卷積網(wǎng)絡(luò),包含75個卷積層,通過改變卷積步長(stride)實(shí)現(xiàn)網(wǎng)絡(luò)特征尺寸變化。圖1中實(shí)線框?yàn)榫W(wǎng)絡(luò)模型特征提取的主體部分,由一個DBA結(jié)構(gòu)和5個ResN結(jié)構(gòu)組成。
圖1 網(wǎng)絡(luò)模型結(jié)構(gòu)
為提高課堂場景中小目標(biāo)檢測能力,并兼顧模型檢測速度與準(zhǔn)確率,網(wǎng)絡(luò)采用圖像32、16、8倍下采樣后的3種尺寸進(jìn)行輸出。第一種尺寸由特征提取主體后接6個DBA結(jié)構(gòu)和1個Conv2D 層輸出,其維度為13*13*255。第二種尺寸由節(jié)點(diǎn)3輸出經(jīng)1個DBA結(jié)構(gòu)和一個上采樣層與節(jié)點(diǎn)2連接,再經(jīng)過6個DBA結(jié)構(gòu)和1個Conv2D層輸出,其維度為26*26*255。第3種尺寸由節(jié)點(diǎn)4輸出經(jīng)1個DBA結(jié)構(gòu)和一個上采樣層與節(jié)點(diǎn)1連接,再經(jīng)過6個DBA結(jié)構(gòu)和1個Conv2D層輸出,其維度為52*52*255。回歸器接收3種尺寸輸出的特征,并計(jì)算目標(biāo)分類值、置信度和位置值,最后計(jì)算loss值。
該模型利用特征圖中網(wǎng)格坐標(biāo)的相對位置來預(yù)測目標(biāo)邊框,使目標(biāo)位置參數(shù)易于收斂。具體計(jì)算如式(1)所示,其中xp、yp為預(yù)測邊框的中心坐標(biāo),wp、hp為預(yù)測邊框的寬和高,xg、yg為特征圖中當(dāng)前預(yù)測網(wǎng)格左上角坐標(biāo),ε(ox)、ε(oy) 為預(yù)測邊框中心坐標(biāo)相對于xg、yg的偏移量,其中ε為sigmoid函數(shù),用于將ox、oy約束在(0,1)之間,保證預(yù)測中心落在當(dāng)前網(wǎng)格內(nèi),wa、ha為預(yù)選框的寬和高,wu、hu為預(yù)測邊框相對于預(yù)選框?qū)?、高的偏移量,e為自然常數(shù)
xp=ε(ox)+xg
yp=ε(oy)+yg
wp=wa*ewu
hp=ha*ehu
(1)
loss函數(shù)計(jì)算如式(2)所示,包含4個損失項(xiàng),邊框中心坐標(biāo)損失、寬高損失、置信度損失和分類損失。當(dāng)預(yù)測網(wǎng)格中包含目標(biāo)物體時θobj=1、θnoobj=0, 否則θobj=0、θnoobj=1。 式中wt、ht、xt、yt為真實(shí)邊框?qū)捀吆椭行淖鴺?biāo)值,wp、hp、xp、yp為預(yù)測值,ct、cp為置信度真實(shí)值與預(yù)測值,clt、clp為分類真實(shí)值與預(yù)測值。其中Η為交叉熵函數(shù),計(jì)算括號中參數(shù)的交叉熵。此外S為當(dāng)前特征圖大小,A為預(yù)選框的個數(shù),K為分類的種類數(shù)
(2)
本文設(shè)計(jì)了兩段式訓(xùn)練策略,以提高模型訓(xùn)練速度。第一階段為適應(yīng)性階段,加載由COCO數(shù)據(jù)集[16]訓(xùn)練所得權(quán)重,訓(xùn)練過程中只對網(wǎng)絡(luò)最后三層的權(quán)重做更新,使得loss值下降到較為穩(wěn)定的區(qū)間;第二階段為優(yōu)化階段,加載第一階段訓(xùn)練所得權(quán)重,在數(shù)據(jù)集上迭代訓(xùn)練,更新網(wǎng)絡(luò)各層權(quán)重參數(shù),使網(wǎng)絡(luò)模型趨于最優(yōu)化、loss值下降到最優(yōu)區(qū)間。
模型訓(xùn)練時的超參數(shù)是影響其訓(xùn)練速度和性能的另一重要因素,下文將通過實(shí)驗(yàn)對影響模型訓(xùn)練較大的學(xué)習(xí)率(learning rate)、批尺寸(batch size)、預(yù)選框尺寸、激活函數(shù)(activation function)、優(yōu)化器(optimizer)5項(xiàng)參數(shù)進(jìn)行篩選,并確定優(yōu)化的模型訓(xùn)練方案。
學(xué)生課堂行為檢測流程如圖2所示。首先,將課堂監(jiān)控視頻切分成圖像逐幀輸入到訓(xùn)練好的網(wǎng)絡(luò)模型中,由網(wǎng)絡(luò)給出預(yù)選目標(biāo)集;其次,通過設(shè)定閾值排除得分小的目標(biāo)的選項(xiàng),剩余預(yù)選目標(biāo)做降序排列;而后使用非極大值抑制(NMS)排除冗余選項(xiàng);最后,由回歸器計(jì)算出目標(biāo)位置和分類結(jié)果,并在圖像中標(biāo)示。
圖2 學(xué)生課堂行為檢測流程
本文設(shè)計(jì)了以下5組實(shí)驗(yàn),用以篩選模型的訓(xùn)練參數(shù)。實(shí)驗(yàn)系統(tǒng)環(huán)境為Ubuntu 18.04.01,算法框架為Keras;計(jì)算硬件為Nvidia GPU∶Tesla P100。
為避免learning rate過大而造成目標(biāo)函數(shù)發(fā)散、模型難以收斂,實(shí)驗(yàn)選取了10-3,10-4,10-5這3種不同的learning rate,驗(yàn)證該參數(shù)對模型訓(xùn)練產(chǎn)生的影響,實(shí)驗(yàn)結(jié)果如圖3、圖4所示。learning rate為10-5時,loss值下降較為緩慢。當(dāng)learning rate為10-3時,loss值前期下降較快,但后期發(fā)生了震蕩。learning rate為10-4時,loss值在整個過程中能夠穩(wěn)定下降。
圖3 不同學(xué)習(xí)率下loss值變化趨勢
圖4 不同學(xué)習(xí)率下loss值變化趨勢局部圖
因計(jì)算設(shè)備內(nèi)存(12 G)的限制,訓(xùn)練時batch size設(shè)置的上限第一階段為64,第二階段為15。由于第一階段訓(xùn)練只對模型最后3層的權(quán)重做更新,對模型性能影響小,因此主要觀察第二階段batch size變化對模型性能產(chǎn)生的影響。實(shí)驗(yàn)結(jié)果見表3,隨著batch size減小,訓(xùn)練迭代次數(shù)增加時,模型有更多的機(jī)會向不同梯度方向做更新、更具泛化能力,mAP(平均精準(zhǔn)度)值逐漸提高。
為適應(yīng)課堂場景中不同尺寸學(xué)生目標(biāo),選取了6、9、12這3個不同的k值,通過聚類訓(xùn)練集中的目標(biāo)邊框尺寸,得到3組預(yù)選框。實(shí)驗(yàn)結(jié)果見表4,其中avg_iou為預(yù)測框
表3 不同批尺寸下模型mAP值
表4 不同預(yù)選框下模型avg_iou與mAP值
尺寸與真實(shí)目標(biāo)框IOU的平均值。實(shí)驗(yàn)結(jié)果表明聚類得到的預(yù)選框尺寸提高了模型的檢測性能,且隨著預(yù)選框個數(shù)的增加模型的檢測性能進(jìn)一步提升。
實(shí)驗(yàn)對比了ELU、ReLU、LeakyReLU、Softmax為激活函數(shù)時模型loss值的變化趨勢,實(shí)驗(yàn)結(jié)果如圖5、圖6所示。由于第一階段只對網(wǎng)絡(luò)最后3層權(quán)重進(jìn)行更新,導(dǎo)致Softmax作為激活函數(shù)時loss值下降緩慢,且Softmax函數(shù)易發(fā)生梯度消失現(xiàn)象。相較于指數(shù)型的ELU激活函數(shù),ReLU和LeakyReLU這類導(dǎo)數(shù)恒定的激活函數(shù)計(jì)算成本更低,loss值收斂更快。
圖5 不同激活函數(shù)下loss值變化趨勢
圖6 不同激活函數(shù)下loss值變化趨勢局部圖
實(shí)驗(yàn)對比了SGD、Adagrad、RMSprop、Adam這4種優(yōu)化器對模型訓(xùn)練產(chǎn)生的影響,實(shí)驗(yàn)結(jié)果如圖7、圖8所示。模型在第一階段訓(xùn)練中只對最后3層權(quán)重進(jìn)行更新,因此固定學(xué)習(xí)率的SGD優(yōu)化器效果更佳;第二階段對網(wǎng)絡(luò)各層權(quán)重進(jìn)行整體優(yōu)化,RMSprop和Adam優(yōu)化器采用指數(shù)移動平均公式計(jì)算梯度的二階動量,能自動調(diào)整學(xué)習(xí)率,且改善Adgrad學(xué)習(xí)率下降過快問題,而Adam計(jì)算了梯度的一階動量使模型訓(xùn)練更具穩(wěn)定性。
圖7 不同優(yōu)化器下loss值變化趨勢
圖8 不同優(yōu)化器下loss值變化趨勢局部圖
通過分析以上5組實(shí)驗(yàn),最終確定訓(xùn)練方案見表5。詳述如下:①為防止梯度消失,且避免因?yàn)镽eLU函數(shù)在輸入為0時造成的神經(jīng)元壞死,整個訓(xùn)練過程都采用LeakyReLU激活函數(shù)。②為提高模型的檢測性能,并保證模型訓(xùn)練速度,訓(xùn)練過程使用k=9時聚類所得預(yù)選框。③第一階段訓(xùn)練選擇固定學(xué)習(xí)率的SGD優(yōu)化器,且使用較大學(xué)習(xí)率與批尺寸,加速第一階段的訓(xùn)練,使loss值較快向最優(yōu)區(qū)間收斂。④為保證模型穩(wěn)定收斂且具有良好泛化能力,第二階段起始學(xué)習(xí)率設(shè)置為10-4,并使用較小的批尺寸和更適應(yīng)參數(shù)變化的Adam優(yōu)化器。
表5 優(yōu)化訓(xùn)練方案
經(jīng)上述方案訓(xùn)練,模型訓(xùn)練時長由384分鐘縮減為206分鐘,mAP由最初的35.32%提高為40.73%,在視頻檢測中平均fps為20,檢測效果如圖9所示。
圖9 模型檢測效果
由于課堂場景中學(xué)生個體多、行為不統(tǒng)一等特點(diǎn),常見行為識別方法難以運(yùn)用其中。本文采用多目標(biāo)回歸的方法,通過制作學(xué)生課堂行為檢測數(shù)據(jù)集、構(gòu)造學(xué)生行為檢測模型,實(shí)現(xiàn)了課堂場景下的學(xué)生行為檢測。通過觀察不同參數(shù)對模型性能產(chǎn)生的影響,結(jié)合兩段式模型訓(xùn)練策略,本文提出了一種優(yōu)化的模型訓(xùn)練方案。經(jīng)過驗(yàn)證,該方案有效縮短了訓(xùn)練所需的時長,提高了模型檢測的能力,實(shí)現(xiàn)了在視頻中學(xué)生行為的實(shí)時檢測。