國網浙江省電力有限公司舟山供電公司 顧文濤 俞興偉 浙江華云信息科技有限公司 李 毅 邱 臻 卓 一
杭州馬太能源互聯網技術有限公司 董 毅
安全帽佩戴監測是常見的變電站施工要求,但是對于研究這個問題的應用圖像處理技術進行研究卻很少,大多數研究都集中在監控摩托車手是否佩戴安全帽。Waranusast等人開發自動檢測摩托車車手的系統,該系統能夠確定摩托車手是否佩戴安全帽,這個系統通過提取運動對象并訓練K-最近鄰(KNN)分類器進行檢測[1]。[2]提出了用于一種變電站內安全帽智能預警系統,該系統采用紅外傳感器進行人體檢測,適用于一次設備入口處的安全帽佩戴情況檢測。[3]提出一種基于機器學習的DSP圖像處理的變電站實用型安全帽佩戴檢測方法。該方法為了減少監控錄像的檢測范圍,采用ViBe背景建模算法分割在前景框架中的運動對象,之后提取行人的梯度直方圖(HOG)特征,使用支持向量機(SVM)來分類行人,最后利用顏色特征來確定人員是否佩戴安全頭盔與否。
本文針對這一需求,提出一種完全基于深度學習的施工現場施工人員安全帽佩戴情況的監控方法,可自動對施工現場施工人員的安全帽佩戴情況進行監控。首先采用深度學習中的目標檢測算法進行行人檢測,然后對檢測的行人的頭部使用深度學習進行分類,判斷其是否佩戴安全帽。
將一臺攝像機置于變電站戶外作業區域內與一臺位于后端的工控機相連,攝像機安裝于高于地面8~10m的立桿上,調整其視角范圍覆蓋整個現場作業區域,攝像機后端工控機通過網絡相通信,工控機根據獲得的圖像和數據信息對作業現場進行監控,對施工人員佩戴的各種安全帽數量進行統計(圖1)。工控機進行圖像處理時,首先通過基于深度學習的行人檢測算法得到代表人的運動目標,然后通過檢測行人的上1/3部分進行安全帽的檢測,安全帽的檢測同樣采用的是基于深度學習的方法,使用遷移學習對行人的上1/3部分進行檢測。如此記錄每一幀的圖像,并將檢測到的施工人員是否佩戴安全帽的情況存入系統日志。
行人檢測的算法采用SSD(Single Shot MultiBox Detector)目標檢測算法[4]。該算法將邊界框的輸出空間離散為不同高寬比的一組默認框以及對每個特征圖位置進行縮放。在預測時,該網絡會對每個默認框中每個對象類別的存在生成分數,并產生對框的調整以更好地匹配對象形狀。另外,該網絡組合了來自不同分辨率的多個特征圖的預測,以自然地處理各種尺寸的對象(圖2)。SSD相對于需要物體候選的方法而言是簡單的,因為它完全消除了候選生成以及后續像素或特征采樣階段,并將所有計算封裝在單個網絡中,這使得SSD易于訓練并直接集成到需要檢測組件的系統中。
PASCAL VOC、COCO和ILSVRC數據集的 實驗結果證實,SSD相對于利用額外的物體候選步驟的方法具有競爭性的準確度,并且要快得多,同時為訓練和實際使用提供了統一的框架。在300×300的圖片輸入中,SSD使用Nvidia Titan X在VOC2008的測試數據集中獲得了74.3%mAP,速度為59FPS,在對500×500的圖片輸入中獲得了76.9%mAP,這比目前相對先進的Faster R-CNN模型更優秀。與其他的單級方法相比即使使用較小的輸入圖片尺寸,SSD也具有更好的準確度。所以SSD是一個綜合檢測準確度以及檢測速度的較好的目標檢測算法,用它來進行行人檢測可達到一個比較好的效果。
得到代表人的檢測目標后,為避免冗余信息的干擾,考慮到佩戴安全帽的部位為頭部、即代表人靠頂端的部分,所以選擇在該部分檢測安全帽。實驗表明,取行人目標框的上1/3部分區域較為合適,能最大程度的減少計算量。檢測安全帽使用的是深度學習中的遷移學習方法,遷移學習就是把已學訓練好的模型參數遷移到新的模型來幫助新模型訓練數據集[5]。
遷移學習的研究來源于一個觀測:人類可將以前的學到的知識應用于解決新的問題,更快的解決問題或取得更好的效果。遷移學習被賦予這樣一個任務:從以前的任務當中去學習知識或經驗,并應用于新的任務當中。換句話說,遷移學習目的是從一個或多個源任務中抽取知識、經驗,然后應用于一個目標領域當中去。在這里所使用的用于安全帽檢測的網絡Inception v3最初是在ImageNet上訓練的[6]。ImageNet數據集包含了大約100萬張自然圖像和1000個標簽/分類。相對而言,有標注的安全帽數據集僅有8000張圖像和2個標簽/分類。因此,安全帽數據集不足以用來訓練Inception v3這樣復雜的網絡,所以使用了來自根據ImageNet訓練的Inception v3網絡的權重。我們對所有的層都進行了微調,其原本的分類層classifier可以輸出有1000個類別的預測,將其替換成了一個二元分類層(圖3)。
為了評估所提出的方法的性能,對變電站的實時監控視頻進行安全帽佩戴檢測實驗,中間結果可以描述如下。
選取高速攝像機獲取的某一段施工現場的視頻作為研究對象進行實驗。首先采用行人檢測的方法將圖片中的行人都檢測出來(圖4),將行人都框出來了。獲取行人的框后,選取行人框的上1/3位置作為待檢測的頭部區域(圖5)。緊接著將該頭部區域作為輸入數據輸入之前訓練好的遷移網絡,網絡分別輸出為帶頭盔和不帶頭盔的概率,當預測帶頭盔的概率大于0.7時,認為此時該行人佩戴了頭盔,否則認為未佩戴頭盔,此時系統發出警告。
對實錄某道路施工現場的一段長15分鐘的視頻進行算法驗證,對視頻中施工人員是否佩戴安全帽的情況的檢測準確率達到90%以上。根據結果可知,該方法可以實現檢測施工人員佩戴安全帽情況的目的,且算法簡單有效,并且相對于使用背景建模的方法來說,背景的變化對檢測沒有影響,同時對于使用安全帽顏色來判斷是否佩戴安全帽的檢測方法來說,使用深度學習來檢測的效果明顯更好,因為顏色檢測的方法對于光照強弱、安全帽本身的顏色以及環境等都比較敏感,容易出現誤分類,而使用神經網絡的方法可以很好的解決該問題,所以它具有更好的魯棒性。但同時,對于工人密集通過以及部分遮擋的情況時,則并不能很好的檢測到行人,存在一些干擾,這也將是后續研究中需要解決的問題。