王天諾,陳成軍,李東年,洪 軍
(1.青島理工大學 機械與汽車工程學院,山東 青島 266000;2.西安交通大學 機械工程學院,西安 710049)
近年來,人工智能技術飛速發(fā)展,并逐步向傳統(tǒng)制造領域滲透以提高制造的智能化程度。利用機器視覺技術對裝配過程進行監(jiān)測,可以減少人力成本、提高裝配效率、保證裝配質(zhì)量。尤其在大規(guī)模定制生產(chǎn)中,為了滿足客戶的多樣性需求,工廠需要及時重組生產(chǎn)線生產(chǎn)不同產(chǎn)品。在這種多變的生產(chǎn)環(huán)境下,往往會因為工人遺忘操作步驟或操作不夠規(guī)范,影響裝配質(zhì)量。因此,對工人的裝配動作進行監(jiān)測,防止裝配流程缺少關鍵裝配工藝步驟成為未來大批量定制生產(chǎn)任務亟待解決的問題之一。
現(xiàn)有的人體動作識別方法主要有基于特征提取的動作識別方法和基于深度學習的動作識別方法。傳統(tǒng)基于特征提取的動作識別方法主要靠一些經(jīng)典的人為設計特征來提取運動特征,再由分類器分類或進行模板匹配。如Bobick等[1]利用運動能量圖對動作特征進行描述并與模板匹配分類;Weinland等[2]提出了運動歷史圖像算法用以識別基本的人類動作;Yang等[3]利用HOG特征描述人體特征并用SVM分類;Low[4]提出的具有尺度不變性的SIFT算法用來描述影像中局部性特征,在計算機視覺領域應用廣泛;Chaudhry等[5]通過對HOOF時間序列進行分類來識別人類行為;Schuldt[6]提出時空興趣點表示視頻特征,并用SVM進行分類;Wang等[19]提出的IDT算法是目前識別效果較好的人工設計特征。人工設計特征數(shù)據(jù)預處理復雜,而深度學習模型具有自適應學習特征、數(shù)據(jù)預處理簡單等優(yōu)點。
目前基于深度學習的動作識別有著廣泛的研究。Simonyan等[7]提出雙流卷積神經(jīng)網(wǎng)絡,分別提取時間和空間特征并進行融合分類;Tran[8]提出的基于3D卷積[16]的C3D模型同時學習時空特征,該模型訓練速度最快;Wang等[9]提出了TSN網(wǎng)絡,結合了稀疏時間采樣和視頻級別的監(jiān)督可以高效的學習特征。 Donahue[10]提出了按時間順序提取的CNN特征作為LSTM網(wǎng)絡輸入的長時遞歸卷積神經(jīng)網(wǎng)絡。
在工業(yè)應用方面,Moutarde[11]提出的HMM算法研究了人機協(xié)作任務,使機器人能夠預測人體動作并作出反應;Kim[12]提出的用于視覺的船體裝配監(jiān)控系統(tǒng),實現(xiàn)了分割、識別和任務估計,以協(xié)作工作人員對裝配過程進行管理;Waechter[13]研究了基于視覺的增強現(xiàn)實應用。Oh[14]采用隱馬爾科夫模型實現(xiàn)機器人對人體上身的跟蹤與識別。Tao[15]利用神經(jīng)網(wǎng)絡實現(xiàn)了基于IMU和SEMG信號的智能制造中工人活動識別。
當前對裝配領域動作識別研究較少,且目前為止還沒有公用的工業(yè)領域裝配動作數(shù)據(jù)集可用于裝配動作的識別研究。工業(yè)環(huán)境下的裝配動作主要為上體動作,重復性較強,且通常使用相應裝配工具。另外,工業(yè)領域的動作識別更加追求效率。傳統(tǒng)的手工提取特征等方法由于預處理麻煩,不適合工業(yè)領域的應用。常見的幾種深度學習模型如基于3D卷積的C3D模型[8]、基于LSTM的LRCN模型[10]和Two-Stream模型[7]在公開數(shù)據(jù)集UCF-101上的識別準確率相差不多,但在速度上C3D模型最快,達到了313fps/s,而Two-Stream模型為1.2fps/s。主要是由于C3D模型的預處理和網(wǎng)絡結構較為簡單。而Two-Steam模型由于需要提取光流因此速度不佳,LRCN模型由于RNN難以并行的特性,速度也比較慢。因此,3D卷積神經(jīng)網(wǎng)絡具有訓練速度快、數(shù)據(jù)處理簡單、識別準確率高等優(yōu)點,更符合工業(yè)現(xiàn)場應用。因此,本文首先建立了裝配動作數(shù)據(jù)集,并利用3D卷積神經(jīng)網(wǎng)絡對該數(shù)據(jù)集進行特征提取和分類,以識別裝配動作。
本研究流程主要分為裝配動作數(shù)據(jù)集建立及預處理、3D卷積神經(jīng)網(wǎng)絡訓練、結果分析三部分。具體步驟如圖1所示。
圖1 研究流程
裝配動作數(shù)據(jù)集的建立:裝配動作與生活中常見跑、跳、蹲等人體動作不同。裝配動作主要為上體動作,重復性較強,且通常使用相應裝配工具,很多裝配動作相似但是所用工具不同。因此,對裝配動作中裝配工具的識別也會對神經(jīng)網(wǎng)絡識別裝配動作起到一定的幫助作用。為了更多的保留工具信息,采用了RBG相機錄制了包含錘、鋸、噴、刷等9類常見裝配動作視頻,每類動作都由12個實驗人員錄制而成。為了保證動作的泛化特性,每個裝配動作對應的工具都有兩到三種,由實驗人員自行選擇。在錄制視頻時,只告訴了實驗人員需要做哪些裝配動作,具體每個動作怎么做由實驗人員按照自己的理解來做。
視頻剪輯:為了擴充數(shù)據(jù)集,將每個人的每個裝配動作裁剪成了3段左右視頻,每段視頻3~5s,視頻幀率為25幀/s。經(jīng)剪輯后建立了包括307段數(shù)據(jù)樣本的裝配動作數(shù)據(jù)集。剪輯后的視頻按照動作分類存放在9個文件夾中,形成裝配動作分類標簽,每一個動作分類都包含12個實驗人員的共計35段左右視頻數(shù)據(jù)樣本。
數(shù)據(jù)預處理:每一個視頻樣本每秒提取出10幀圖像,并保存在一個子目錄下。訓練時將從每個子目錄下抽取16幀圖像作為一個樣本。每個分類文件夾下包含35個左右的子文件夾。以文件夾為單位,將整個數(shù)據(jù)集隨機抽取四分之三作為訓練集,訓練集中的20%作為驗證集,另外的四分之一作為測試集。圖2為部分視頻樣本提取的圖像幀。
圖2 部分數(shù)據(jù)樣本
3D卷積神經(jīng)網(wǎng)絡增加了時間維度,可以更好的處理時間信息。并且3D卷積神經(jīng)網(wǎng)絡的卷積核、卷積層和池化層的輸入輸出都是3D結構。本文將連續(xù)的視頻幀形成的3D數(shù)據(jù)結構傳入3D卷積神經(jīng)網(wǎng)絡網(wǎng)絡進行訓練,將卷積層提取的特征傳給softmax函數(shù)進行分類。整個3D卷積神經(jīng)網(wǎng)絡的訓練流程如圖3所示。
圖3 訓練流程
3D卷積層:每一個卷積層都是利用卷積核對輸入或前一層的特征圖提取特征并添加偏置項,然后再經(jīng)非線性ReLu激活函數(shù)[17]進行激活得到。假設輸入3D卷積層的數(shù)據(jù)大小為a1×a2×a3,channel數(shù)為c,3D卷積核大小為f×f×f,即卷積核維度為f×f×f×c。若3D卷積核個數(shù)為n,則經(jīng)過卷積操作后得的到輸出N為:
N=(a1-f+1)×(a2-f+1)×(a3-f+1)×n
(1)
3D池化層:池化層又叫下采樣層,常見的兩種池化方式為最大池化和均值池化。這里采取最大池化。池化層可以有效的減少特征數(shù)量,降低計算量,同時還可以保留局部特征。卷積層為池化層的輸入。最大池化操作就是取卷積立方體局部最大值,隨后得到更加抽象的輸出。
全連接層:在全連接層為了防止過擬合,采取dropout進行處理,隨機隱藏一部分節(jié)點。并引入L2正則化操作。L2正則化公式如下:
(2)
輸出層:第二個全連接層連接了Softmax函數(shù)進行輸出分類。Softmax函數(shù)主要用于處理多分類問題,可將輸出映射成(0~1)中的值,用來表示每個類別的概率值,所有概率相加和為1。其定義函數(shù)如下:
(3)
其中,Vi表示每個輸出分類的得分,C為總的分類個數(shù)。
本實驗所用系統(tǒng)為Ubuntu18.04(64位)。顯卡為NVIDIA Quadro M4000,CPU因特爾E5-2630。優(yōu)化器選用Adam[18]。初始學習率為0.0001。
針對不同的識別任務選取合適的網(wǎng)絡模型才能取得良好的效果。且對于同一個模型,不同的網(wǎng)絡深度、不同的層級結構都會對訓練速度及訓練精度造成影響。本文控制其它變量不變,在建立的數(shù)據(jù)集上分別對比了含有4~8個卷積層的網(wǎng)絡結構的訓練集準確率、驗證集準確率以及測試集準確率。對比結果如圖4所示。
圖4 網(wǎng)絡深度對比
實驗結果表明,在其它條件相同的情況下。含4個和5個卷積層的3D卷積神經(jīng)網(wǎng)絡在驗證集和測試集上表現(xiàn)的并不好,出現(xiàn)了欠擬合現(xiàn)象。而在含有7個和8個卷積層深度的3D卷積神經(jīng)網(wǎng)絡上,驗證集和測試集都與訓練集的準確率有較大偏差,表現(xiàn)出了過擬合現(xiàn)象。而含6個卷積層深度的3D卷積神經(jīng)網(wǎng)絡模型取得了較好的效果,在測試集上達到了88.5%的準確率。因此,本研究的具體網(wǎng)絡結構如表1所示。
表1 網(wǎng)絡參數(shù)
網(wǎng)絡的輸入為從視頻中抽取的16幀序列圖像,每張圖像的尺寸都被裁剪成112×112固定尺寸的3通道RGB圖像。所有的卷積層均采用尺寸為[3,3,3]的3D卷積核[8]進行卷積操作,為了更好的保留圖像信息,所有卷積核的步長均為[1,1,1]。從第一卷積層到第六卷積層分別有32、62、128、128、256、512個卷積核并得到相應數(shù)量的特征圖。
為了進一步研究本文模型對每一類裝配動作的識別準確率,又利用本文設計的模型對每一類裝配動作進行了測試,對比結果如下圖所示:
圖5 動作識別準確率
結果表明,本文構建的3D卷積神經(jīng)網(wǎng)絡模型,對大部分裝配動作都達到了很好的識別率。所有動作的識別準確率進行簡單的取平均值,為88.3%,符合本文在測試集上得到的準確率。再一次驗證了模型的可信度。但是本文模型對錘這一類動作的識別準確率只有62.5%。分析發(fā)現(xiàn),對錘這一動作識別率低主要原因是數(shù)據(jù)集的原因。由于實驗人員所做的裝配動作的持續(xù)時間不一致,對錘這一動作裁剪出的視頻樣本最少,只有30個視頻樣本。且部分數(shù)據(jù)樣本中實驗人員的手部動作超出了視頻范圍。基于這兩點原因,使得神經(jīng)網(wǎng)絡不能很好的學習到錘這類動作的特征。由此可見,數(shù)據(jù)集的好壞對3D卷積神經(jīng)網(wǎng)絡的訓練精度起到至關重要的作用。
本文研究了基于3D卷積神經(jīng)網(wǎng)絡的裝配動作識別方法。從裝配動作數(shù)據(jù)集的建立、網(wǎng)絡模型的選取與訓練、網(wǎng)絡結構優(yōu)化與調(diào)整幾方面進行了實驗研究。實驗結果表明,本文對裝配動作的研究有一定了魯棒性。識別準確率達到了88.5%。本文成果對大批量定制生產(chǎn)中裝配動作的識別監(jiān)測和裝配質(zhì)量監(jiān)測有一定的參考價值。