王佳鋮,鮑勁松,劉天元,李志強
(東華大學 機械工程學院,上海 201600)
車間內(nèi)人員復雜、工序與工種繁多、行為不規(guī)范、操作流程錯亂等都易引發(fā)安全事故,降低生產(chǎn)效率,給實際生產(chǎn)帶來巨大損失。因此對車間內(nèi)員工的作業(yè)行為進行監(jiān)控顯得尤為重要。傳統(tǒng)依靠人工肉眼觀察的方式已經(jīng)難以適應現(xiàn)今復雜的車間環(huán)境,深度學習方法的出現(xiàn)和不斷發(fā)展為車間行為監(jiān)控提供了更為有效的途徑,也是未來車間制造和管理模式向數(shù)字化、智能化轉(zhuǎn)型升級的重要使能技術。
國內(nèi)外學者對基于深度學習的車間行為監(jiān)控進行了初步的探索研究,其研究方法可分為基于圖像識別[1-3]和基于骨架識別[4-6]兩類。在基于圖像的行為識別研究中,Wang等[1]分析了視頻序列中像素的變化,并使用稠密光流方法進行行為識別;Wang等[2]結合時空軌跡和卷積神經(jīng)網(wǎng)絡(Convolution Neural Network, CNN),提出利用CNN對軌跡進行特征提取與分類;Ji等[3]使用3D卷積對視頻序列進行三維的卷積,進而判斷動作類別?;趫D像的方法能有利用圖片的全部信息提取更多的行為特征,但要求以完整圖像或完整圖像序列作為輸入,所構建的模型會因為關注圖像的背景、光線等信息而造成輸入信息的過分冗余,以至于識別效率嚴重受阻,且識別精度受圖像冗余部分影響大。在基于骨架的行為識別研究中,Ke等[4]考慮人體關節(jié)之間的距離生成灰度圖片,進而使用CNN分類;劉庭煜等[5]通過深度相機采集關節(jié)信息,并合成時空特征RGB圖像,進而使用CNN進行車間行為的分類;Li等[6]提出將人體關節(jié)分為5部分,分別送入子網(wǎng)提取特征并融合成高層特征進行關節(jié)序列的分類?;陉P節(jié)骨架信息的算法準確率一般要高于基于圖像信息的算法,但是該方法僅考慮了人體的動作,以至于輸入信息過于單一,無法進一步提升人體行為識別準確率。對于兩個相似的動作輸入,若僅從人體關節(jié)信息考慮很難區(qū)分其差別。
車間作業(yè)行為具有以下特點:①工人的行為多是固定的流程化的,工人的各種行為間存在著順序關系;②工人的行為大多使用工具對工件或設備進行操作。因此,工件的特征對于判別工人的行為具有極其重要的輔助作用。針對以往車間作業(yè)行為在線識別過程存在的問題及車間作業(yè)行為的特點,提出一種融合工件注意力于人體關節(jié)序列的車間作業(yè)行為在線識別方法。該方法的整體實現(xiàn)框架如圖1所示。該方法捕捉監(jiān)控畫面后,使用輕量化設計的人體關節(jié)估計模型提取人體關節(jié)信息,并使用SG(savitzky-golay)濾波器[7]平滑處理,按時間順序依次放入時序網(wǎng)絡中,同時原圖像畫面使用預訓練過的卷積神經(jīng)網(wǎng)絡抽取特征,該特征與時序網(wǎng)絡的輸入輸出融合,并形成注意力機制作最終的預測。對于兩個相似的動作輸入,使用傳統(tǒng)的識別方法僅從人體關節(jié)信息考慮很難區(qū)別,而使用基于工件特征的識別方法,通過對工件語義特征的分析,不同的語義對分類結果有明顯的導向作用,能更好地輔助行為的識別。實驗結果表明,該方法能進行在線的行為識別并具有較好的準確率,能有效判斷工人行為是否符合規(guī)范。
Openpose是一個用于多人實時的人體關節(jié)提取框架[8],擁有優(yōu)秀的準確率與實時性,適合于對RGB圖像提取人體關節(jié)。如圖2所示,Openpose對圖片中每一個可識別的人體共計18個關節(jié)(按照COCO數(shù)據(jù)集標準[9])進行檢測,分別為:0-鼻子,1-頸部,2-右肩,3-右肘,4-右腕,5-左肩,6-左肘,7-左腕,8-右胯,9-右膝,10-右腳踝,11-左胯,12-左膝,13-左踝,14-左眼,15-右眼,16-左耳,17-右耳。
官方的Openpose采用VGG網(wǎng)絡[10]提取底層特征,模型較大且對顯卡要求較高。為了保證模型的實時性能,本文使用輕量化的Openpose[11],使用更小的Mobile網(wǎng)絡提取底層信息重新訓練,在滿足精度要求的同時,可將模型大小降低一半以上,且能夠使用CPU實時運行。表1所示為相同電腦配置下的模型對比。
表1 Openpose輕量化前后對比
從表1可以看出,在按照標準數(shù)據(jù)集COCO中的精度指標AP進行計算后,輕量化的Openpose在COCO數(shù)據(jù)集中AP下降了18.7,而對于車間內(nèi)的工人識別,因為車間環(huán)境單一,工人相對于環(huán)境具有較強的對比度,同時工人往往按工位分配,很少出現(xiàn)聚集現(xiàn)象,所以對工人關節(jié)的識別相對于自然環(huán)境更加容易,在自建數(shù)據(jù)集上的AP只下降了11.2,并保持在一個較高的識別率75.4。
由于Openpose是一種基于圖像的人體關節(jié)估計方法,在視頻處理過程中,其關節(jié)位置存在跳動、跑飛等不穩(wěn)定現(xiàn)象,不利于模型的訓練。時序網(wǎng)絡梯度極其敏感,這樣的數(shù)據(jù)會導致?lián)p失函數(shù)的突然增長,如圖3所示,在迭代到1 300次左右時,由于數(shù)據(jù)集對某張圖片的檢測效果不佳,導致大量零數(shù)據(jù)的出現(xiàn),在損失函數(shù)迭代過程中出現(xiàn)了大幅度的波動,影響了模型的收斂。
為解決該問題,本文采用SG濾波算法用于關節(jié)數(shù)據(jù)在時域上的平滑處理。SG濾波算法是一種用于數(shù)據(jù)流平滑處理的算法,常在光譜的預處理[12]中用于平滑與降噪。對于以x=0為中心的2M+1個數(shù)據(jù),使用N階多項式
(1)
進行擬合,使真實值與擬合值的差值平方和
(2)
達到最小。
濾波器依次在時序長度上使用滑動窗口對其進行平滑。針對視頻中提取的每一個關節(jié)坐標,基于時間生成時序序列,再通過SG濾波器處理。處理后的關節(jié)序列相對于不處理的關節(jié)序列具有更好的平滑性,同時也減少了關節(jié)檢測突然跑飛對數(shù)據(jù)的影響。經(jīng)平滑處理后的關節(jié)數(shù)據(jù)具有更好的時序連續(xù)性,同時能保證模型訓練過程中的穩(wěn)定性。
本文采用的整體模型結構如圖4所示。對于視頻流中的每一張圖片:①經(jīng)Openpose提取人體關節(jié)坐標,得到長度為36的向量,分別代表18個關節(jié)點的x,y坐標;②使用預訓練的實例分割模型對圖片提取工件語義信息,并經(jīng)兩層不同的全連接層提取不同的信息分別作為輸入輸出的注意力信息;③通過一層全連接層將36維關節(jié)向量映射到256維高維空間;④在高維空間中融合工件注意力信息,再將其輸入到2層256維的門控循環(huán)單元時序網(wǎng)絡,時序網(wǎng)絡接受當前時刻輸入的同時也保存著之前時刻單元的信息,通過對當前與之前信息的分析運算輸出結果;⑤將時序網(wǎng)絡的輸出與注意力信息融合后,再經(jīng)過Softmax激活函數(shù)輸出各類別的概率。
傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)[13]采用與傳統(tǒng)神經(jīng)網(wǎng)絡相似的輸入層再到隱藏層到輸出層的結構,不同的是,其隱藏層的神經(jīng)元不僅受到當前輸入的影響,還受到上一時刻該神經(jīng)元單元狀態(tài)的影響。RNN能有效地保留時域信息,但在反向傳播過程中容易產(chǎn)生梯度消失等問題,導致參數(shù)的更新緩慢。因此,本文采用門控循環(huán)單元(Gated Reurrent Unit, GRU)[14]搭建時序模型,該模型通過重置門和更新門控制記憶的去留,能有效地解決梯度消失問題。其單元結構如圖5所示。
對于當前時刻的輸入xt,與上一時刻的單元狀態(tài)ht-1,有:重置門接收當前輸入與上一時刻單元狀態(tài),經(jīng)過一個參數(shù)矩陣wr變換和激活函數(shù)得到重置門結果rt,該結果大小決定著多大程度上對歷史信息進行擦除:
rt=σ(Wr·[ht-1,xt])。
(3)
更新門與重置門類似,采用不同的參數(shù)矩陣wz,生成重置門的結果zt,該結果決定著更新單元狀態(tài)的比例:
zt=σ(Wz·[ht-1,xt])。
(4)
從而得到當前單元狀態(tài):
(5)
(6)
將單元信息再經(jīng)過一個參數(shù)矩陣wo與激活函數(shù)即得到當前輸入的輸出結果:
yt=σ(Wo·ht)。
(7)
車間內(nèi)工人的行為與自然場景下的普通行為不同,工人行為與車間環(huán)境、使用工具等的關系更為緊密,因為工人的行為都是為了完成某種特定工作而對環(huán)境或物體進行的操作,例如給一個工件安裝螺絲,打開一個機器的開關等。而這些物理環(huán)境因素往往決定著工人的行為意圖,對這些因素進行特征提取從而對人體關節(jié)數(shù)據(jù)形成注意力機制[15-17],能更好地對工人的行為進行識別,例如圖6中的操作動作,若由于被操作物體的存在,對其行為的識別應偏向于受雙手手部關節(jié)位置序列的影響,同時不同的物體也對行為的最終判斷有著至關重要的影響,若檢測出工人手附件存在螺絲刀,根據(jù)該工件的語義信息,其進行安裝螺絲的行為應有更大的概率。
基于此,本文根據(jù)車間行為的特點,在原有GRU時序網(wǎng)絡中引入工件注意力。要獲取圖像中存在的例如螺絲刀、扳手等車間中常見物體的特征,需要應用語義分割網(wǎng)絡進行針對性的訓練。采用全卷積網(wǎng)絡模型,其結構如圖7所示,由上采樣層與下采樣層組成,下采樣層通過卷積層與池化層提取圖像中的特征同時縮小圖像大小。上采樣層通過反卷積與卷積提取特征同時恢復圖像大小直至與原圖大小相同完成像素級別的語義分割。訓練完成的模型擁有對工件工具的特征提取能力。
在推理過程中,僅使用模型的下采樣部分(固定參數(shù))進行特征提取,將下采樣的結果經(jīng)過額外的卷積層與兩路不同全連接網(wǎng)絡生成兩個最終的特征向量,也就是一個維度為N×1的矩陣,這里的N取決于最后一層神經(jīng)網(wǎng)絡的單元個數(shù)。在與骨骼向量融合時,N設為256(與骨骼向量的高維表示長度一致),在與時序網(wǎng)絡輸出結果融合時,N設為4(4種行為類別)。額外的卷積層與全連接參與行為識別模型的訓練,對時序網(wǎng)絡的訓練提供注意力支持[17]。融合方法采用的是典型的注意力機制(如圖7),即對原始向量與注意力向量進行對應元素點積,其結果與原始向量拼接成新向量作為下一層網(wǎng)絡的輸入。具體來說,對于關節(jié)坐標向量
Pcoordinate=(x1,y1,x2,y2,…,xn,yn),
(8)
特征向量
Vfeature=(v1,v2,…,v2n),
(9)
有注意力參數(shù)
Wattention=Pcoordinate⊙Vfeature。
(10)
其中⊙表示按元素點乘。該結果與坐標數(shù)據(jù)拼接形成拼接矩陣Pconcat=[Wattention,Pcoordinate],拼接矩陣再通過一個線性層轉(zhuǎn)成GRU模型的輸入,如圖8所示。時序網(wǎng)絡輸出處的注意力機制采用相似結構,使神經(jīng)網(wǎng)絡原始輸出收到特征向量的影響從而實現(xiàn)由特征向量導向的作用,最后經(jīng)過Softmax層輸出各個類別的概率。
實驗硬件環(huán)境為CPU Intel i7 8 700(6核心12線程),內(nèi)存容量16 GB,顯卡為RTX2060,使用CUDA加速運算操作系統(tǒng)為Ubuntu16.04,編程環(huán)境為Python3.5。
為驗證所提算法的可靠性及泛化能力,本文分別在自建車間動作數(shù)據(jù)集以及INRIA Xmas Motion Acquisition Sequences(IXMAS)數(shù)據(jù)集[18]上進行實驗。如圖9所示,自建樣本數(shù)據(jù)的場景模擬零件裝配過程主要包括安裝螺絲,緊固,切割3類動作,每段序列中各動作按一定順序多次出現(xiàn)。共計200組動作序列,逐幀進行類別標注,其中訓練集150組,驗證集50組。
IXMAS數(shù)據(jù)集的數(shù)據(jù)格式為連續(xù)的圖片序列,每個序列包含14個常見動作(看表,叉手,撓頭,坐下,起身,轉(zhuǎn)身,走動,揮手,擊拳,踢腿,指點,扔,從頭頂拋物,從下面拋物),由11位參與者每人做3遍,同時使用5個不同角度的攝像頭進行錄制,圖片序列均有動作分類標簽。由于頭頂角度的攝像頭所獲取的畫面難以識別人體的各個關節(jié),僅采用前4個攝像頭數(shù)據(jù),共132組動作序列,1 848個動作,其中訓練集100組,測試機32組。
為展示所提算法的優(yōu)越性能,擬在自建樣本數(shù)據(jù)上將基于骨架結合工件注意力的模型與基于圖像的模型、基于骨架的模型進行全面對比。訓練結果如圖11所示。由圖11中可以看出,在訓練過程中,融合注意力的GRU模型在收斂速度上快于普通GRU模型,同時收斂值更小,這說明注意力機制能更好地促進收斂。而在測試集中,隨著模型的訓練,其準確率先是快速上升,而后逐漸平穩(wěn),并在一定范圍內(nèi)上下振蕩。這是由于訓練過程并不以測試集作為參照,針對訓練集的參數(shù)調(diào)優(yōu)結果并不一定總是使模型在測試集上的泛化性能優(yōu)化,同時可以看到融合注意力的GRU模型相對于普通GRU模型具有更好的泛化性能,其測試集準確率仍能維持在80%左右,而GRU模型只能達到60%的準確率。由此可以看出,GRU中的注意力機制能有效地提升識別的準確率,同時增強模型的泛化性能。
此外,將時序樣本分類真實值與測試值延時間線進行動作分類的堆疊,得到如圖12所示結果??梢钥吹剑珼NN模型由于缺少時序信息,其結果不穩(wěn)定,存在許多細小片段,這將極大地影響其準確率與回歸率。GRU模型由于考慮到動作的上下文關系,其結果具有更好的連續(xù)性,而加入工件注意力機制后其性能得到進一步提升,預測結果整體來說能較好地反應真實值,但相對于真實值具有小幅度的延遲。同時,動作銜接過程,即更換工具時易出現(xiàn)分類的錯誤,究其原因是因為更換工具時,即將出現(xiàn)的各類動作具有相同的概率,在對真實值進行標注時的動作劃分長短也將對實驗結果產(chǎn)生一定的干擾。
由于工程應用中更關注動作類別的召回率以及精確率,即是否檢測出所有的動作類別,以及檢測出的動作類別是否都是正確的。本文采用一種序列交并比(temporal Intersection over Union, tIoU)方法進行召回率與準確率的計算,其計算方式如圖13所示。
對于預測出的某一序列Tpred,若存在與該預測相符合的真實值片段Ttruth,則
(11)
若不存在,則tIoU=0。當tIoU>0.5,判定該預測正確并對真實值進行召回。
對各個模型的識別結果進行計算得到如表2所示結果??梢钥吹?,由于DNN存在大量零碎片段,其召回率和準確率相對于時序模型都極低,而GRU在加入注意力機制后,對召回率與準確率都有較明顯的提升,特別是準確率提高了32%,這得益于注意力機制對結果的導向作用,使模型能更好地區(qū)別易混淆的輸入。處理速度方面,DNN由于不需要分析時序信息,其處理速度最快,且其時間主要用于人體關節(jié)的識別。加入注意力機制后,由于特征提取網(wǎng)絡分支的存在,其處理速度相對于普通GRU有所下降,但仍能維持在單幀320 ms的速度。
表2 各模型在自建樣本數(shù)據(jù)中性能指標
使用未經(jīng)針對性訓練的相同結構的模型在IXMAS數(shù)據(jù)集上進行實驗得到如圖14和表3所示結果??傮w來看,所提方法在收斂速度、識別準確率、識別時間、泛化性能等方面的優(yōu)越性與自建樣本數(shù)據(jù)上的測試結果類似,相對于DNN和普通GRU仍具有較大的提升。但相比于自建數(shù)據(jù)集,該結果中引入注意力機制帶來的準確率提升沒有自建數(shù)據(jù)集大,這是因為該模型在原始圖像分割任務的數(shù)據(jù)集上進行訓練,網(wǎng)絡學到的特征的空間層次結構可以有效地作為視覺世界的通用模型。因此,在IXMASI數(shù)據(jù)上進行特征提取時仍能提取到部分有效的非肉眼可觀測的特征,這些特征從一定程度上也對網(wǎng)絡具有一定的提升。另一方面,額外的特征輸入提升了模型的容量,在數(shù)據(jù)集充足時理應提高模型的性能。速度上,由于采用相同的模型與相同的輸入圖片大小,檢測速度與自建數(shù)據(jù)集實驗基本一致,此處不再列出。
表3 各模型在IXMAS數(shù)據(jù)集檢測指標
車間內(nèi)工人的行為大多是對工件或設備進行操作,本文針對這一規(guī)律,提出一種基于工件注意力機制的可用于在線監(jiān)控車間作業(yè)人員的行為識別方法。該方法融合關節(jié)序列信息與工件特征信息,并使用GRU模型作為基礎時序模型。在自建數(shù)據(jù)樣本以及公共數(shù)據(jù)集上進行了實驗,驗證了該方法的有效性,尤其是在自建數(shù)據(jù)樣本中對工具進行預訓練之后使模型性能得到了較大的提升。該方法可用于對車間內(nèi)作業(yè)流程的動作監(jiān)管,保證作業(yè)順序,防止危險動作的發(fā)生,保障車間的安全高效生產(chǎn)。未來,可在此研究基礎上,使用手部關節(jié)進行更加精細的動作推理或使用不同的特質(zhì)融合機制對工件特質(zhì)與人體特質(zhì)進行融合。另外,也可將該方法融入人機協(xié)作或是作業(yè)行為評估領域。