劉逸康 熊新紅,, 林培元 楊晶明 馮 偉
1武漢理工大學(xué)交通與物流工程學(xué)院 武漢 430063 2美利林科技有限公司 黃石 435000 3中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院 深圳 518055
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,進(jìn)出口貿(mào)易正在逐年增加,對(duì)碼頭吞吐能力和裝卸效率的要求也大大提高。岸邊集裝箱起重機(jī)(以下簡(jiǎn)稱岸橋)是港口最大的建設(shè)投資部分,是關(guān)乎港口裝卸效率的關(guān)鍵設(shè)備[1]。在碼頭岸橋生產(chǎn)作業(yè)事故中,有57%以上與人的因素有關(guān)[2],且這種比例有明顯上升的趨勢(shì)。因此,保證岸橋司機(jī)的規(guī)范化操作,避免不規(guī)范操作行為的發(fā)生,對(duì)于提高港口作業(yè)效率具有重要意義。
當(dāng)前,基于司機(jī)行為的安全管理主要通過(guò)事前操作培訓(xùn)、現(xiàn)場(chǎng)巡查、視頻監(jiān)控等方法,干預(yù)并約束工人進(jìn)行安全的生產(chǎn)操作。趙勇等[3]建立岸橋司機(jī)基本動(dòng)作序列和HCR模型提高岸橋司機(jī)的可靠性,進(jìn)而提高生產(chǎn)效率;施笑畏等[4]利用模糊算法構(gòu)建橋吊司機(jī)操作行為規(guī)范庫(kù),為橋吊司機(jī)駕駛員培訓(xùn)提供重要依據(jù);倪麗莎等[5]采用VC嵌入OpenGL技術(shù),設(shè)計(jì)了起重機(jī)安全監(jiān)管信息系統(tǒng),為作業(yè)現(xiàn)場(chǎng)人與物的精細(xì)管理提供依據(jù)。
然而,現(xiàn)場(chǎng)安全巡查通常需要安全員或技術(shù)員長(zhǎng)時(shí)間對(duì)工人作業(yè)行為進(jìn)行觀察,費(fèi)時(shí)費(fèi)力,且觀察區(qū)域有限,不免出現(xiàn)遺漏的情況。此外,雖然視頻監(jiān)控覆蓋區(qū)域較大,但也需要對(duì)視頻進(jìn)行人工判斷。因此,本文提出了一種基于主動(dòng)式人體姿態(tài)識(shí)別的集裝箱起重機(jī)司機(jī)危險(xiǎn)操作預(yù)警方法,能對(duì)司機(jī)生產(chǎn)行為進(jìn)行自動(dòng)識(shí)別,實(shí)時(shí)監(jiān)控作業(yè)安全并給出判斷意見,指導(dǎo)司機(jī)進(jìn)行安全和合規(guī)生產(chǎn)。
人體姿態(tài)估計(jì)[6]方面的研究實(shí)際細(xì)分為2部分,單人姿態(tài)估計(jì)和多人姿態(tài)估計(jì)。人體姿態(tài)估計(jì)較為靜態(tài)概念,在單幀圖像的基礎(chǔ)上對(duì)人體預(yù)設(shè)的各關(guān)節(jié)做預(yù)測(cè),得到1組預(yù)測(cè)的坐標(biāo)點(diǎn)集,最終在原圖中進(jìn)行可視化操作。本文聚焦于單人人體姿態(tài)估計(jì),具體為集裝箱岸橋司機(jī)作業(yè)場(chǎng)景下的單工人作業(yè)姿態(tài)估計(jì),輸入為單幀RGB圖像,喂送進(jìn)姿態(tài)預(yù)測(cè)網(wǎng)絡(luò),基于工人各個(gè)肢體的協(xié)作是否符合標(biāo)準(zhǔn)[7],給出各個(gè)關(guān)節(jié)的預(yù)測(cè)坐標(biāo),再與人工標(biāo)注的真實(shí)坐標(biāo)進(jìn)行比對(duì),計(jì)算損失函數(shù)用以衡量預(yù)測(cè)的準(zhǔn)確度。
當(dāng)前運(yùn)用于岸橋司機(jī)作業(yè)的樣本數(shù)據(jù)集較少,而在新的作業(yè)場(chǎng)景下重新制作一個(gè)新的數(shù)據(jù)集需經(jīng)過(guò)數(shù)據(jù)采集、數(shù)據(jù)清洗處理、數(shù)據(jù)篩選、數(shù)據(jù)標(biāo)注等步驟,這期間每一個(gè)步驟都需要耗費(fèi)大量的人力物力財(cái)力,成本過(guò)于高昂[7]。主動(dòng)式學(xué)習(xí)(Active Learning)很好地解決了這一難題,其致力于研究如何通過(guò)標(biāo)記盡可能少的樣本來(lái)獲得盡可能多的性能提升,契合當(dāng)前岸橋司機(jī)作業(yè)的應(yīng)用場(chǎng)景。
主動(dòng)式學(xué)習(xí)采用基于池(Pool-based)的熵值袋查詢算法(Entropy query-by-bagging)?;诔氐呐袆e方法會(huì)同時(shí)維護(hù)2個(gè)數(shù)據(jù)池,已標(biāo)注池(Labeled Pool)和未標(biāo)注池(Unlabeled Pool)。每次循環(huán)開始都會(huì)從未標(biāo)注池中批量提交一定的數(shù)據(jù)到判別器中,選中最具信息量的數(shù)據(jù)進(jìn)行標(biāo)注,最后加入到已標(biāo)注池中進(jìn)行訓(xùn)練。同時(shí),熵值袋查詢算法的基本思路是使用可獲得標(biāo)記的樣本集合訓(xùn)練一組分類器,以構(gòu)成判別委員會(huì),決定未標(biāo)記池中數(shù)據(jù)的分類,選出最具信息量的數(shù)據(jù)。其中最具信息量的判別依據(jù)是投票熵[8]。
如圖1所示,熵值袋查詢算法先從初始已標(biāo)注池中選取k個(gè)訓(xùn)練集,然后根據(jù)這些訓(xùn)練集訓(xùn)練出k個(gè)分類器,使用這些分類器對(duì)未標(biāo)注池中的每一個(gè)數(shù)據(jù)進(jìn)行分類標(biāo)記,從而每一個(gè)樣本都會(huì)有k個(gè)標(biāo)簽,使用這些標(biāo)簽來(lái)衡量某一樣本的信息熵值[9]。
圖1 熵值袋查詢算法
投票熵為
所有分類器模型的概率值相加,即得到投票熵。當(dāng)所有的分類模型對(duì)樣本所屬于的類別都相同時(shí)HBAG(xi)=0,說(shuō)明此未標(biāo)注的數(shù)據(jù)與已標(biāo)注數(shù)據(jù)池中的數(shù)據(jù)高度相似,將它加入到已標(biāo)注池中加以訓(xùn)練很可能不會(huì)對(duì)模型訓(xùn)練有正向幫助。投票熵HBAG(xi)越大,說(shuō)明已有分類器之間的分歧越大,這類數(shù)據(jù)的不確定性就越大,將它標(biāo)注好加入到已標(biāo)注池內(nèi)進(jìn)入下輪訓(xùn)練則越能幫助模型優(yōu)化。
主動(dòng)式學(xué)習(xí)框架對(duì)于本文的人體姿態(tài)估計(jì)問(wèn)題并非完美契合。作業(yè)場(chǎng)景下的危險(xiǎn)預(yù)警需要第一時(shí)間作出判斷,而運(yùn)行單人體姿態(tài)估計(jì)網(wǎng)絡(luò)的預(yù)測(cè)延遲為17幀左右,如果主動(dòng)式學(xué)習(xí)框架的參數(shù)量過(guò)大,進(jìn)一步大幅增加延遲,工人的生命安全就難以得到保障[10]。為此本文提出了一種基于池的主動(dòng)式學(xué)習(xí)判別框架,節(jié)省了數(shù)據(jù)標(biāo)注的成本,加快人體標(biāo)注框架對(duì)于新場(chǎng)景的適應(yīng)速度[8]。
圖2描述了基于池的主動(dòng)式學(xué)習(xí)框架流程??傮w框架的輸入為RGB圖像,輸出為人體關(guān)鍵節(jié)點(diǎn)的坐標(biāo)集,一共有13個(gè)關(guān)鍵節(jié)點(diǎn),還輸出數(shù)據(jù)為已標(biāo)注數(shù)據(jù)的概率值[11]??傮w一共分為4個(gè)階段。
圖2 基于池的主動(dòng)式學(xué)習(xí)框架
1)未標(biāo)注池和已標(biāo)注池中的數(shù)據(jù)一同輸入到共享編碼器中進(jìn)行特征提取,同時(shí)提取2類數(shù)據(jù)的特征,共享編碼器的處理思想與Open-pose模型中使用VGG的想法類似,將共享特征中提取到的特征進(jìn)行卷積,得到1組不同尺度的特征值。
2)已標(biāo)注數(shù)據(jù)的特征直接進(jìn)入人體姿態(tài)網(wǎng)絡(luò),輸出人體姿態(tài)預(yù)測(cè)結(jié)果(13個(gè)身體關(guān)鍵節(jié)點(diǎn)的坐標(biāo)點(diǎn)集),然后進(jìn)行可視化。
3)經(jīng)過(guò)人體姿態(tài)檢測(cè)網(wǎng)絡(luò)提取進(jìn)一步特征之后,已標(biāo)注數(shù)據(jù)流在經(jīng)過(guò)人體姿態(tài)預(yù)警預(yù)測(cè)模型判定動(dòng)作危險(xiǎn)等級(jí),綠燈為安全,黃燈為警示,紅燈為危險(xiǎn)動(dòng)作。
4)主動(dòng)式判別器的輸入同時(shí)含有未標(biāo)注與已標(biāo)注的數(shù)據(jù)流,輸出所選數(shù)據(jù)是已標(biāo)注數(shù)據(jù)的概率值,概率值越高,說(shuō)明該數(shù)據(jù)與已標(biāo)注數(shù)據(jù)集中的數(shù)據(jù)越相似,這種數(shù)據(jù)對(duì)網(wǎng)絡(luò)模型性能的提升幫助越小,概率越低說(shuō)明模型之前可能沒(méi)有見過(guò)這種信息類別的數(shù)據(jù),對(duì)網(wǎng)絡(luò)性能提升的幫助就會(huì)越明顯。
經(jīng)過(guò)碼頭實(shí)地調(diào)研,基于可探測(cè)性、科學(xué)性的特點(diǎn),將司機(jī)存在不安全行為整理,如未佩戴安全帽、開始作業(yè)前未鳴笛等行為可能會(huì)誘發(fā)危險(xiǎn),但不會(huì)立即對(duì)生產(chǎn)產(chǎn)生危害,故劃分為警示行為。作業(yè)時(shí)單手操作設(shè)備、在作業(yè)平臺(tái)內(nèi)使用手機(jī)、操作時(shí)未面向設(shè)備、操作手柄進(jìn)行塔臂快速回轉(zhuǎn)動(dòng)作等行為都可能立即造成生產(chǎn)事故,故劃分為危險(xiǎn)操作。其余正常工作姿態(tài)都劃分為安全操作,具體分類如表1所示。
表1 不安全作業(yè)行為
危險(xiǎn)等級(jí)預(yù)警指的是在完成人體姿態(tài)預(yù)測(cè)的基礎(chǔ)上,對(duì)姿態(tài)是否可能誘發(fā)危險(xiǎn)進(jìn)行風(fēng)險(xiǎn)等級(jí)判斷。一共分為3個(gè)級(jí)別,0為危險(xiǎn),1為警示,2為安全。如圖3所示,工人的姿態(tài)分別屬于危險(xiǎn)、警示、安全操作。
圖3 操作危險(xiǎn)等級(jí)示意圖
本危險(xiǎn)等級(jí)判斷網(wǎng)絡(luò)的特征提取部分直接使用人體姿態(tài)估計(jì)階段輸出的128維度的特征圖。將特征圖輸入到全連接層,轉(zhuǎn)換為特征向量,之后經(jīng)過(guò)分類網(wǎng)絡(luò)的處理,輸出分類結(jié)果。具體網(wǎng)絡(luò)參數(shù)如表2所示。
表2 危險(xiǎn)等級(jí)判斷網(wǎng)絡(luò)
如表2所示,128×46×46的特征圖輸入到危險(xiǎn)等級(jí)判斷網(wǎng)絡(luò)當(dāng)中,最終輸出一個(gè)3×1×1的特征向量,分別對(duì)應(yīng)著3個(gè)危險(xiǎn)等級(jí)的可能性,將這個(gè)概率值使用Sigmoid函數(shù)處理,映射到0~1之間,便于觀測(cè)計(jì)算。
圖4為危險(xiǎn)等級(jí)判斷系統(tǒng)的運(yùn)行流程圖。使用RealSense采集到作業(yè)工人的圖像后,輸入到共享特征提取器提取基本特征,然后輸入到危險(xiǎn)級(jí)別判斷網(wǎng)絡(luò)進(jìn)行危險(xiǎn)判斷,輸出分類結(jié)果[12]。
圖4 危險(xiǎn)等級(jí)判斷系統(tǒng)運(yùn)行流程圖
具體學(xué)習(xí)參數(shù)如表3所示。由于硬件條件有限,顯卡顯存不夠大,每次輸入到網(wǎng)絡(luò)中的圖像數(shù)量為10張;為了防止學(xué)習(xí)率過(guò)大,導(dǎo)致梯度爆炸,基礎(chǔ)學(xué)習(xí)率為5×10-5;權(quán)重值初始值為5×10-4;權(quán)重值修正初始值為0.01;主動(dòng)式學(xué)習(xí)框架數(shù)據(jù)篩選輪數(shù)共10輪。
表3 實(shí)驗(yàn)參數(shù)
在本文場(chǎng)景下,面向人體姿態(tài)預(yù)測(cè)實(shí)驗(yàn)由3個(gè)主要模塊構(gòu)建,RGB數(shù)據(jù)采集模塊、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模塊、人體姿態(tài)評(píng)估模塊。系統(tǒng)的輸入為RGB三通道數(shù)據(jù),如果傳入PNG格式的數(shù)據(jù),需要將其額外的透明度通道進(jìn)行處理,最終轉(zhuǎn)碼成RGB格式。系統(tǒng)輸出為預(yù)測(cè)體姿態(tài)與標(biāo)準(zhǔn)姿態(tài)庫(kù)直接的匹配損失值。人體姿態(tài)評(píng)估模塊工作時(shí),可得網(wǎng)絡(luò)模型給出的最佳人體姿態(tài),首先判斷其合法性,然后根據(jù)制作的標(biāo)準(zhǔn)人體姿態(tài)庫(kù)以及損失函數(shù),計(jì)算評(píng)估損失,損失值越小,說(shuō)明預(yù)測(cè)值與真值之間的差距越小,預(yù)測(cè)結(jié)果越準(zhǔn)確。
本實(shí)驗(yàn)所有的網(wǎng)絡(luò)訓(xùn)練以及數(shù)據(jù)采集處理都是基于Python語(yǔ)言。模型的搭建與訓(xùn)練使用Pytorch框架,實(shí)驗(yàn)環(huán)境均在Ubuntu 16.04的基礎(chǔ)上建立1個(gè)獨(dú)立的Docker容器[13]。
輸入設(shè)備采用的攝像頭為RealSense相機(jī)的RGB部分,真實(shí)場(chǎng)景下的應(yīng)用使用的CPU為Intel CORE i5-8600,GPU為NVIDIA GTX 1050Ti,顯存為4 G,模型平均估計(jì)時(shí)間為15.3 fps。實(shí)驗(yàn)使用的拍攝桿長(zhǎng)度為1.2 m(見圖5a),側(cè)向面對(duì)岸橋司機(jī)(見圖5b)。關(guān)于攝像頭的自身參數(shù),RealSense擁有2000萬(wàn)像素的RGB攝像頭,拍攝最大實(shí)時(shí)幀率為90 fps,最大幀率下的分辨率可達(dá)848×480,在30 fps的速度下清晰度可達(dá)2 000萬(wàn)像素,焦距在3.1 mm以下,接口為USB 3.0。
圖5 拍攝示意圖
利用Microsoft COCO數(shù)據(jù)集與碼頭內(nèi)采集的工人作業(yè)視頻資料作為擴(kuò)充訓(xùn)練數(shù)據(jù)集進(jìn)行主動(dòng)式人體姿態(tài)識(shí)別模型訓(xùn)練。
圖6為在COCO擴(kuò)充數(shù)據(jù)集上的人體姿態(tài)精確度實(shí)驗(yàn)結(jié)果,其中橫軸表示訓(xùn)練輪數(shù),縱軸表示準(zhǔn)確率??梢园l(fā)現(xiàn)在0~25輪(Epoch)訓(xùn)練過(guò)程中,識(shí)別精度有較大幅度的增長(zhǎng);在25~150輪,精確度開始緩慢上升,期間有一定波動(dòng),幅度在可接受范圍內(nèi);在150~200輪時(shí),識(shí)別精度開始趨于平穩(wěn)。數(shù)據(jù)集劃分出80%作為訓(xùn)練數(shù)據(jù)集,20%作為測(cè)試數(shù)據(jù)集[14]。
圖6 COCO擴(kuò)充數(shù)據(jù)集上的精確度實(shí)驗(yàn)結(jié)果
由圖6可知,人體姿態(tài)預(yù)測(cè)模塊在經(jīng)過(guò)訓(xùn)練之后,最終的檢測(cè)準(zhǔn)確率保持在80%左右浮動(dòng)。因此,如果一種主動(dòng)式學(xué)習(xí)策略能夠使最終的準(zhǔn)確率達(dá)到80%,說(shuō)明這種策略有存在的意義,因?yàn)槠湓诠?jié)省大量標(biāo)注成本的同時(shí),訓(xùn)練出了同樣性能的網(wǎng)絡(luò)。
圖7為模型訓(xùn)練200輪之后的背身狀態(tài)人體姿態(tài)預(yù)測(cè)結(jié)果??梢园l(fā)現(xiàn)這種情形下光線狀態(tài)良好,人體姿態(tài)沒(méi)有遮擋,所以模型的預(yù)測(cè)精度很高,幾乎所有的人體關(guān)鍵節(jié)點(diǎn)都附著在了正確的位置上。
圖7 人體姿態(tài)識(shí)別
如圖8所示為危險(xiǎn)分級(jí)實(shí)驗(yàn)可視化的結(jié)果,圖8a中司機(jī)作業(yè)時(shí)未面向前方,十分危險(xiǎn),網(wǎng)絡(luò)模型將其分類為危險(xiǎn)操作;圖8b中司機(jī)作業(yè)時(shí)未佩戴安全帽,但不至于立刻發(fā)生險(xiǎn)情,網(wǎng)絡(luò)模型將其分類為警示操作。圖8c中為正常操作,網(wǎng)絡(luò)模型將其分類為安全。
圖8 操作危險(xiǎn)分級(jí)實(shí)驗(yàn)可視化
本文提出了一種適用于人體姿態(tài)估計(jì)的主動(dòng)式判別器,能對(duì)數(shù)據(jù)信息量進(jìn)行有效判別,從而找到未標(biāo)注池?cái)?shù)據(jù)中與已標(biāo)注池?cái)?shù)據(jù)最不相似的數(shù)據(jù)進(jìn)行標(biāo)注;接著提出了一個(gè)輕量級(jí)的人體姿態(tài)估計(jì)網(wǎng)絡(luò),能對(duì)岸橋司機(jī)作業(yè)場(chǎng)景的工人人體關(guān)鍵節(jié)點(diǎn)進(jìn)行識(shí)別檢測(cè),檢測(cè)準(zhǔn)確率達(dá)到80%以上;最后依據(jù)主動(dòng)式人體姿勢(shì)估計(jì)判別器設(shè)計(jì)了危險(xiǎn)等級(jí)判斷模型,在人體姿態(tài)預(yù)測(cè)的基礎(chǔ)上對(duì)司機(jī)作業(yè)姿態(tài)危險(xiǎn)性進(jìn)行評(píng)估分級(jí)。可以發(fā)現(xiàn),在光照條件良好的情況下,人體關(guān)鍵節(jié)點(diǎn)預(yù)測(cè)和操作危險(xiǎn)等級(jí)分類十分精準(zhǔn),實(shí)時(shí)監(jiān)控作業(yè)安全,本操作預(yù)警方法能指導(dǎo)司機(jī)進(jìn)行合規(guī)生產(chǎn)操作,對(duì)提高港口生產(chǎn)效率,保障作業(yè)安全具有積極意義。