李昊朋王景成黃姣茹
(1.西安工業(yè)大學(xué)電子信息工程學(xué)院 西安 710016)(2.上海交通大學(xué)自動化系 上海 200240)
人體行為識別是目前計(jì)算機(jī)視覺領(lǐng)域中非常熱門和具有挑戰(zhàn)性的內(nèi)容之一,其研究方法分為人工特征[1~2]表示以及深度學(xué)習(xí)的特征表示[3]。
文獻(xiàn)[4]提出的視頻監(jiān)控系統(tǒng)可以把圖像中的人體和背景的分布進(jìn)行分割,分離出的人體部分可以用建模方式進(jìn)行檢測,然而由于網(wǎng)絡(luò)結(jié)構(gòu)以及數(shù)據(jù)集的限制,此方法運(yùn)算的速度和準(zhǔn)確度不高。文獻(xiàn)[5]提出的雙流融合3D卷積技術(shù)從兩條分支網(wǎng)絡(luò)得到彩色和深度行為特征,此方法雖然可以達(dá)到目前主流行為識別算法的水平,但是受硬件限制較大,難以部署到輕量化的操作環(huán)境。
針對上述準(zhǔn)確度不高、計(jì)算速度較慢的問題,本文提出了融合了目標(biāo)檢測和行為檢測的機(jī)器視覺檢測方法。從YOLO目標(biāo)檢測入手,主要面向多人圖像,利用Blaze Pose關(guān)鍵點(diǎn)檢測和ST-SVM分類器以及角度識別結(jié)合的方法,得到圖像特征信息;之后通過制定決策融合策略,對兩種圖像行為信息進(jìn)行決策融合,得到最終行為識別結(jié)果。
基于機(jī)器視覺的工廠人員異常行為檢測包括多人圖像分割、人員行為識別和決策融合等幾個(gè)關(guān)鍵步驟,系統(tǒng)的具體結(jié)構(gòu)框圖如圖1所示。
圖1 多人行為識別框架圖
本文選擇使用YOLOv5算法將多人圖像分割為單人圖像[10~12]。之后使用Blaze Pose識別單人圖像中的骨骼關(guān)鍵點(diǎn),并對提取出的數(shù)據(jù)進(jìn)行處理。利用角度判別的方法,得到圖像行為1。再將關(guān)鍵點(diǎn)數(shù)據(jù)歸一化后,送入分類器中進(jìn)行預(yù)測,得到圖像行為2。最終使用制定的規(guī)則對兩種圖像行為決策合并,得到最終的行為信息(怠工、姿態(tài)異常等)。
在實(shí)際的場景中,一些動作的姿態(tài)點(diǎn)有一定的規(guī)律,比如當(dāng)人的雙手舉起來時(shí),大臂與肩膀的矢量角度會大于0°(以右下為坐標(biāo)軸正方向),當(dāng)人叉腰的時(shí)候,大臂與小臂的角度會大于60°且小于120°等。如果通過Blaze-Pose的坐標(biāo)得到一些基于關(guān)鍵點(diǎn)的矢量信息,就可以通過計(jì)算矢量之間的夾角,從而獲得人員的行為信息[15]?;贐laze-Pose實(shí)現(xiàn)的角度判別行為示例如表1所示。
矢量間的角度計(jì)算公式如式(1)所示:
以表1給出的四種行為為例,結(jié)合正常人員行為,給出的人員站位情況如圖2所示。
表1 基于關(guān)鍵點(diǎn)角度的行為判別
圖2(a)為角度識別人員行為的正常人員空間站位,右肩關(guān)鍵點(diǎn)3與左肩關(guān)鍵點(diǎn)1坐標(biāo)作差可得矢量S1,左肘關(guān)鍵點(diǎn)2與左肩關(guān)鍵點(diǎn)1作差可得矢量S2,兩矢量在空間意義上的夾角為θ1,而正常狀態(tài)下人員的左臂小臂自然下垂時(shí),θ1<0。同理正常狀態(tài)下右臂與水平夾角θ2也小于零。圖2(b)為舉左手的人員空間站位,左臂舉起,則矢量S1與矢量S2之間的夾角θ1大于0,右臂正常,判定為人員舉左手。舉右手則與舉雙手同理。圖2(e)為雙手叉腰狀態(tài)的人員空間站立,人員關(guān)鍵點(diǎn)1與關(guān)鍵點(diǎn)2矢量記為S3,關(guān)鍵點(diǎn)2與關(guān)鍵點(diǎn)3之間的矢量記為S4,當(dāng)做叉腰動作時(shí),兩個(gè)矢量之間的夾角60°<α3<120°,左臂同理,當(dāng)兩條手臂的夾角同時(shí)滿足叉腰條件,則判定為雙手叉腰[13]。
圖2 人員空間站位圖
目標(biāo)分類主要用來對提取出的人體關(guān)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行分類,從而判斷出人員當(dāng)前行為。Blaze Pose關(guān)于人體的關(guān)鍵點(diǎn)可以檢測出33組,但是本文僅需通過分類器檢測出人員站立、坐下以及躺下三組基本行為。因此,本文采用雙肩、雙髖以及雙膝8組關(guān)鍵點(diǎn)的輸出格式,關(guān)節(jié)拓?fù)淙鐖D3所示。
圖3 用于分類的人體拓?fù)鋱D
通過Blaze Pose獲取到人體關(guān)節(jié)點(diǎn)坐標(biāo)后,將歸一化后的坐標(biāo)作為分類數(shù)據(jù),通過SVM分類器進(jìn)行分類。但是SVM算法本質(zhì)上是一個(gè)二值分類器,不適合用于多分類任務(wù)中。因此,需要構(gòu)造合適的SVM多類分類器,常用來構(gòu)建SVM多分類器的方法有直接和間接法兩種。本文采用間接法中的基于決策樹的SVM(ST-SVM)對人員行為進(jìn)行分類,首先將所有類別分為兩個(gè)類別,接著再將子類進(jìn)一步劃分為兩個(gè)次級子類。反復(fù)循環(huán),直到所有節(jié)點(diǎn)都只包含一個(gè)單獨(dú)的類別為止。
本文選取實(shí)驗(yàn)場景為洛陽中航光電矩形彈簧SMT組裝車間,此車間秉承“質(zhì)量第一、持續(xù)改進(jìn)和打造精品”的質(zhì)量方針,無論是對工序還是對員工的生產(chǎn)要求都極高,選取此場景作為實(shí)驗(yàn)場景符合本文涉及課題的要求。
文中融合決策由工廠內(nèi)分發(fā)調(diào)查問卷,以及實(shí)地考察過后調(diào)整得到。在整理的策略中選出具有代表性的四種作為參考,如表2所示。
表2 部分融合行為決策
SMT車間組裝矩形彈簧工位較其他工位略簡單,適合做場景內(nèi)的人員行為分析,表中規(guī)定時(shí)間為廠區(qū)內(nèi)的正常上班時(shí)間,即8:00-11:00,14:00-20:00,在此時(shí)間段內(nèi),員工若是在規(guī)范工位正常工作,則判定為無異常行為,表現(xiàn)形式為Normal;而若是通過圖像檢測到人員在正常上班時(shí)間內(nèi),坐下并身子后仰、站立叉腰或者趴在桌子上,則判定為怠工,表現(xiàn)形式分別為LieDown1和LieDown2;若是檢測到人員有趴在桌子上或者躺下的行為,則判定為Abnormal。
針對各異常行為的處理,可以通過異常行為層級來進(jìn)行。異常行為越嚴(yán)重,其異常層級就越高,對此工位人員的處理方式也會越嚴(yán)厲。
比如LieDown1可能是工位內(nèi)人員久坐后無意伸的一個(gè)懶腰,此時(shí)并不需要將其記錄到異常行為中;而Abnormal行為的情況比較嚴(yán)重,有可能是員工在上班時(shí)間休息,也有可能是員工在正產(chǎn)工作中摔倒,此時(shí)就需要車間的管理人員立即做出處理。異常行為層級可以有效地避免人力資源浪費(fèi)的問題。
支持向量機(jī)的訓(xùn)練數(shù)據(jù)集為工位內(nèi)單人的拍攝視頻,針對分類的行為僅設(shè)置了站立、坐下和躺下三種,由于拍攝的視頻為60fps,因此每隔30幀選用一張圖片。其中站立行為選用3000張圖片,坐下行為和躺下行為各選用2500張圖片,并選用不同工位員工,各三種不同的行為作為數(shù)據(jù)集。并按照一定的比例將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集、交叉驗(yàn)證集和測試集。
訓(xùn)練和交叉驗(yàn)證過程的損失值和準(zhǔn)確率如圖8所示。將學(xué)習(xí)率設(shè)置為0.0001,Batch Size(每次訓(xùn)練抓取訓(xùn)練樣本數(shù))設(shè)置為32,Epoch設(shè)為100。
圖4 損失值和準(zhǔn)確率
為了方便比較,在使用ST-SVM訓(xùn)練的同時(shí),同時(shí)采用經(jīng)典SVM分類、隨機(jī)森林(RF)和邏輯回歸分類(LR)三種分類方法對現(xiàn)有數(shù)據(jù)進(jìn)行識別對比。
本文采用召回率(R)、準(zhǔn)確率(A)和F1指數(shù)對模型的識別結(jié)果進(jìn)行評價(jià)[14]。計(jì)算式如下:
ST-SVM的測試數(shù)據(jù)集有1600張圖片,其中圖片已全部標(biāo)注,站立行為有600張,坐下和躺下行為各有500張。對測試數(shù)據(jù)集進(jìn)行分類,可以得到三種行為的分類數(shù)據(jù),如表3、表4和表5所示。
表3 站立行為分類數(shù)據(jù)
表4 坐下行為分類數(shù)據(jù)
表5 躺下行為分類數(shù)據(jù)
為了盡可能增加場景的多樣性,選取兩個(gè)工位,各三個(gè)視角的監(jiān)控視頻作為實(shí)驗(yàn)數(shù)據(jù)。同時(shí)為了保證實(shí)驗(yàn)無偏差進(jìn)行,選用正常和非正常工作時(shí)間不同時(shí)段的視頻作為實(shí)驗(yàn)數(shù)據(jù)。而為了保證實(shí)驗(yàn)的正確性,實(shí)驗(yàn)從各個(gè)視頻一共截取了1000張圖片作為數(shù)據(jù)集。
首先使用人工標(biāo)注的手段,根據(jù)表2制定的人員決策規(guī)定,將每一張圖片中的人員行為手動標(biāo)注出來,默認(rèn)人工標(biāo)注的行為準(zhǔn)確率可達(dá)到100%。
將1000張實(shí)驗(yàn)圖片輸入進(jìn)模型進(jìn)行檢測,并以人工標(biāo)注的行為為目標(biāo)進(jìn)行擬合。
針對實(shí)驗(yàn)結(jié)果,使用精確率、召回率和F1指數(shù)對各種行為進(jìn)行評價(jià),評價(jià)指數(shù)如表6所示。
表6 定義行為識別精度
由表6可知,正常工作的精確率可達(dá)到95%以上,而對于比較復(fù)雜的姿態(tài)異常,檢測準(zhǔn)確度只有91%。
對于標(biāo)注的1000張圖片的混淆矩陣如圖6所示??v坐標(biāo)為真實(shí)類別,橫坐標(biāo)為預(yù)測類別,Normal、LieDown1、LieDown2和Abnormal四種行為用0,1,2,3表示。
通過混淆矩陣可以看出,四種決策行為基本上都可以檢測出來,怠工行為1和怠工行為2檢測稍有偏差,有一些誤判;而正常工作和姿態(tài)異常偏差和誤判相比之下并沒有那么嚴(yán)重。
除了本文的方法,常見的行為識別方法還有HOG特征提取+SVM分類[16]以及3D卷積[5]兩種。
應(yīng)用本文挑選的1000張圖片作為數(shù)據(jù)集,對兩種方法進(jìn)行復(fù)現(xiàn),其識別率和運(yùn)行速度與本文方法對比數(shù)據(jù)如表7所示。
表7 各方法平均識別率對比
圖5 測試結(jié)果混淆矩陣
本文提出的行為識別類似基于檢測的兩階段方法,雖然精度比HOG高1%,比3D卷積高4%-5%,但是速度遠(yuǎn)達(dá)不到要求。
使用本文方法的識別結(jié)果序列如圖6所示。
圖6 策略融合后的檢測結(jié)果
本文針對工廠內(nèi)人員的異常行為進(jìn)行分析,首先使用YOLOv5將多人圖像分割為單人圖像,之后使用Blaze Pose獲得人體關(guān)鍵點(diǎn),并用角度識別和分類器識別獲得圖像行為,在制定融合決策之后,可以實(shí)現(xiàn)對工廠內(nèi)多人行為的正常工作、怠工和姿態(tài)異常等行為進(jìn)行識別,但是與3D卷積等一階段的識別方法相比,精度雖然有所提升,可是速度卻達(dá)不到要求。因此,如何在繼續(xù)保證精度的前提下,提升系統(tǒng)的檢測速度,將是下一步的研究方向。