云 旭,宋煥生,梁浩翔,侯景嚴,戴 喆
長安大學 信息工程學院,西安 710064
關鍵崗位的人員行為分析指的是對在崗人員的一些行為動作進行理解分析,這對安全預警、高效生產(chǎn)起著至關重要的作用。
行為分析是未來人工智能的一個重要研究領域,也是計算機視覺的一個熱門研究課題。現(xiàn)有的行為分析算法分為基于視頻和靜態(tài)圖像的兩種分析方法[1]。其中基于視頻的行為分析方法使用的是視頻幀序列之間的時空、場景、姿態(tài)等上下文特征識別理解,根據(jù)不同的實現(xiàn)方式,大致分為基于模板匹配[2]、基于馬爾科夫鏈狀態(tài)轉(zhuǎn)移圖[3]以及基于深度學習的方法。其中基于深度學習的方法有根據(jù)人體行為進行分類的方式[4]、人體部位識別及跟蹤的方式[5];而基于靜態(tài)圖像的方法則是判斷每一幀圖像中人的行為狀態(tài),例如:人體姿態(tài)分析[6]、人物交互關系[7]等。上述方法大多著重于單幀圖像的分析方法,未對視頻的上下文信息綜合進行分析。本文根據(jù)先前的研究,提出了基于深度學習的關鍵崗位人員行為分析系統(tǒng)。
關鍵崗位人員行為分析包含各種目標的檢測,屬于目標檢測的范疇。傳統(tǒng)的目標檢測一般分為三個階段:首先是使用不同尺度的滑動窗口提取感興趣區(qū)域;再針對感興趣區(qū)域提取其中特征,這一般采用HOG[8]、SIFT[9]等特征提取方法;最后選擇合適的分類器進行分類,如支持向量機SVM[10]、AdaBoost[11]等。隨著近幾年計算機計算能力的提高以及深度學習的興起,深度神經(jīng)網(wǎng)絡的出現(xiàn)給特征提取提供了一種新的思路。目前基于深度學習的檢測算法主要分為兩個部分,一類是以R-CNN[12]、SPP-net[13]、FastR-CNN[14]、FasterR-CNN[15]為代表的基于候選區(qū)域的方法;另一類是以 YOLO[16]、SSD[17]、YOLO-9000[18]、YOLOv3[19]為代表的基于回歸的方法。本文所使用的YOLOv3在YOLO及YOLO-9000的基礎上引入殘差網(wǎng)絡,并加入多尺度預測的機制,大大提高了檢測速度,其在COCO[20]數(shù)據(jù)集上的mAP 達到了55.3%,速度達到了34 幀/s。
綜上所述,本文提出了一種基于深度學習的關鍵崗位人員行為分析系統(tǒng),首先構建了崗位人員行為數(shù)據(jù)集,并通過YOLOv3 深度學習網(wǎng)絡對該數(shù)據(jù)集進行訓練,得到了行為檢測模型,結合本文提出的基于視頻幀序列的行為分析方法,對離崗、睡覺、玩手機等行為事件進行精確判斷。
關鍵崗位人員行為分析系統(tǒng)的總體流程如圖1 所示,通過對輸入的視頻流進行圖像處理與分析,得到對不同行為的判斷。本系統(tǒng)主要分為四個模塊:視頻碼流的讀取與解碼、視頻場景圖像預處理、基于深度學習的目標檢測、基于檢測結果的事件判斷。最終,將分析出的事件進行展示與發(fā)布。
圖1 系統(tǒng)總體結構圖
視頻碼流的讀取與解碼模塊,通過RTSP 協(xié)議從相機中實時讀取碼流,并使用OPENCV的FFmpeg進行解碼;視頻場景圖像預處理模塊,主要采取的是直方圖均衡化,提高后續(xù)的行為檢測精度。基于深度學習的目標檢測模塊,在構建的大規(guī)模崗位人員行為數(shù)據(jù)集基礎上采用YOLOv3 深度網(wǎng)絡對上述崗位人員行為數(shù)據(jù)集進行訓練,得到檢測模型;基于檢測結果的事件判斷模塊,結合深度學習的目標檢測模塊,加以邏輯判斷與分析,生成對人的當前行為的最終事件結果。
最終,基于上述模塊的處理與分析,將得到的行為判斷事件整理,進行顯示與發(fā)布,從而可直觀地看出當前某一相機下的情況,對工廠或辦公室等的管理提供可靠依據(jù)。
大量的圖像和視頻數(shù)據(jù)作為計算機視覺的研究核心,是深度學習應用與分析的數(shù)據(jù)基礎來源。針對現(xiàn)有崗位場景的人員行為分析的數(shù)據(jù)集,應用場景、拍攝角度、圖像分辨率,都難以滿足實際應用的需要。因此,本章提出了崗位人員行為數(shù)據(jù)集。
數(shù)據(jù)集首先使用安裝在崗位斜上方的網(wǎng)絡攝像頭進行圖片采集,圖片中包含了一般的崗位場景的單個座位,其架設場景示意如圖2(a)所示,記錄的實際圖像如圖2(b)所示,并采取高低兩個視角的攝像頭進行錄制。對于每張圖像,標注信息中存儲了每一類目標的類別序號以及歸一化的坐標位置。最終得到行為分析數(shù)據(jù)集的數(shù)據(jù)存儲結構如圖3所示。圖4顯示了本章數(shù)據(jù)集的部分標注結果。表1展示了本數(shù)據(jù)集的目標統(tǒng)計結果。
圖3 數(shù)據(jù)集結構圖
圖4 數(shù)據(jù)集展示圖
表1 數(shù)據(jù)集統(tǒng)計
相比于其他的數(shù)據(jù)集,本數(shù)據(jù)集擁有高低不同視角拍攝的圖像,且圖像分辨率高,同時具有完備的目標種類的標注信息,標注姿態(tài)豐富多樣,如圖4 所示本文的數(shù)據(jù)集標注了各種在崗位中不同姿態(tài)的人,如雙手放在桌子上、靠在椅子上以及其他動作;對于手機目標,標注了多種不同擺放角度的手機目標,且考慮了手機屏幕亮暗的不同狀態(tài);對于玩手機目標,認為手持手機為玩手機目標,標注了單手打電話下的手持手機狀態(tài)、雙手持手機打字的狀態(tài)以及單手刷手機屏幕的狀態(tài)等諸多人經(jīng)常使手機的姿態(tài)。因而本文數(shù)據(jù)集標注的樣本姿態(tài)豐富,考慮了人在辦公崗位的不同習慣,具有較為廣泛的適用性。
隨著深度學習的快速發(fā)展,目標檢測算法的不斷優(yōu)化,本文采用了精度與速度都較優(yōu)的YOLOv3算法。其在網(wǎng)絡結構方面基于殘差網(wǎng)絡提出了Darknet-53,在網(wǎng)絡層間設置了快捷鏈路,并利用多尺度的特征進行對象預測,如圖5所示。同時,YOLOv3使用9種尺度的先驗框,分別在三個預測尺度上進行分配,并且使用了logistic分類代替了softmax分類,能夠進行多標簽預測。
圖5 YOLOv3結構
為了提高對崗位場景目標的檢測類別與精度,本文使用YOLOv3 網(wǎng)絡對崗位人員行為數(shù)據(jù)集進行訓練得到崗位人員行為檢測模型,對視頻幀序列進行檢測,獲取每幀圖像中目標的類別、位置和置信度。這里定義一些符號,方便后續(xù)算法的使用。對于視頻幀t,Framet為這一幀圖像的所有信息包括圖像的RGB信息It和圖像中檢測到的目標信息。
基于3.1 節(jié)深度學習的檢測結果,本節(jié)討論對檢測結果的邏輯判斷方法。由于圖片的檢測結果只能得到這一幀的信息,不足以識別人在某一段時間內(nèi)的整個行為,因而,本節(jié)提出基于視頻幀序列的行為分析方法,通過分析連續(xù)多幀的圖像行為檢測信息,最終得到行為分析的結果。
3.2.1 基于視頻幀序列的行為分析算法
針對視頻序列的信息分析,本文提出了一個基于視頻的行為分析方法。該方法對于連續(xù)的多個單幀圖像的行為進行檢測,再利用邏輯判斷,分析出視頻中的行為事件。這樣,使用多幀圖像綜合分析行為事件,避免了單幀圖像漏檢、錯檢而造成的事件錯誤判斷,提高了行為事件判斷的魯棒性與適應性?;谝曨l幀序列的人員行為分析算法的流程如下所示。
輸入:視頻流圖像及深度學習檢測結果Framet
輸出:視頻流場景的行為識別結果
初始化:緩存區(qū)存入間隔幀數(shù)Framenum=N+,視頻幀號FrameNo=0,緩存區(qū)大小B∈N+,行為事件判斷閾值T
1.while(有視頻幀)do
2.if (FrameNoMODFramenum==0) then
3.if(緩存區(qū)已滿)then
4.更新緩存區(qū)
5.for each 緩存塊∈緩存區(qū) do
6.緩存塊統(tǒng)計結果
7.end for
8.針對統(tǒng)計結果計算行為事件判斷值Res
9.if (Res>T) do
10.輸出行為事件
11.end if
12.else
13.讀取一幀圖像及其檢測結果存入緩存區(qū)
14.end if
15.end if
16.FrameNo←FrameNo+1
17.end while
對于基于視頻幀序列的行為分析算法,首先建立一個視頻幀序列緩存區(qū),每隔一定的幀數(shù)Framenum在緩存區(qū)存入視頻幀的圖像信息以及檢測結果信息,當緩存區(qū)存滿時,對每一個緩存塊進行分析,輸出一個行為事件的結果。本算法選取了離崗、睡覺、玩手機行為事件進行了基于視頻的行為模式識別算法分析,重點考慮了不同行為事件的判別方法。
3.2.2 離崗事件的判斷
對于離崗事件的判斷,需要對連續(xù)的視頻幀進行處理,間隔一定的時間將一幀圖像和其檢測結果存入緩存區(qū)。當緩存區(qū)存滿時,對緩存區(qū)的有人幀County和無人幀Countn分別進行累加統(tǒng)計,然后計算其比值,若大于離崗判斷閾值Tleave∈( )1,B,則輸出有人,反之無人。如式(1),true 代表有人。
3.2.3 睡覺事件的判斷
針對睡覺事件,從緩存區(qū)中提取出視頻幀圖像以及檢測結果進行判斷,采取的方法是對緩存區(qū)的圖像兩兩進行相似度分析,得出兩幅圖像的相似比,若兩幅圖像的相似比高于相似度閾值Tsimilar,則累加睡覺時間計數(shù)器Countsleep,若大于判斷閾值Tsleep∈(0,1),則認為有睡覺事件。使用式(2)進行計算,true 代表有睡覺事件。
針對兩幀圖像的相似度分析,本文提出了一種相似度計算方法,原理如圖6所示。首先從緩存區(qū)中取兩幀圖像中的目標人,得到兩個框的相交區(qū)域;之后,對兩個相交區(qū)域進灰度化處理,取絕對值差,對其進行二值化處理;然后,使用小卷積核對差值圖像做腐蝕操作,消除圖像的噪聲等微小變化對算法造成的影響;再接著,使用大卷積核對處理后的圖像做膨脹操作,增大變化區(qū)域的權重;最后,統(tǒng)計出圖像中像素值為0 的黑色像素數(shù)占整個圖像像素數(shù)的比值,如式(3)所示,其中Pixeli,j代表圖像中第i行j列的像素值。當相似比大于Tsimilar,則認為檢測到的人保持靜止,疑似睡覺,累加睡覺時間計數(shù)器Countsleep。
3.2.4 玩手機事件的判斷
針對玩手機事件,從緩存區(qū)中讀取圖像幀中檢測到的手機和玩手機兩類目標。若有玩手機目標,則累加玩手機目標幀計數(shù)器Countplay;若有手機目標同時手機屏幕目標處于常亮狀態(tài),則累加手機目標幀計數(shù)器Countphone。如式(4),若計算結果大于玩手機事件判斷閾值Tplay∈( 0,1) ,認為有玩手機事件。
式(4)中,λplay代表玩手機目標幀的權重,λphone代表手機目標幀的權重,且λplay+λphone=1,λplay>λphone,Tplay>λphone,若圖片中只有手機目標而沒有玩手機目標,則不會判斷當前是玩手機事件。
手機屏幕常亮是評價是否玩手機的一個關鍵性要素,本節(jié)提出了一種判斷算法。原理如圖7 所示,對于每一個檢測到的手機目標,根據(jù)坐標位置,以手機邊界框中心向周圍擴充一定的像素的區(qū)域,以此作為手機屏幕亮滅的判斷區(qū)域,如圖8所示。
其次,對手機屏幕亮滅的判斷區(qū)域進行直方圖統(tǒng)計,若其直方圖分布不均勻,則判斷手機為亮屏狀態(tài);若其直方圖分布均勻則進一步對其亮度進行判斷,判斷公式如式(5)所示:
其中λhsl項為HSL(色相、飽和度、亮度)色彩空間計算的亮度信息;λgray項為RGB 色彩空間轉(zhuǎn)換到灰度空間計算得亮度值,標準取k1=0.299,k2=0.587,k3=0.114。若式(5)計算結果低于亮度判斷閾值Tlight∈(0,255),則手機處于滅屏狀態(tài)。
本章基于構建的行為識別數(shù)據(jù)集對算法進行實驗,實驗環(huán)境為:內(nèi)存為32 GB,處理器為IntelCorei7-8700的CPU,顯卡為NVIDIAGTX 1080Ti。同時本實驗使用了基于VS2015 的C++進行算法的軟件實現(xiàn),使用了如下6個不同場景的視頻進行測試,視頻均采用TP-LINK網(wǎng)絡攝像頭錄制,錄制場景如圖9 所示,視頻基本信息如表2 所示。從圖9 可以看出,在實驗部分考慮了多種不同的辦工崗位相機拍攝角度,這些拍攝角度從不同的方向清楚地拍攝到辦工崗位上的人員,且有著不同的辦工崗位環(huán)境與光照條件,如場景2,其相機拍攝到了較為復雜的周圍環(huán)境,且人玩手機的角度也與數(shù)據(jù)集中樣本有所不同,這都對本文的算法提出了巨大的挑戰(zhàn)。
圖6 相似比計算方法示意圖
圖7 手機屏幕亮滅判斷示意圖
圖8 手機判斷區(qū)域選擇示意圖
圖9 實驗場景示意圖
表2 實驗視頻基本信息
本節(jié)對第2 章提出的數(shù)據(jù)集通過YOLOv3 網(wǎng)絡訓練,數(shù)據(jù)集分為80%的訓練集,20%的測試集,數(shù)據(jù)集訓練樣本豐富多樣,規(guī)模龐大足以訓練出較好效果的模型。訓練時采取的主要參數(shù)如表3所示。
表3 模型訓練參數(shù)
網(wǎng)絡訓練過程中損失值Loss 變化曲線如圖10 所示,可以看出,采用變學習率的方式進行數(shù)據(jù)集的訓練,使得在30 000次迭代時訓練已經(jīng)收斂,從而得到了較為精確的檢測模型。
圖10 網(wǎng)絡迭代損失值變化圖
表5 實際檢測結果測試
接著,采用行為識別數(shù)據(jù)集中的測試集樣本對訓練得到的模型進行評估。評估結果如表4所示,每一類都獲得了較高的平均準確率(AP),均高于89%,總體的平均準確率(mAP)達到了90%以上,為后續(xù)的行為事件判斷提供了較好的檢測結果。
表4 模型評估結果
為了檢驗實際的檢測效果,對表2 提出的6 個視頻做了實際目標數(shù)與檢測目標數(shù)的對比統(tǒng)計,統(tǒng)計結果如表5所示,對比視頻Scene1和Scene2可以看出光照一致的情況下分辨率越低檢測效果越差,其余視頻可以看出分辨率一致的情況下光照越好檢測效果越好,同時,訓練得到的檢測模型總體檢測正確率均高于88%,可以滿足實際應用。
為了驗證第3 章提到的行為識別算法,使用表2 中的6個的視頻,進行實驗分析,實驗使用的參數(shù)如下。
(1)離崗事件:緩存區(qū)大小B=10,緩存區(qū)存入間隔Framenum=15,離崗事件判斷閾值Tleave=2。
(2)睡覺事件:緩存區(qū)大小B=5,緩存區(qū)存入間隔Framenum=150,睡覺事件判斷閾值Tsleep=0.75,相似度閾值Tsimilar=0.95。
(3)玩手機事件:緩存區(qū)大小B=10,緩存區(qū)存入間隔Framenum=15,λplay=0.7,λphone=0.3,λhsl=0.5,λgray=0.5 ,玩手機事件判斷閾值Tplay=0.6 ,亮度判斷閾值Tlight=50。
上述參數(shù)的取值通過大量實驗驗證得到,可作為本系統(tǒng)的默認參數(shù)使用。實驗結果如表6所示。
可以看出,睡覺事件的檢測精度相對于離崗與玩手機事件較低,這是由于圖像相似度判斷時受到了一定的周圍環(huán)境干擾,對于離崗和玩手機事件來說,事件判斷精度較高,這得益于4.1 節(jié)中得到的精確的目標檢測模型??傮w來說,事件判斷精度都在90%以上,說明了本文提出的行為事件識別方法的有效性與魯棒性,從而能夠應用于實際場景中。
表6 異常事件判斷結果
為了驗證該系統(tǒng)的整體處理速度,本文對表2中的6個視頻進行測試,采用實時率R進行評估。
其中,f1、f2分別代表視頻原幀率與系統(tǒng)處理的平均幀率。表7 是本系統(tǒng)的處理速度的測試結果,可以看出,當檢測的目標數(shù)量較多時,系統(tǒng)整體的速度會受到一定的影響,但平均實時率達到了0.95,可以達到實時處理。
表7 系統(tǒng)處理速度實驗
本文提出了一種基于深度學習的關鍵崗位人員行為分析系統(tǒng)。首先,構建了一個崗位人員行為數(shù)據(jù)集,結合YOLOv3 目標檢測算法,獲得了目標行為檢測模型,該模型對于光照變化及不同的目標尺度都有很好的適應性。然后,本文提出了基于視頻幀序列的崗位人員行為識別算法,采用了圖像相似度、像素值明亮計算及多種邏輯分析算法,綜合多幀圖像的目標檢測結果對視頻中的人員行為進行判斷,得到了對離崗、睡覺、玩手機行為事件的判斷結果。本文針對多種拍攝場景與環(huán)境的視頻進行實驗,實驗結果表明,該系統(tǒng)具有精確的目標檢測精度,對人員行為事件的判斷也具有較高的準確性,同時系統(tǒng)處理速度基本滿足實時處理的需要。綜上所述,本文對關鍵崗位人員行為分析研究具有重要參考意義。