吳衛(wèi)紅
(衢州市宇創(chuàng)數(shù)碼科技有限公司 浙江省衢州市 324002)
在監(jiān)控領(lǐng)域,安全帽作為一種有效的防護工具,已應用于各類生產(chǎn)現(xiàn)場,但由于監(jiān)督和審核不到位的原因,不戴安全帽造成的事故時有發(fā)生。因此,實現(xiàn)頭盔佩戴檢測對于保護生產(chǎn)現(xiàn)場員工的生命安全具有重要意義。
近年來,目標檢測算法已成為計算機視覺研究領(lǐng)域的一個重要研究熱點。基于深度學習的目標檢測方法有兩種類型:一種是基于候選區(qū)域的二階段目標檢測算法如Faster RCNN 等[1],首先生成候選區(qū)域,然后對候選區(qū)域進行分類和回歸操作;另一個是基于一階段的方法,如YOLO v3[2]和SSD[3],它只使用一個CNN 網(wǎng)絡直接預測不同目標的位置,與Faster RCNN 算法相比,YOLO 可以實現(xiàn)實時檢測速度,但精度相對較低。
張等[4]使用 Faster RCNN 對安全帽進行識別,獲得了較高精度,但在實時目標檢測上,由于速度較慢,并不十分適合,為了能良好地應用在實時檢測上,王等[5]改進了GIOU 計算方法,通過結(jié)合YOLOv3 對安全帽進行檢測,在原來基礎上提高了2.07%的精度。施等[6]在YOLOv3 中添加特征金字塔進行多尺度的特征提取,獲得不同尺度的特征圖,以此實現(xiàn)安全帽的檢測,取得了很好的結(jié)果, Huang 等[7]針對安全頭盔的檢測,在YOLO v3 上進行改進,與原始算法相比,F(xiàn)PS 增加了3f/s。
深度殘差網(wǎng)絡(ResNet)[8]是何凱明團隊提出的一種卷積神經(jīng)網(wǎng)絡,該網(wǎng)絡贏得了當年圖像分類的第1 名。ResNet 使用了殘差單元,不但減少了參數(shù)數(shù)量,還增加了CNN 學習特征的能力,參數(shù)少,層數(shù)深和分類效果優(yōu)秀等特點使得ResNet 成為常被使用的網(wǎng)絡之一。
注意力機制可以將模型的不同部分賦予不同的權(quán)重,從而提取出更多關(guān)鍵的和更具區(qū)分性的信息,使模型具有更高的精度,它將空間或通道重要性引入由卷積神經(jīng)網(wǎng)絡 (CNN) 提取的特征圖,這有助于關(guān)注感興趣目標的特征屬性。因此,應用注意力機制有助于通過抑制不必要的細節(jié)和增強有用的特征來提高 CNN 的表示能力。
Srinivas 等[9]提出了一種將自注意力機制融入ResNet50 的方法,并將其命名為BotNet50,在一些公開數(shù)據(jù)集的圖像分類上取得很好的效果,但此法還并未在安全帽檢測上有過應用。因此本文基于目前表現(xiàn)較好的YOLO v3 算法,采用BotNet50 進行特征提取,同時在構(gòu)建的安全帽數(shù)據(jù)集上進行訓練,所獲得的模型能有效地進行檢測和識別。
YOLO 將區(qū)域建議網(wǎng)絡(RPN)分支和分類階段劃分為一個網(wǎng)絡,具有更簡潔的體系結(jié)構(gòu)、高計算速度和更好的計算能力,使其成為實時檢測的真正意義。YOLO 模型直接使用單個前饋網(wǎng)絡預測邊界框及其相應的類,并與之前基于在兩階段中執(zhí)行檢測的檢測器進行比較。YOLOv2 是YOLO 的第二個版本,其目的是顯著提高精度,同時使其更快。引入YOLOv2 的檢測錨的想法受到了faster rcnn 的啟發(fā)。錨提高檢測精度,簡化問題,簡化網(wǎng)絡的學習過程。同時,將批歸一化添加到卷積層中,提高了精度。與YOLO 相比,YOLOv2 顯著改善了定位精度和召回率。YOLOv3 成為了在YOLO和YOLOv2 上更為先進的目標檢測版本。YOLOv3 使用多標簽分類,對每個標簽使用二進制交叉熵損失,而不是在計算分類損失時使用均方誤差,YOLOv3 預測了三個不同尺度上的物體,使用邏輯回歸每個邊界框的分數(shù)。
表1:BotNet50 網(wǎng)絡結(jié)構(gòu)
表2:設備信息
表3:不同網(wǎng)絡下的準確率
本文使用了一種基于YOLOv3-BotNet50 的檢測模型, 用ResNet50 替換了Darknet53 模型,并將ResNet50 中最后三個瓶頸模塊用全局自注意力替換空間卷積,形成了新的ResNet50-attention模型,具體的如表1 所示。
從表1 中,可以得知,修改后的ResNet50 僅僅使用MHSA 替換卷積層,一個ResNet50 通常包括[c2,c3,c4,c5]階段,它們對應了的步長為[4,8,16,32],并由多個瓶頸塊與殘余的連接器組成。MHAS[10]由Vaswani 等提出,由圖1 表示。
圖1:MHSA 結(jié)構(gòu)
如圖1 所示,自注意力機制在二維特征圖上執(zhí)行, 相對的位置編碼高度和寬度分別由Rh 和Rw 表示;注意力對數(shù)(attention logits)表示為qkT+qrT,其中,q,r,t分別表示查詢(query),鍵值(key),位置編碼(position encodings),⊕和?表示矩陣中元素的加法和乘法,1×1 表示進行逐點卷積(pointwise convolution);H,W,d 分別表示高度,寬度和深度。
本文使用自制的實際場景下的數(shù)據(jù)集,利用監(jiān)控設備處采集圖像,共計432 張銹蝕圖像,按3:1 的比例劃分為訓練集和測試集,并利用LabelImg 標注軟件對數(shù)據(jù)集進行標定,然后按照 COCO 格式建立標準的數(shù)據(jù)集,在實驗時,隨機劃分多次取平均值。使用的評價指標采用COCO 數(shù)據(jù)集的評價指標,即平均準確率(Average Precision,AP)。
本文實驗使用的開發(fā)平臺為Ubuntu 16.0,平臺配置見表2 所列。
實驗中的Batchsize 設置為1。梯度的優(yōu)化算法為Adagrad,初始的學習率為0.005,之后在訓練到40000 次時學習率衰減為0.001。實驗中的測試結(jié)果如表3 所示。
從表3 中可以發(fā)現(xiàn),本文使用的YOLOv3-BotNet50 具有良好的性能,相比與faster rcnn,在準確率并未降低太多時就降低了約80%的檢測時間,最終也達到了96.2%的準確率,能很好地用于實際場景中的安全帽檢測。
圖2 展示了實際場景中的效果,從中可以發(fā)現(xiàn),盡管出現(xiàn)了重疊區(qū)域,但仍然能夠較好地被檢測出來。
圖2:檢測效果圖
本文針對變電站安全帽檢測場景,提出一種改進后的YOLOv3檢測算法,該方法通過結(jié)合yolov3 本身的特性,能夠滿足多尺度場景下的目標檢測,引入注意力機制,從而使得在重要位置的特征提取更加有效,使用從正常環(huán)境條件下獲得的安全帽數(shù)據(jù)集能夠最大程度的滿足度學習的測試與訓練場景的相對關(guān)系,經(jīng)過實驗發(fā)現(xiàn),改進后的模型在識別效果上超過了原始的模型。在以后將使用更加優(yōu)秀的網(wǎng)絡結(jié)構(gòu),解決其他復雜場景中的安全帽檢測。