薛雅麗,向心,楊皓文,孫逸凡
(南京航空航天大學,江蘇 南京 210016)
在油庫公路付油作業中,由于多倉油罐車具有多個罐裝接口,尤其現在大量使用的底部裝車方式,底部罐裝接口都集中在一起。操作人員將下裝鶴管接到底部罐裝接口上時,一旦疏忽,極易接錯接口。這不但會造成配送數量錯誤,也極易發生混油、冒頂等重大事故。人工智能技術的運用有助于提高油庫公路付油作業的智能化水平,減少人工出錯。應用深度學習技術的目標檢測算法[1],通過大量學習底部罐裝接口及鶴管編號[2]特征,能更好地應對光照、遮擋等復雜環境,在不同油庫作業時有更優越的性能表現和泛化能力。
為解決油庫公路付油作業中操作的人工隱患,本文在油庫付油主系統中引入基于改進YOLOv3[3]的接口鶴管對接情況檢測子系統。主系統通過UDP傳輸協議與目標檢測子系統通信,控制子系統運行并獲取檢測結果,實時判斷鶴管與底部罐裝接口的對接情況。
YOLOv3是基于回歸預測的一種端到端快速目標檢測算法,其檢測流程是基于卷積神經網絡從圖像中提取一定尺度的特征圖,然后將圖像分成131×3個小方格,其中待檢測對象的中心總會落在某個小方格中,因此每個小方格都需要預測中心點落在該方格的物體,并基于多尺度的錨框預測目標邊框。YOLOv3基于非極大值抑制來避免多個方格同時響應同一物體,NMS非極大值抑制篩選出置信度最高的目標框,得到其他目標框與該目標框的交并比(IoU)。交并比可以通過兩個候選框相交的面積除以兩個候選框合并后的面積求得。當候選框完全不重合,其值為0;完全重合則為1。當交并比達到某一限定值時,便舍棄該目標框,最終可以得到不重合且置信度最高的目標框。
YOLOv3的網絡模型舍棄了Softmax函數,轉而采用邏輯回歸分類器。訓練部分基于二元交叉熵損失進行目標類別預測,因為Softmax損失函數要求每個框只有一個類別,這有點脫離實際。YOLOv3在網絡優化中基于多標簽分類,采用多標記預測類別的方法增加其預測精度。其對每個邊界框預測4個坐標,網絡輸出為tx、ty、th、tw。令特征圖中網格單元的左上角坐標是(cx,cy),YOLOv3中每個網格單元的寬和高均為1。假設錨框的高和寬分別是ph、pw,再定義目標框中心落在(bx,by)處,高和寬分別為bh、bw,則它們滿足:
(1)
式中σ(tx)和σ(ty)代表邊界框中心相對于所屬小方格左上角的相對橫縱坐標,如圖1所示。

圖1 YOLOv3邊框預測
針對小目標檢測問題,也為了提高網絡多尺度的能力,YOLOv3對每個框都有3個不同尺度大小的預測,分別為8×8、16×16、32×32。此外,YOLOv3基于Darknet53提取特征,一共包含53個卷積層,相比于YOLOv2采用Darknet19網絡模型,Darknet53浮點運算更少,分類速度和分類準確度更加出色,非常適合作為目標檢測的特征提取器。
YOLOv3使用K-means[4]方法,隨機選取樣本中9個點,作為聚類中心,從而計算出9個錨框。由于隨機選取的聚類中心不同,分類結果也會不同。另一種改進的方法K-means++[5]則是對第一個聚類中心進行隨機選取,之后的聚類中心選取不再完全隨機,而是通過計算每個樣本與最近一個聚類中心的距離,利用一定的概率偏重進行限制性選取。
在油庫公路付油作業中,因為油罐車的罐裝接口常位于底部,攝像頭也相應地擺放比較低,同時由于油罐車停車位置不準,并且操作人員會走動,這些都對攝像頭拍攝視角產生了一定干擾。對這種角度較偏的圖像數據,常規方法計算出的錨框不夠準確,使得底部罐裝接口及鶴管編號識別效果不佳。
因此,本文對建立的底部罐裝接口及鶴管編號樣本庫進行分析,結合K-means和K-means++的計算結果,手動選定的錨框為[8,23 10,27 11,27 15,30 21,39 25,44 29,49 37,63 59,161]。通過實驗驗證,本文手動選取的初始聚類框優于K-means和K-means++,具體效果如表1所示。

表1 油庫樣本上不同算法的Avg IoU比較
從表中數據可知,手動設定的錨框有更高的Avg IoU,證明該設定相較于其他兩種方法更為合理。
在目標檢測中,經常使用邊框回歸處理預測框和目標框,更好地完成目標定位等任務。交并比是常用的邊界框回歸損失,其損失函數定義公式為
(2)
式中:B為預測框;Bgt是真實框。從數學角度分析可知,預測框與真實框沒有交集時,IoU損失始終為1,邊框無法回歸。因此,改進的DIoU[6]綜合考慮目標與錨框的距離、尺度和重疊率,更加符合目標框回歸機制。DIoU定義為
(3)
式中:b為錨框中心點;bgt是目標框中心點;ρ代表兩點的歐氏距離;c是囊括目標框與預測框的最小閉包區域對角線長。DIoU不會在訓練時發散,且收斂更快,但忽略了邊界框的長寬比。因此,本文改進了YOLOv3的損失函數,在DIoU基礎上添加一個懲罰項αν,定義為:
(4)
(5)
式中:α代表權重函數;ν度量長寬比的一致性;ω、h分別是錨框的長與寬;ω1、h1分別是目標框的長與寬。利用這種方法,預測框長寬比會盡量保持與目標框相同,能夠提高定位精度。
在YOLOv3的檢測結構中,Darknet53、卷積設置模塊和串聯(Concatenate)模塊幫助提取3個不同尺寸的圖像特征,提取后利用YOLO層檢測出最終結果。雖然YOLOv3是多尺度檢測,但考慮到油庫公路付油作業中,攝像頭角度不正、操作人員移動鶴管以及油氣回收口較小等問題,YOLOv3在檢測時會有漏識、誤識、重復識別等問題。為進一步提高底部罐裝接口及鶴管編號的識別率,還需對網絡進行改進,使其能更充分地學習到足夠的特征。
因此,本文結合雙密度[7]層思想,改進YOLOv3的檢測模塊,增加其尺度檢測上的感受野,提高網絡學習能力,改進模塊如圖2所示。

圖2 改進的YOLOv3檢測模塊
對原網絡中的兩個檢測模塊分別改進替換,改進中雙密度層的思想體現在一個3×3卷積和兩個3×3卷積的并聯,能夠分別獲取大小不同的兩種感受野。其中單卷積細節豐富,對油氣回收口、攝像角度較偏的小目標等檢測效果好;雙卷積感受野更大,能很好地檢測裝油口、鶴管編號等攝像角度理想的大目標。這種改進使網絡檢測更充分,可提高對底部罐裝接口及鶴管編號的識別準確率。
本文設計的改進YOLOv3目標檢測子系統會在油罐車駛入指定區域后,由油庫付油主系統發送指令給子系統,控制子系統的3種狀態,同時主系統可通過網絡獲取子系統的識別結果圖像,用作人工審閱及后續分析。
子系統模型采用雙GPU訓練、單GPU識別的方式進行部署,與主系統確定數據區格式及內容,通過UDP傳輸協議,以應答方式進行數據交換,同時開放共享文件夾;子系統讀取網絡攝像頭視頻流并按主系統指令進行識別、校時等操作。
具體檢測類別與標記如表2所示,編號為0的鶴管只能連接油氣回收口,編號為1、2的鶴管只能連接下裝油口。子系統檢測后返回相應的物體標簽至付油主系統,供其判斷對接的準確性。

表2 油庫作業檢測目標類別與標簽
在自主建立的底部罐裝接口及鶴管編號樣本庫上,對原YOLOv3和本文改進算法分別進行實驗,從準確率及實時性上進行對比,結果如表3所示。

表3 油庫樣本上不同算法的結果比較
由表中數據可知,由于GPU非常支持卷積加速,兩種算法在實時性上并沒有太大區別,但本文算法精度提升明顯。陰雨天下,YOLOv3的識別效果受雨水、光照影響,因鶴管編號被打濕,則無法識別出鶴管編號1。本文改進算法則彌補了這一缺陷,正確識別出被雨水打濕的鶴管編號1,如圖3所示。該算法對環境的抗干擾能力較強,能較好地應對雨天、光線昏暗、遮擋等不利情況。

圖3 改進算法陰雨天識別效果
圖4是本文改進算法在夜間燈光、操作人員遮擋等情況下的識別效果。改進算法通過引入更好的邊框回歸,對底部罐裝接口及鶴管編號的定位都比較準確,同時借鑒了雙密度層思想,改進的檢測模塊能較好地解決攝像頭角度不正、人員遮擋等帶來的大小目標識別問題。

圖4 改進算法在昏暗、遮擋等條件下的識別效果
本文針對油庫公路付油作業的人工安全隱患,提出了一種基于改進YOLOv3的接口鶴管對接情況檢測算法。通過深入分析油罐車底部罐裝接口及鶴管編號樣本庫的
特點,手動選取了合適的聚類中心,并改進了邊界框回歸損失計算方法。同時針對YOLOv3中單一尺度的檢測模塊,基于雙密度層思想設計了新的檢測模塊,合理運用單、雙卷積的并聯,提供給YOLOv3兩種不同感受野,改善網絡對小目標的檢測識別效果。本文改進算法在油庫實際場地進行了現場測試,測試結果顯示:識別系統一直保持穩定運行;準確率及實時性均滿足油庫作業要求,具有較高的實用價值。