趙 廉,周 雷,郭育恒,陳驊桂
(1.上海理工大學(xué) 健康科學(xué)與工程學(xué)院,上海 200093;2.上海應(yīng)用技術(shù)大學(xué) 計算機科學(xué)與信息工程學(xué)院,上海 201418)
隨著人工智能的發(fā)展和工廠產(chǎn)業(yè)化升級,將計算機與機器人融入工業(yè)生產(chǎn)中,打造“智慧工廠”模式成為近年來國內(nèi)外智能制造領(lǐng)域的主流趨勢[1],借助人工智能技術(shù)保障安全生產(chǎn)的智慧安全方向是其中重要的一環(huán)[2-3]。在傳統(tǒng)工業(yè)生產(chǎn)中,主要依靠管理者人眼觀察或人工審查視頻的方式,發(fā)現(xiàn)生產(chǎn)中出現(xiàn)的異常情況,該模式的缺點在于需要耗費額外人力,容易出現(xiàn)漏檢現(xiàn)象,因此有必要通過人工智能方法設(shè)計一種自動化識別異常的框架,實現(xiàn)在工業(yè)場景中的自動化異常檢測。
本文主要針對工業(yè)場景中監(jiān)控攝像頭拍攝的人員情況,提出一種異常行為檢測框架,使用深度學(xué)習(xí)和人體關(guān)鍵點識別技術(shù)對生產(chǎn)中影響安全的行為(工人睡覺、發(fā)生跌倒)設(shè)計檢測模型。具體為采取以人體姿態(tài)識別網(wǎng)絡(luò)獲取關(guān)鍵點特征,使用關(guān)鍵點特征進(jìn)行分類模式,以檢測當(dāng)前場景中是否存在異常情況。為了比較各種分類方法的優(yōu)缺點,使用在工廠場景中表現(xiàn)較優(yōu)的隨機森林(RF)[4]、邏輯回歸(LR)[5]、支持向量機(SVM)[6]、K 最鄰近(KNN)[7]等多種線性和非線性分類器及使用由4 種分類器構(gòu)成的集成學(xué)習(xí)模型,在工廠數(shù)據(jù)集上進(jìn)行比較實驗。
目前,通常采取人體行為識別技術(shù)檢測工廠生產(chǎn)中出現(xiàn)的睡覺、跌倒等異常情況[8]。人體行為識別是近年來機器學(xué)習(xí)領(lǐng)域的熱點問題之一,國內(nèi)外已有相當(dāng)多的成熟方法和技術(shù)路線可供選擇。早期,行為識別通常借助硬件傳感器或可穿戴設(shè)備實現(xiàn),特別在跌倒檢測領(lǐng)域已有大量應(yīng)用[9]。Clemente 等[10]設(shè)計由放置于地板上傳感器組成的系統(tǒng),通過多個傳感器相互協(xié)作,實時檢測房間中關(guān)門、物體掉落、人員跌倒等事件。Baghdadi 等[11]設(shè)計可穿戴設(shè)備記錄人的步態(tài),預(yù)測使用者當(dāng)前的疲勞程度。這些設(shè)備的優(yōu)點在于識別準(zhǔn)確率高,部分設(shè)備具有實時傳輸數(shù)據(jù)功能,缺點在于使用不便、器材成本較高,因此不適用于工業(yè)場景中。
人體姿態(tài)識別作為計算機視覺的重要應(yīng)用,使用視頻或圖像手段分析人體姿態(tài)是目前普遍做法,包含使用深度相機或紅外相機進(jìn)行人體行為識別,利用Openpose[12]、Hrnet[13]等開源人體檢測模型在普通RGB 圖片中得到關(guān)鍵點,進(jìn)而進(jìn)行行為識別操作。對于前者而言,張浩[14]設(shè)計了基于深度相機的三維重建方法,在較大空間范圍內(nèi)捕捉人與物體的交互過程,通過動靜模型的混合體素分配機制,最終實現(xiàn)了人與場景的聯(lián)合實時三維重建。任丹彤等[15]利用紅外相機設(shè)計了可見光—紅外光雙光融合算法,使用YOLO 模型對車間6 類異常行為進(jìn)行檢測,具有良好的實時性和準(zhǔn)確性。對于后者而言,Chen 等[16]利用Openpose 提取人體關(guān)鍵點,通過計算髖關(guān)節(jié)中心的下降速度、人體中心線與地面的夾角等指標(biāo)來檢測跌倒,識別準(zhǔn)確率達(dá)到97%。后者相較于前者具有兩個優(yōu)點:成本較低,不依賴除計算機外的其他外部設(shè)備;可處理場景中多個目標(biāo)、多種行為,應(yīng)用范圍更廣泛,在工廠場景中優(yōu)勢更為明顯。
綜合分析國內(nèi)外研究現(xiàn)狀發(fā)現(xiàn),在工業(yè)場景中進(jìn)行異常行為檢測時,考慮到數(shù)據(jù)大多為監(jiān)控視頻,因此本文以普通RGB 圖片為研究主體,使用人體姿態(tài)檢測模型進(jìn)行實驗更符合實際情況和成本需求。
如圖1所示,本文所提算法分為3個步驟。
Fig.1 Overall algorithm process圖1 算法整體流程
步驟1:以工業(yè)場景中的人物圖片或視頻作為模型輸入。
步驟2:使用關(guān)鍵點檢測模型(本文使用High-Resolution Net,HRNet)從圖中檢測人物關(guān)鍵點,并輸出處理圖像。
步驟3:基于步驟2 得到的17 個關(guān)鍵點特征,訓(xùn)練分類器并進(jìn)行集成,完成異常行為檢測。
需要注意的是,該框架不依賴HRNet 網(wǎng)絡(luò),可替換為任何具有人體關(guān)鍵點檢測的網(wǎng)絡(luò)模型(Openpose、Alpha-Pose[17]),因此具有良好的可拓展性,更適合部署到一些現(xiàn)有的工業(yè)機器人或工廠智慧助手當(dāng)中[18]。關(guān)鍵點檢測的目的是將目標(biāo)圖片中的圖像特征轉(zhuǎn)變?yōu)槿梭w關(guān)鍵點特征向量,進(jìn)而使用分類器或分類規(guī)則進(jìn)行分類。
HRNet 網(wǎng)絡(luò)(High-Resolution Net)是針對2D 圖像單人姿態(tài)估計的開源方法,網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。該網(wǎng)絡(luò)由并行的高分辨率和低分辨率子網(wǎng)絡(luò)組成,在多分辨率子網(wǎng)絡(luò)間重復(fù)信息交換,圖2 頂端為主干高分辨率子網(wǎng),在整個網(wǎng)絡(luò)中始終保持較大的特征圖,避免因特征圖放縮導(dǎo)致人體關(guān)鍵點位置信息丟失,其余各支路為多分辨率子網(wǎng),隨著網(wǎng)絡(luò)的深入層數(shù)不斷增加,網(wǎng)絡(luò)分辨率從上往下依次降為原來的一半,對應(yīng)的通道數(shù)翻倍。
Fig.2 Structure of HRNet attitude estimation model圖2 HRNet姿態(tài)估計模型結(jié)構(gòu)
多分辨率子網(wǎng)可得到不同尺度的特征圖,同時每隔一層卷積層就會在現(xiàn)有多尺度網(wǎng)絡(luò)間進(jìn)行信息交換(主要采取通道合并concat 操作實現(xiàn)),達(dá)到多尺度融合的目的。該結(jié)構(gòu)保證無論何種目標(biāo)均能在網(wǎng)絡(luò)傳遞的主干網(wǎng)絡(luò)中始終保持較大的特征圖,相較于傳統(tǒng)的編碼器—解碼器(Encoder-Decorder)結(jié)構(gòu),避免了由于上/下采樣操作導(dǎo)致特征圖大小改變而引起的信息丟失問題,因此在關(guān)鍵點識別中具有較高的準(zhǔn)確性。
本文選用以coco 數(shù)據(jù)集預(yù)訓(xùn)練HRNet 模型,使其具備檢測人體17 個關(guān)鍵點的能力。按照coco 數(shù)據(jù)集定義,17個關(guān)鍵點對應(yīng)的人體部位為鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左胯、右胯、左膝、右膝、左腳踝、右腳踝,如圖3所示。
Fig.3 17 key points of human body圖3 人體17個關(guān)鍵點
以單人圖片為輸入,當(dāng)HRNet 捕捉到人體時首先檢測關(guān)鍵點,同時記錄17 個關(guān)鍵點在圖上兩個維度的坐標(biāo)值(x,y)及每個關(guān)鍵點的置信度評分,相當(dāng)于每個人共有17×3=51 項特征。為了使關(guān)鍵點特征不受輸入圖片大小影響,將關(guān)鍵點圖上坐標(biāo)轉(zhuǎn)換為相對位置坐標(biāo)(x',y')。
式中:(x,y)為關(guān)鍵點原始坐標(biāo);w、h分別為圖片的寬和高,相除后可使(x',y')的橫縱坐標(biāo)處于[0,1]范圍;置信度分?jǐn)?shù)s為百分率,處于[0,1],每個關(guān)鍵點都有相對位置的(x',y')坐標(biāo)和當(dāng)前關(guān)鍵點置信度分?jǐn)?shù)s這3個特征。
在獲得關(guān)鍵點特征后,下一項任務(wù)是利用關(guān)鍵點特征判斷人物當(dāng)前狀態(tài)。本文主要檢測的異常行為是根據(jù)工業(yè)生產(chǎn)中實際需要,檢測人員睡覺和跌倒行為。兩項檢測應(yīng)用場景有所不同,睡覺主要在辦公區(qū)域內(nèi),而跌倒則在生產(chǎn)區(qū)域內(nèi),無法設(shè)計單一模型對兩種情況進(jìn)行檢測,因此本文分別設(shè)計了兩套獨立的模型用于兩個不同區(qū)域。在分類方法選擇上,以關(guān)鍵點檢測得到的51 項特征為基礎(chǔ),選擇機器學(xué)習(xí)領(lǐng)域,特別是姿態(tài)識別研究中常用的幾種線性和非線性分類器建立預(yù)測模型。
2.3.1 支持向量機
支持向量機在深度學(xué)習(xí)出現(xiàn)前是表現(xiàn)最出色的算法之一,其思想是在訓(xùn)練樣本的學(xué)習(xí)中構(gòu)建一個超平面使數(shù)據(jù)線性可分,距離超平面最近的點為支持向量,以構(gòu)建超平面作為決策曲面,現(xiàn)已廣泛用于分類問題及回歸問題。
2.3.2 邏輯回歸
邏輯回歸與線性回歸思想類似,概念上是一種廣義的線性回歸分析模型,主要用于解決二分類問題,優(yōu)點在于可直觀分析各變量貢獻(xiàn)程度,可解釋性較好;缺點則是對線性不可分?jǐn)?shù)據(jù)需要進(jìn)行高維轉(zhuǎn)化等操作,求解較為困難。假設(shè)x、y表示樣本的特征和類別,y可取0 或1,那么y取1的概率為:
式中:θ為回歸系數(shù);hθ(x)為sigmoid 函數(shù),輸出值在0~1 之間,通常情況下hθ(x) ≥0.5 時屬于1 類,hθ(x) <0.5時屬于0類。
2.3.3 K最近鄰
K 最近鄰?fù)ǔS糜谖谋痉诸?,將樣本映射到特征空間中,通過計算不同特征值間的距離進(jìn)行分類。對于一個新輸入的樣本,尋找訓(xùn)練集中與其距離最近的K 個樣本,通過它們的類別來判斷該樣本屬于哪類。由于所有樣本均已確定類別,因此算法無需訓(xùn)練,但新輸入樣本要與所有訓(xùn)練樣本進(jìn)行計算,時間復(fù)雜度由樣本數(shù)量所決定。在應(yīng)用中可根據(jù)數(shù)據(jù)集情況,靈活選擇K 值及不同的距離度量方法,例如歐氏距離等。
2.3.4 隨機森林
隨機森林是一種采用集成學(xué)習(xí)思想,由多顆決策樹共同構(gòu)建的分類模型。在訓(xùn)練階段,樹被隨機創(chuàng)造,每個樹的訓(xùn)練樣本均來自整體特征的隨機子集,樹與樹之間相互獨立。在預(yù)測階段,利用所有樹的結(jié)果進(jìn)行決策以決定最終的結(jié)果。
2.3.5 XGBoost
XGBoost[19]是梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)的改良版本,采用集成學(xué)習(xí)思想,通過梯度提升方法進(jìn)行加法訓(xùn)練。該模型以樹為基分類器,將多個弱分類器組合成一個集成分類器,以提升預(yù)測速度與精度,與隨機森林算法的不同之處在于其弱分類器間并非獨立,而采用串行結(jié)構(gòu)將前一個分類器的的預(yù)測作為下一分類器的輸入,由最后一個分類器輸出結(jié)果。
為了便于在后續(xù)實驗中比較各算法在異常行為檢測中的優(yōu)劣,在超參數(shù)的設(shè)置上盡量選用其默認(rèn)值,具體參數(shù)如表1 所示。為了發(fā)揮各模型在分類方面的優(yōu)勢,進(jìn)一步提升異常檢測的準(zhǔn)確率,除了單獨使用以上5 種模型外,本文還組合多種分類器提出一種集成學(xué)習(xí)模型,采用軟投票方法決定最終預(yù)測結(jié)果。軟投票以前4 種分類器預(yù)測樣本屬于異常的平均概率作為輸入,根據(jù)結(jié)果預(yù)測該樣本是否屬于異常行為。
Table 1 Setting of hyperparameters for each model表1 各模型超參數(shù)設(shè)置
式中:xi表示輸入的第i各樣本;k為分類器的數(shù)量,本文設(shè)置為4;fk表示第k個模型對樣本的預(yù)測結(jié)果;yi代表第i個樣本的最終預(yù)測值,后續(xù)通過設(shè)定閾值等方式,將yi轉(zhuǎn)變?yōu)榉诸惤Y(jié)果。
實驗環(huán)境CPU 為i7-9700,顯卡為NVIDIA GeForce GTX 1080Ti,對所有數(shù)據(jù)采用五折交叉驗證方法,每折取全部數(shù)據(jù)的80%進(jìn)行訓(xùn)練,20%用于測試,每折測試數(shù)據(jù)不重復(fù),取5 次結(jié)果的平均值。數(shù)據(jù)集來自攀鋼集團有限公司提供的7 段監(jiān)控視頻,共2 863 張圖片,采用檢測算法進(jìn)行預(yù)處理得到視頻中的人物圖片并人工標(biāo)注睡覺和正常的標(biāo)簽。其中,睡覺檢測數(shù)據(jù)集共2 863 張圖片,睡覺數(shù)據(jù)215 張,正常數(shù)據(jù)2 648 張;跌倒檢測數(shù)據(jù)集中跌倒數(shù)據(jù)451張,正常數(shù)據(jù)954張。數(shù)據(jù)集示例如圖4所示。
Fig.4 Sleep behavior samples in the factory dataset圖4 工廠數(shù)據(jù)集中的睡覺行為樣本
首先將這些圖片送入HRNet 進(jìn)行關(guān)鍵點識別,每張圖片經(jīng)HRNet 處理后得到51 項特征,然后將51 項特征單獨存為一個csv 文件,即每張圖片對應(yīng)一個csv 數(shù)據(jù),便于后續(xù)實驗。
本文通過準(zhǔn)確率、精確率、召回率和F1 分?jǐn)?shù)指標(biāo)評估模型的性能,計算公式如式(4)—式(7)所示。同時,為了保證測試結(jié)果的穩(wěn)定性,采用五折交叉驗證方式劃分?jǐn)?shù)據(jù)集,將數(shù)據(jù)集按類別抽樣并等分為5 份,每次選取其中1 份作為測試集,其余4 份作為訓(xùn)練集,盡可能消除由選取測試集導(dǎo)致的實驗誤差。
式中:TP 代表預(yù)測為異常行為的結(jié)果中真實出現(xiàn)異常的數(shù)量(真陽性);TN 代表預(yù)測為正常行為的結(jié)果中真實正常的數(shù)量(真陰性);FP 代表預(yù)測為異常行為的結(jié)果中實際為正常行為的數(shù)量(假陽性);FN 代表預(yù)測為正常行為的結(jié)果中實際為異常行為的數(shù)量(假陰性)。
在跌倒檢測數(shù)據(jù)集中,首先對圖片使用關(guān)鍵點識別網(wǎng)絡(luò)進(jìn)行檢測,如圖4 所示。表2 中展示了6 種模型4 個評價指標(biāo)的平均值,括號內(nèi)為5 次結(jié)果的標(biāo)準(zhǔn)差,其中每個指標(biāo)的最優(yōu)值已加粗。圖5 為AUC-ROC 曲線,以衡量在不同閾值下各分類器的指標(biāo),右下角AUC 為曲線下面積,在一定程度上反映了分類器的強弱。結(jié)合表2 結(jié)果可知,表現(xiàn)最優(yōu)秀的模型為集成學(xué)習(xí)(Soft-Vote),準(zhǔn)確率、精確率、F1 得分分別為92.86%、87.58%、88.69%,證明了集成學(xué)習(xí)策略的有效性,結(jié)合多分類器的效果相較于單一分類器更優(yōu)。
Table 2 Fall detection experiment results表2 跌倒檢測實驗結(jié)果
Fig.5 AUC curves of fall behavior samples in the factory dataset圖5 工廠數(shù)據(jù)集中的跌倒行為樣本的AUC曲線
整體上,除邏輯回歸模型外,各分類器的準(zhǔn)確率、召回率、精確率及F1 分?jǐn)?shù)指標(biāo)均達(dá)到80%以上,AUC>0.9,屬于效果較好的分類器,證明了使用關(guān)鍵點特征進(jìn)行跌倒行為的異常檢測的可靠性。
睡覺檢測采取與跌倒檢測類似的方法,但由于睡覺數(shù)據(jù)僅為215 例,而正常數(shù)據(jù)為1 125 例,存在一定程度的類別不平衡現(xiàn)象。因此,在訓(xùn)練階段對睡覺數(shù)據(jù)進(jìn)行過采樣,重復(fù)抽樣睡覺類數(shù)據(jù)以平衡正負(fù)樣本,優(yōu)化訓(xùn)練過程。值得注意的是,所有過采樣均在訓(xùn)練過程中使用,在測試過程中沒有對測試集進(jìn)行任何調(diào)整。
表3 展示了睡覺異常檢測的實驗結(jié)果,圖6 為各分類器在睡覺行為檢測中的AUC-ROC 曲線。由此可知,使用軟投票的集成學(xué)習(xí)模型最優(yōu),準(zhǔn)確率、召回率、精確率、F1分別為98.51%、94.97%、95.81%,95.38%,除精確率外,其他3 項指標(biāo)在5 種方法中最優(yōu),進(jìn)一步證明了組合策略的優(yōu)勢。隨機森林與XGBoost的總體指標(biāo)與軟投票法非常接近,在五折交叉驗證中的某些折中方法中相較于軟投票法更優(yōu),且兩種算法的AUC 指標(biāo)甚至超過了集成學(xué)習(xí)模型,原因可能為隨機森林與XGBoost是由多顆決策樹通過串行或并行方式組合而成,自身也是一種集成學(xué)習(xí)方法。
Table 3 Sleep detection experiment results表3 睡覺檢測實驗結(jié)果
Fig.6 AUC curves of sleep behavior samples in the factory dataset圖6 工廠數(shù)據(jù)集中的睡覺行為樣本的AUC曲線
本文針對工業(yè)場景中工人可能出現(xiàn)的異常行為,提出了一種異常檢測模型框架。通過HRNet 識別人體關(guān)鍵點,將關(guān)鍵點信息輸入分類模型,同時使用4 種分類器與一種集成分類模型進(jìn)行分類,以區(qū)分正常行為和異常行為樣本。實驗結(jié)果表明,所提模型在跌倒檢測、睡覺檢測數(shù)據(jù)集上的準(zhǔn)確率分別為92.86%、98.51%。
該框架相較于人眼識別的優(yōu)勢在于節(jié)約了人力開銷,無需額外的硬件設(shè)備,但需要同時使用關(guān)鍵點識別和異常檢測模型,無法進(jìn)行端到端訓(xùn)練。此外,跌倒檢測和睡覺檢測所使用的模型較為簡單,后期可選擇性能更強的機器學(xué)習(xí)模型來進(jìn)一步提升模型的識別準(zhǔn)確性。未來,可對以上內(nèi)容進(jìn)行整合和輕量化,在保證檢測準(zhǔn)確率的基礎(chǔ)上進(jìn)一步減小模型規(guī)模。