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