王成龍, 趙 倩, 郭 彤
(上海電力大學(xué) 電子與信息工程學(xué)院, 上海 200090)
在我國,大量的施工工人在施工場所進行長時間的勞動工作。由于施工工人自身安全意識薄弱,應(yīng)急處置能力亟待提高[1],在施工場所難免出現(xiàn)意外事故,其中施工工人頭部受傷是造成傷亡的主要原因之一。安全帽能給施工工人一定程度的安全防護,是施工現(xiàn)場必不可少的防護工具。盡管相關(guān)企業(yè)三令五申要求施工人員增強安全意識,及時佩戴安全帽,但由于安全意識不強,安全帽佩戴不嚴格,安全事故頻頻發(fā)生,所以必須采取監(jiān)督措施?,F(xiàn)實情況中,人工監(jiān)督費時費力,不僅造成人力資源的浪費,而且由于場景多變及檢測人員自身原因等因素很容易造成誤檢和漏檢[2]。隨著計算機技術(shù)、機器視覺和模式識別技術(shù)的發(fā)展,安全帽佩戴自動監(jiān)測及預(yù)警系統(tǒng)的研究成為熱點。
安全帽檢測作為目標檢測的一種,對于安全生產(chǎn)有著重要的意義和應(yīng)用價值,目前國內(nèi)外學(xué)者已經(jīng)做了大量的工作。杜思遠[3]在背景差分法提取的前景目標基礎(chǔ)上,根據(jù)人體長寬比特點,采用最小矩形圖像分割法對前景目標區(qū)域進行分割,實現(xiàn)作業(yè)人員安全帽佩戴狀態(tài)區(qū)域的初步定位,然后利用方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征的可變形部件模型完成安全帽佩戴狀態(tài)識別判斷。PARK M W等人[4]首先通過HOG特征提取來檢測人體,接著采用顏色直方圖識別安全帽。劉曉慧等人[5]采用膚色檢測的方法定位到人臉區(qū)域,然后提取臉部以上的Hu矩特征向量,最后利用svm完成對安全帽的識別。趙震[6]提出基于OpenCV的圖形圖像處理技術(shù),在人體識別的基礎(chǔ)上,辨別出施工人員安全帽配帶情況,在一定程度上降低安全隱患。但基于Haar級聯(lián)分類器訓(xùn)練的安全帽檢測算法精度低且受環(huán)境影響明顯,難以區(qū)分安全帽是否已經(jīng)佩戴。李琪瑞[7]提出了基于人體識別的安全帽視頻檢測系統(tǒng)的理論和算法,包括基于背景減除法的運動目標檢測以及背景減除法的特點與適用場景,研究了如何定位頭部區(qū)域的方法以及安全帽顏色特征的計算,但該算法的精度過于依賴人體識別的準確性,施工作業(yè)現(xiàn)場環(huán)境復(fù)雜,且設(shè)備繁多,人體過多被設(shè)備遮擋住,因此人體識別的準確度會低于通常狀態(tài)??傊?以上算法的實現(xiàn)效果可以在一定程度上滿足施工場地安全帽檢測的要求,但存在檢測精度較低、泛化能力差等問題,且這些方法的共同特點是基于人為設(shè)計選取的底層特征,采用傳統(tǒng)的機器學(xué)習(xí)算法進行識別分類,要求算法設(shè)計者有較高的圖像知識和豐富的實驗經(jīng)驗,不但費時費力,而且泛化能力較差[8]。
近年來,隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,深度學(xué)習(xí)技術(shù)已經(jīng)廣受學(xué)術(shù)界和工業(yè)界的關(guān)注[9],出現(xiàn)了很多基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)的安全帽檢測算法,例如基于R-CNN等局部候選框分類算法或者類似于YOLO等基于端到端的目標檢測算法,由端到端模式的算法相對于前一種基于局部候選框分類的模式,在犧牲部分精度的基礎(chǔ)上實現(xiàn)實時檢測速度的提高。
從目前的研究進展來看,想要找到一種能夠在無論何種場景下都能自動識別安全帽佩戴與否的算法比較困難。上班期間,在廠區(qū)入口處集中進入的人員較多,要求安全帽檢測系統(tǒng)準確且速度要快;而施工現(xiàn)場人員姿勢不統(tǒng)一,或站立或蹲著亦或互相遮擋,給檢測增加了難度。針對以上問題,本文提出一種采用面部特征與神經(jīng)網(wǎng)絡(luò)相結(jié)合的算法,在廠區(qū)入口處將考勤和安全帽檢測功能結(jié)合在一起,利用工人在進入廠門口時正好是正面照的特點,基于面部特征進行臉部定位,再利用VGG深度卷積神經(jīng)網(wǎng)絡(luò)進行安全帽佩戴檢測。
人臉檢測的目標是自動檢測人臉位置,并輸出人臉框在圖像中的坐標。人臉檢測與識別技術(shù)在考勤、智能人機交互、固定場所出入等眾多應(yīng)用領(lǐng)域中具有重要的應(yīng)用價值,目前已成為計算機技術(shù)應(yīng)用與模式識別領(lǐng)域中的一大研究熱點。
本文采用多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(Multi-task Convolutional Neural Network,MTCNN)算法對人臉進行檢測和關(guān)鍵點的粗略定位[10]。MTCNN算法穩(wěn)定,在不同光照條件、人臉較大幅度偏轉(zhuǎn)、俯仰以及部分遮擋的情況下,依然能夠準確檢測到人臉并實現(xiàn)特征點的精確定位。該算法主要有3個階段組成:第1階段(P-Net),利用淺層的CNN網(wǎng)絡(luò)快速產(chǎn)生候選窗體;第2階段(R-Net),通過更復(fù)雜的CNN網(wǎng)絡(luò)精煉選擇丟棄大量的候選窗體,并根據(jù)得分高低去除重疊窗體;第3階段(O-Net),再次通過CNN網(wǎng)絡(luò)實現(xiàn)候選窗體精煉,最后保留最終候選窗口并顯示5個面部關(guān)鍵點。算法3階段結(jié)構(gòu)相似,P-Net和R-Net在產(chǎn)生候選框與初步篩選時只通過2個3×3卷積層,最后在O-Net候選框精煉時通過3個3×3卷積層。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)
在人臉檢測完成后進行頭部安全帽定位。本文設(shè)計算法不僅檢測安全帽,而且要檢測安全帽是否佩戴。如果單獨檢測安全帽,無法辨別安全帽是否已經(jīng)佩戴(比如安全帽只是出現(xiàn)在施工工人手中),就不能避免基于現(xiàn)象產(chǎn)生的誤檢,因此先檢測人臉矩形區(qū)域,根據(jù)矩形區(qū)域計算人臉長度,然后按照安全帽工業(yè)標準尺寸與人臉檢測區(qū)域按比例擴大重新定義選取,進行后續(xù)安全帽佩戴檢測處理。
VGGNet是一種典型的圖像分類網(wǎng)絡(luò),是由牛津大學(xué)計算機視覺組(Visual Geometry Group)和Google DeepMind公司研究工作人員聯(lián)合開發(fā)的深度CNN。其主要貢獻是展示出網(wǎng)絡(luò)的深度,即算法優(yōu)良性能的關(guān)鍵部分,并探索了網(wǎng)絡(luò)深度與網(wǎng)絡(luò)性能之間的關(guān)系。較常用的有VGG16(13層conv+3層FC)和VGG19(16層conv+3層FC)。其中,VGG16網(wǎng)絡(luò)更簡單,應(yīng)用最廣泛。VGGNet可以看成是加深版的AlexNet,但不同的是VGGnet中使用的都是小尺寸的卷積核,大小都是3×3 ;池化層采用統(tǒng)一的2×2的最大值池化,步長為2,通過不斷加深網(wǎng)絡(luò)結(jié)構(gòu)提高性能[11]。
VGGNet中使用幾個小濾波器卷積層的組合比一個大濾波器卷積層得到的效果更好。2個3×3的卷積核與1個5×5的卷積核所獲得的感受野相同,而3個3×3卷積核和1個7×7的卷積核所獲得的感受野相同。雖然使用小的卷積核時,需要的層數(shù)會更多,但3×3涉及的學(xué)習(xí)參數(shù)更少,層數(shù)增多可以帶來更多的網(wǎng)絡(luò)結(jié)構(gòu),引入更多的非線性因素,從而使網(wǎng)絡(luò)對特征的學(xué)習(xí)能力更強,最終使決策函數(shù)的判別力更強[11],VGGNet網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 VGG網(wǎng)絡(luò)結(jié)構(gòu)
安全帽檢測算法流程如圖3所示。 該算法可以將動態(tài)視頻數(shù)據(jù)轉(zhuǎn)化為靜態(tài)檢測,檢測效果良好,檢測精度大幅度提高,有效減少參數(shù)過多、內(nèi)存占用過大等問題,具有較強的實際利用價值。
圖3 安全帽檢測算法流程
實驗硬件環(huán)境為Ubuntu16.04,Inter 酷睿i5-8300H四核2.3GHz,8GB RAM,NVIDIA RTX 2080ti。
本文采用的數(shù)據(jù)集來自實際工人場景圖片和網(wǎng)絡(luò)收集圖片,將圖片分為佩戴安全帽與未佩戴安全帽兩類,確立數(shù)據(jù)集后通過仿射變換(旋轉(zhuǎn)、加入噪聲等)來擴大樣本數(shù),最終生成4 207張可用圖片。將數(shù)據(jù)集按照9∶1的比例分為訓(xùn)練集與測試集,模型分別訓(xùn)練測試3次,準確率取3次平均值。
在圖片預(yù)處理過程中,首先,對圖片進行尺寸處理,尺寸大小選擇為100×100,輸入VGG網(wǎng)絡(luò),訓(xùn)練預(yù)測模型;其次,設(shè)置圖片標簽用以分類處理;最后,對算法的準確率、測試速度及模型的魯棒性進行評估,并測試算法對現(xiàn)場實時采集圖像識別的效果。圖4為部分樣本數(shù)據(jù)圖片。
圖4 部分樣本數(shù)據(jù)
實驗參考VGG官網(wǎng)提供的初始參數(shù),并對實驗參數(shù)進行多次微調(diào),通過測試使訓(xùn)練模型達到網(wǎng)絡(luò)檢測效果最佳。實驗參數(shù)設(shè)置如表1所示。
表1 網(wǎng)絡(luò)參數(shù)
算法檢測過程中,結(jié)合MTCNN進行特征提取,首先定位檢測場景中的人臉及關(guān)鍵點,同時按照比例對臉部檢測框進行擴大框選,定位安全帽位置,以便后續(xù)進行安全帽檢測。MTCNN檢測當(dāng)前場景生成5個關(guān)鍵點坐標分別為 (245,168),(172,118),(120,82),(84,56),(58,38),人臉關(guān)鍵點檢測及擴大框選流程如圖5所示。
圖5 人臉關(guān)鍵點檢測及擴大框選流程
VGG網(wǎng)絡(luò)參數(shù)在訓(xùn)練初期隨著迭代次數(shù)的增加,損失下降速度較快,后期損失下降速度變慢并逐漸趨于平穩(wěn)。對訓(xùn)練模型進行測試,3次測試結(jié)果如表2所示。
表2 安全帽佩戴測試結(jié)果
由表2可知,測試結(jié)果良好,網(wǎng)絡(luò)預(yù)測準確率較高。對被檢測人員進行了面部檢測以及擴大框選處理后輸入已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型中進行安全帽佩戴識別。實時檢測效果如圖6所示。
圖6 實時檢測效果
通過圖6中檢測效果可以看出,得出了正確的識別結(jié)果。
實驗過程中MTCNN 3部分P-Net,R-Net,O-Net模型所需儲存空間分別為56 kB,429 kB,1.52 MB,安全帽檢測模型97 MB,總計占用內(nèi)存空間99 MB。實驗采用文獻[12]中的YOLOv3和文獻[13]中的Faster rcnn目標檢測算法與本文提出的算法進行對比,以模型體積(Size)和每秒識別的幀數(shù)(FPS)作為評價標準。測試結(jié)果如表3所示。
表3 測試結(jié)果
由表3可以看出,本文提出的算法模型更小,檢測幀率更高,更加適合實際檢測場景。實驗過程中,通過與文獻[6]中采用OpenCV級聯(lián)分類器檢測算法進行對比發(fā)現(xiàn),本文提出的算法優(yōu)點比較明顯。OpenCV級聯(lián)分類器訓(xùn)練網(wǎng)絡(luò)檢測時只針對安全帽,無法辨別安全帽是否已經(jīng)佩戴,若安全帽只是出現(xiàn)在施工工人手中,基于此類算法便會出現(xiàn)誤檢現(xiàn)象,而本文提出的算法將面部特征與安全帽特征聯(lián)合進行檢測,有效避免此類情況的發(fā)生,使用 MTCNN進行面部信息采集,準確率高,結(jié)合神經(jīng)網(wǎng)絡(luò)進行安全帽檢測效果良好。同時,通過OpenCV級聯(lián)分類器進行訓(xùn)練難以附加施工現(xiàn)場所需的其他功能,比如身份信息、疲勞檢測、性別等,而本文算法充分與考勤工作系統(tǒng)相結(jié)合,實現(xiàn)系統(tǒng)功能豐富的同時增強工人工作的安全性,更符合實際環(huán)境需求。
本文在人臉檢測的基礎(chǔ)上提出了安全帽自動檢測算法,得出如下結(jié)論。
(1) 實驗使用tensorflow與keras進行VGG神經(jīng)網(wǎng)絡(luò)搭建。對采集到的圖片進行數(shù)據(jù)處理與數(shù)據(jù)增強,建立數(shù)據(jù)集進行訓(xùn)練與測試,檢測模型占用內(nèi)存小,識別準確率高,所以可以有效對施工人員進行安全帽檢測,改善施工現(xiàn)場安全狀況,給予施工人員更多的安全保障。
(2) 結(jié)合面部特征進行檢測可以實時準確地對視頻中出現(xiàn)的工作人員進行安全帽檢測,并確定人員信息,在實際應(yīng)用中具有可行性,同時可以在識別系統(tǒng)中添加多重特征輔助定位、多人檢測、疲勞檢測、工人身份信息等功能,將更有利于保障施工工人的人身安全,給施工工人提供有序的工作環(huán)境。