姚 捃,郭志林
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂山 614000)
行為識別是人工智能和計(jì)算機(jī)視覺領(lǐng)域最熱門的研究話題之一,應(yīng)用于安防安檢、火災(zāi)預(yù)警、考場監(jiān)控、嬰幼兒看護(hù)、病床報(bào)警等重要場合。
早期的行為識別基于手工提取特征的方法,利用特征描述符包括軌跡特征、梯度直方圖特征(HOG)、光流直方圖特征(HOF)、混合動(dòng)態(tài)紋理、光流場、人體關(guān)節(jié)點(diǎn)等構(gòu)建特征空間,進(jìn)而使用機(jī)器學(xué)習(xí)的方法進(jìn)行行為的識別。張恒鑫等[1]借助OpenPose得到人體區(qū)域中關(guān)節(jié)點(diǎn)的二維坐標(biāo)構(gòu)建骨架模型,提取基于關(guān)節(jié)向量的多種動(dòng)作時(shí)空特征,采用kNN模型進(jìn)行行為識別,在MIT及Weizmann數(shù)據(jù)集上取得了不錯(cuò)的效果。
由于視頻場景的復(fù)雜性、光線變化、人體遮擋等問題,手工提取特征的方法具有一定的局限性,漸漸被深度學(xué)習(xí)方法所替代,如卷積神經(jīng)網(wǎng)絡(luò)、快慢信息網(wǎng)絡(luò)、TSN雙流網(wǎng)絡(luò)、3D卷積神經(jīng)網(wǎng)絡(luò)、雙流與LSTM結(jié)合的混合網(wǎng)絡(luò)等。這些網(wǎng)絡(luò)利用深度學(xué)習(xí)強(qiáng)大的特征提取能力,從各個(gè)角度提取出行為識別所需要的人體外觀和人體運(yùn)動(dòng)的高級時(shí)空特征(如光流特征、3D時(shí)空特征),能更有效地進(jìn)行行為識別。
何嘉宇等[2]構(gòu)建了特征金字塔層次結(jié)構(gòu)以增強(qiáng)網(wǎng)絡(luò)檢測不同持續(xù)時(shí)長的行為片段的能力,在公開數(shù)據(jù)集上獲得了先進(jìn)的識別性能。董琪琪、王昊飛等[3-6]利用3D卷積神經(jīng)網(wǎng)絡(luò),有效提取行為識別所需要的時(shí)序信息與空間信息,展現(xiàn)了較好的性能。竇雪婷、陳京榮等[7-10]利用LSTM長短記憶網(wǎng)絡(luò),對數(shù)據(jù)之間的聯(lián)系進(jìn)行有選擇的記憶與遺忘,僅保留對識別結(jié)果有益的數(shù)據(jù),取得了良好的識別率。
基于深度學(xué)習(xí)提取時(shí)空特征的行為識別算法存在硬件需求過高、時(shí)效性不足、復(fù)雜場景準(zhǔn)確率偏低等問題。葉黎偉、竇剛等[11-15]利用YOLOv3網(wǎng)絡(luò)在沒有提取時(shí)序信息的基礎(chǔ)上,通過改進(jìn)的網(wǎng)絡(luò)進(jìn)行了行為識別,解決了推理速度過慢的問題,取得了不錯(cuò)的效果。
Gharahdaghi、Gutoski等[16-19]利用LSTM、TSN、3DCNN等提取高級時(shí)空信息進(jìn)行行為識別,在可穿戴設(shè)備、教育教學(xué)、電子廣告、物聯(lián)網(wǎng)等領(lǐng)域取得了良好的應(yīng)用。
在很多應(yīng)用場景下,不能實(shí)現(xiàn)實(shí)時(shí)識別是行為識別算法并未得到有效應(yīng)用的主要原因。
因此在考場的環(huán)境下,提出一種利用視頻幀以多目標(biāo)檢測和多目標(biāo)行為判別結(jié)合的行為識別算法,算法基于兩點(diǎn)前提:
(1)在考場這種特殊場景下,沒有明顯光照變化、場景單一、攝像頭角度固定、人體沒有明顯遮擋,因而可以采集到相對高清的視頻圖像。
(2)建立目標(biāo)檢測與行為判別兩個(gè)本地?cái)?shù)據(jù)集,利用非常成熟的YOLOv3算法,可以實(shí)現(xiàn)實(shí)時(shí)的多目標(biāo)檢測;同時(shí)將行為判別任務(wù)作為YOLOv3的分類標(biāo)簽輸出,完成端到端的多目標(biāo)行為識別。
實(shí)驗(yàn)結(jié)果表明,算法在特定場景具有良好的魯棒性、高效性和準(zhǔn)確率。
YOLOv4和YOLOv5雖然是在YOLOv3基礎(chǔ)上進(jìn)一步改進(jìn),但都是在細(xì)枝末節(jié)上進(jìn)行的優(yōu)化,反而丟失了YOLOv3在工業(yè)界的普遍適用性。所以總體思路是利用YOLOv3進(jìn)行多目標(biāo)檢測,同時(shí)將行為判別作為各個(gè)目標(biāo)的分類標(biāo)簽,并根據(jù)實(shí)際任務(wù)對輸出網(wǎng)絡(luò)加以修正。
要實(shí)現(xiàn)考場任務(wù)的多目標(biāo)檢測,并將各目標(biāo)行為作為分類標(biāo)簽在YOLOv3同時(shí)輸出,必須提前設(shè)計(jì)好本地任務(wù)的目標(biāo)檢測和行為判別數(shù)據(jù)集。
利用部署在考場的高清攝像頭采集本地視頻數(shù)據(jù),并進(jìn)行視頻篩選濾除長時(shí)的正常視頻。對視頻數(shù)據(jù)中典型的正常行為與違規(guī)行為進(jìn)行人體框標(biāo)注,打上對應(yīng)行為標(biāo)簽??紙鲋饕袨闃?biāo)簽如表1所示。
表1 行為標(biāo)簽
由于多目標(biāo)檢測任務(wù)和行為判別任務(wù)需要YOLOv3網(wǎng)絡(luò)同時(shí)輸出結(jié)果,因此要對兩個(gè)任務(wù)的數(shù)據(jù)集進(jìn)行整體性標(biāo)注,將各種考場行為設(shè)計(jì)為目標(biāo)的類別標(biāo)簽。整體性標(biāo)注過程如圖1所示。
圖1 數(shù)據(jù)集整體標(biāo)注
訓(xùn)練階段,神經(jīng)網(wǎng)絡(luò)模型主要采用了以特征金字塔和Darknet53相結(jié)合作為backbone的YOLOv3算法,并基于考場監(jiān)考的任務(wù)特點(diǎn)在YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上進(jìn)行了如下5點(diǎn)改善:
(1)考場只檢測人體目標(biāo),同時(shí)考慮到坐姿下人體目標(biāo)大小基本一致,因此YOLOv3只需設(shè)定1個(gè)anchor box,對這個(gè)anchor box進(jìn)行行為類別的分類輸出,極大地提升了檢測效率。
(2)修改任務(wù)輸出,將YOLOv3輸出的80個(gè)類別的分類置信度向量改為本任務(wù)所需的8種行為標(biāo)簽向量,每個(gè)人體目標(biāo)框后攜帶8個(gè)行為標(biāo)簽的置信度(出現(xiàn)紙條、出現(xiàn)書本、出現(xiàn)手機(jī)、扭頭、斜視、說話、埋頭、探頭),修改后的輸出與YOLOv3輸出對比如圖2所示。
圖2 修改后的輸出向量
(3)加入注意力機(jī)制,行為判別時(shí)主要行為都發(fā)生在人體上半身區(qū)域,因此利用注意力機(jī)制能很好地提升考場監(jiān)考任務(wù)準(zhǔn)確率。
CBAM(Convolutional Block Attention Module)模塊,給定中間特征圖,CBAM按順序推導(dǎo)出沿通道和空間兩個(gè)獨(dú)立維度的注意力圖,然后將注意圖相乘到輸入特征圖進(jìn)行自適應(yīng)特征細(xì)化。通道注意力聚焦在“什么”是有意義的輸入圖像,為了有效計(jì)算通道注意力,需要對輸入特征圖的空間維度進(jìn)行壓縮,對于空間信息的聚合,常用的方法是平均池化??臻g注意力聚焦在“哪里”是最具信息量的部分,這是對通道注意力的補(bǔ)充。為了計(jì)算空間注意力,沿著通道軸應(yīng)用平均池化和最大池化操作,然后將它們連接起來生成一個(gè)有效的特征描述符,如圖3所示。
圖3 CBAM模塊
CBAM可以無縫集成到任何CNN架構(gòu)中,開銷可以忽略不計(jì),并且可以與基礎(chǔ)CNN一起進(jìn)行端到端訓(xùn)練。對于考場特殊環(huán)境下的考試人員,違規(guī)行為集中在上半身區(qū)域,因此加入CBAM模塊,尤其是CBAM中的空間注意力圖將有效地提升目標(biāo)檢測與行為判別的準(zhǔn)確率,在殘差網(wǎng)絡(luò)中加入CBAM模塊,如圖4所示。
圖4 殘差網(wǎng)絡(luò)中加入CBAM模塊
(4)改善損失函數(shù)計(jì)算,訓(xùn)練所用到的損失函數(shù)L應(yīng)為人體目標(biāo)置信度損失Lt、人體目標(biāo)坐標(biāo)損失Lc和人體目標(biāo)行為判別損失La之和。其中Lt為二分類交叉熵?fù)p失,存在人體目標(biāo)時(shí)標(biāo)簽值為1,不存在人體目標(biāo)時(shí)標(biāo)簽值為0,由于大部分網(wǎng)格沒有人體目標(biāo),加入λ項(xiàng)來平衡損失值。Lc為MSE損失,只有存在人體目標(biāo)時(shí)才計(jì)算這部分損失。La也在有人體目標(biāo)時(shí)才計(jì)算,損失函數(shù)二分類交叉熵。具體公式如式(1)~式(4)。
L=Lt+Lc+La
(1)
(2)
(3)
(1-yijk)*log(1-pijk)
(4)
(5)進(jìn)行預(yù)訓(xùn)練,本地采集視頻數(shù)據(jù)非常耗時(shí),為了提高人體行為判別最后的準(zhǔn)確率,需要利用主流數(shù)據(jù)集的預(yù)訓(xùn)練模型來初始化網(wǎng)絡(luò)參數(shù)。結(jié)合考場任務(wù)的需求,最終選擇了COCO數(shù)據(jù)集,COCO數(shù)據(jù)集是標(biāo)準(zhǔn)的YOLOv3數(shù)據(jù)集,一共包含20萬個(gè)圖像,80個(gè)類別中有超過50萬個(gè)目標(biāo)標(biāo)注,平均每個(gè)圖像的目標(biāo)數(shù)為7.2,是最廣泛公開的目標(biāo)檢測數(shù)據(jù)集。COCO數(shù)據(jù)集與其他數(shù)據(jù)集對比見表2。
表2 目標(biāo)檢測數(shù)據(jù)集對比
預(yù)訓(xùn)練模型輸出使用COCO數(shù)據(jù)集格式,YOLOv3會利用特征金字塔進(jìn)行上采樣,并產(chǎn)生三種不同維度的輸出。任務(wù)需要根據(jù)數(shù)據(jù)集選擇合適的維度和anchor box。每個(gè)維度輸出3個(gè)anchor box,每個(gè)anchor box攜帶80個(gè)類別的標(biāo)簽向量。在YOLOv3每一個(gè)殘差塊后添加一個(gè)CBAM模塊,以提升整體準(zhǔn)確率。
預(yù)訓(xùn)練完成后初始化網(wǎng)絡(luò),輸出修改為任務(wù)所需的1個(gè)anchor box并攜帶8個(gè)行為判別標(biāo)簽向量,在本地?cái)?shù)據(jù)集上進(jìn)行再次訓(xùn)練,獲得最終模型。
模型運(yùn)行階段,利用部署在考場的高清攝像頭采集視頻數(shù)據(jù)流,并接入到視頻處理設(shè)備。視頻處理設(shè)備主要進(jìn)行視頻解幀與幀圖像預(yù)處理,以符合神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)輸入。
將模型導(dǎo)入考場邊緣設(shè)備中,接入視頻處理設(shè)備的輸出數(shù)據(jù)幀,將視頻處理設(shè)備的輸出視頻幀作為輸入數(shù)據(jù),邊緣設(shè)備同時(shí)輸出所有考場人員目標(biāo)檢測框和8個(gè)行為類別判斷,并根據(jù)類別判斷的結(jié)果做出實(shí)時(shí)的考場行為判斷,整體部署如圖5所示。
圖5 整體部署
實(shí)驗(yàn)運(yùn)行部分結(jié)果如圖6所示,可以發(fā)現(xiàn),只有當(dāng)8種行為類別均未檢出才會判定為正常行為;如果檢測出1條或多條行為類別,將判定為違規(guī)行為。
圖6 模型運(yùn)行結(jié)果
為了更好地分析模型在實(shí)際監(jiān)控中的效率與準(zhǔn)確性,利用COCO數(shù)據(jù)集、本地采集小數(shù)據(jù)集、COCO+本地?cái)?shù)據(jù)集三種數(shù)據(jù)組合分別測試了算法Faster RCNN、SSD、RetinaNet和本實(shí)驗(yàn)改進(jìn)的YOLOv3模型(簡稱Model)表現(xiàn)。
4種方案都需要在COCO數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練并作本地?cái)?shù)據(jù)集的遷移學(xué)習(xí),才能在實(shí)際的考場視頻上進(jìn)行行為的識別。四種方案訓(xùn)練迭代過程對比如圖7所示,其中橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示損失值。
圖7 模型訓(xùn)練過程對比
可以發(fā)現(xiàn)Model相比SSD、Faster RCNN和RetinaNet,具有優(yōu)良的訓(xùn)練曲線,曲線在中前段就很快收斂到低值,中后段也更加平穩(wěn),反映出模型泛化推理階段具有更好的魯棒性。
將4種方案部署于考場,并對考場行為視頻長時(shí)運(yùn)行匯總后進(jìn)行分析評價(jià),評價(jià)指標(biāo)采用目標(biāo)檢測常用的mAP(mean Average Precision),并比較了四種方案在COCO+本地?cái)?shù)據(jù)集上的推理速度,實(shí)驗(yàn)分析結(jié)果見表3。
表3 行為識別對比實(shí)驗(yàn)分析mAP
可以看到模型的mAP在三組數(shù)據(jù)下均超過了其他方法,且具有最快的推理速度,具體原因可以總結(jié)如下:
(1)YOLOv3是一種集成了SSD(多尺度預(yù)測)、FCN(全卷積)、FPN(特征金字塔)、DenseNet(特征通道)等多種特性的快速目標(biāo)檢測算法;
(2)改進(jìn)的網(wǎng)絡(luò)中加入了CBAM注意力模塊,提取了豐富的人體局部特征,能有效地提升準(zhǔn)確率和效率;
(3)具有單一評價(jià)指標(biāo)的端到端訓(xùn)練很好地彌補(bǔ)了YOLOv3先天準(zhǔn)確率上低于其他多階段模型的缺點(diǎn);
(4)本地小數(shù)據(jù)集采集自室內(nèi)環(huán)境、場景單一、沒有明顯遮擋、只有1個(gè)anchor box、輸出類別數(shù)量只有8個(gè)等因素,使得COCO+Local的遷移學(xué)習(xí)方案獲得了良好的效果。
對各種行為判別準(zhǔn)確率的進(jìn)一步分析可以發(fā)現(xiàn),由于加入了通道注意力和空間注意力機(jī)制,在COCO數(shù)據(jù)集上可以提取到非常良好的人體上半身局部特征,因此最終在扭頭、說話、埋頭、斜視、探頭等與人體局部特征相關(guān)的行為判別上表現(xiàn)明顯好于其他非人體局部特征的行為,如圖8所示。
圖8 各行為判別對比
雖然行為識別領(lǐng)域由于問題場景的復(fù)雜性、拍攝角度不同、相同目標(biāo)類內(nèi)差異巨大、光線變化、類內(nèi)和類間遮擋等問題,使得行為識別在自然采集的數(shù)據(jù)集上仍然存在很大的挑戰(zhàn)。但是在實(shí)際的考場監(jiān)控場景中,由于攝像頭角度固定、室內(nèi)無明顯光學(xué)變化、檢測的目標(biāo)單一、類內(nèi)無遮擋等天然的優(yōu)勢,使得利用YOLOv3改進(jìn)后的模型能較好地同時(shí)執(zhí)行多目標(biāo)人體檢測和行為判別任務(wù)。
端到端的多目標(biāo)行為識別算法也具有一些不可避免的缺點(diǎn):
(1)由于問題的特殊性,需要對本地采集數(shù)據(jù)進(jìn)行精心的標(biāo)注;
(2)由于數(shù)據(jù)集數(shù)量有限,導(dǎo)致無法勝任實(shí)際應(yīng)用,需要借助其他數(shù)據(jù)集的預(yù)訓(xùn)練參數(shù);
(3)算法屬于靜態(tài)幀的行為判別方法,沒有加入時(shí)序信息,在一些情況下會造成錯(cuò)誤的判定,比如撿東西、舉手等。鑒于此應(yīng)加入人工復(fù)核機(jī)制,或增加采集到的視頻時(shí)長,這些措施無疑都提高了算法的復(fù)雜性與操作的難度。