薛雅麗,向心,楊皓文,孫逸凡
(南京航空航天大學(xué),江蘇 南京 210016)
在油庫(kù)公路付油作業(yè)中,由于多倉(cāng)油罐車具有多個(gè)罐裝接口,尤其現(xiàn)在大量使用的底部裝車方式,底部罐裝接口都集中在一起。操作人員將下裝鶴管接到底部罐裝接口上時(shí),一旦疏忽,極易接錯(cuò)接口。這不但會(huì)造成配送數(shù)量錯(cuò)誤,也極易發(fā)生混油、冒頂?shù)戎卮笫鹿?。人工智能技術(shù)的運(yùn)用有助于提高油庫(kù)公路付油作業(yè)的智能化水平,減少人工出錯(cuò)。應(yīng)用深度學(xué)習(xí)技術(shù)的目標(biāo)檢測(cè)算法[1],通過大量學(xué)習(xí)底部罐裝接口及鶴管編號(hào)[2]特征,能更好地應(yīng)對(duì)光照、遮擋等復(fù)雜環(huán)境,在不同油庫(kù)作業(yè)時(shí)有更優(yōu)越的性能表現(xiàn)和泛化能力。
為解決油庫(kù)公路付油作業(yè)中操作的人工隱患,本文在油庫(kù)付油主系統(tǒng)中引入基于改進(jìn)YOLOv3[3]的接口鶴管對(duì)接情況檢測(cè)子系統(tǒng)。主系統(tǒng)通過UDP傳輸協(xié)議與目標(biāo)檢測(cè)子系統(tǒng)通信,控制子系統(tǒng)運(yùn)行并獲取檢測(cè)結(jié)果,實(shí)時(shí)判斷鶴管與底部罐裝接口的對(duì)接情況。
YOLOv3是基于回歸預(yù)測(cè)的一種端到端快速目標(biāo)檢測(cè)算法,其檢測(cè)流程是基于卷積神經(jīng)網(wǎng)絡(luò)從圖像中提取一定尺度的特征圖,然后將圖像分成131×3個(gè)小方格,其中待檢測(cè)對(duì)象的中心總會(huì)落在某個(gè)小方格中,因此每個(gè)小方格都需要預(yù)測(cè)中心點(diǎn)落在該方格的物體,并基于多尺度的錨框預(yù)測(cè)目標(biāo)邊框。YOLOv3基于非極大值抑制來避免多個(gè)方格同時(shí)響應(yīng)同一物體,NMS非極大值抑制篩選出置信度最高的目標(biāo)框,得到其他目標(biāo)框與該目標(biāo)框的交并比(IoU)。交并比可以通過兩個(gè)候選框相交的面積除以兩個(gè)候選框合并后的面積求得。當(dāng)候選框完全不重合,其值為0;完全重合則為1。當(dāng)交并比達(dá)到某一限定值時(shí),便舍棄該目標(biāo)框,最終可以得到不重合且置信度最高的目標(biāo)框。
YOLOv3的網(wǎng)絡(luò)模型舍棄了Softmax函數(shù),轉(zhuǎn)而采用邏輯回歸分類器。訓(xùn)練部分基于二元交叉熵?fù)p失進(jìn)行目標(biāo)類別預(yù)測(cè),因?yàn)镾oftmax損失函數(shù)要求每個(gè)框只有一個(gè)類別,這有點(diǎn)脫離實(shí)際。YOLOv3在網(wǎng)絡(luò)優(yōu)化中基于多標(biāo)簽分類,采用多標(biāo)記預(yù)測(cè)類別的方法增加其預(yù)測(cè)精度。其對(duì)每個(gè)邊界框預(yù)測(cè)4個(gè)坐標(biāo),網(wǎng)絡(luò)輸出為tx、ty、th、tw。令特征圖中網(wǎng)格單元的左上角坐標(biāo)是(cx,cy),YOLOv3中每個(gè)網(wǎng)格單元的寬和高均為1。假設(shè)錨框的高和寬分別是ph、pw,再定義目標(biāo)框中心落在(bx,by)處,高和寬分別為bh、bw,則它們滿足:
(1)
式中σ(tx)和σ(ty)代表邊界框中心相對(duì)于所屬小方格左上角的相對(duì)橫縱坐標(biāo),如圖1所示。
圖1 YOLOv3邊框預(yù)測(cè)
針對(duì)小目標(biāo)檢測(cè)問題,也為了提高網(wǎng)絡(luò)多尺度的能力,YOLOv3對(duì)每個(gè)框都有3個(gè)不同尺度大小的預(yù)測(cè),分別為8×8、16×16、32×32。此外,YOLOv3基于Darknet53提取特征,一共包含53個(gè)卷積層,相比于YOLOv2采用Darknet19網(wǎng)絡(luò)模型,Darknet53浮點(diǎn)運(yùn)算更少,分類速度和分類準(zhǔn)確度更加出色,非常適合作為目標(biāo)檢測(cè)的特征提取器。
YOLOv3使用K-means[4]方法,隨機(jī)選取樣本中9個(gè)點(diǎn),作為聚類中心,從而計(jì)算出9個(gè)錨框。由于隨機(jī)選取的聚類中心不同,分類結(jié)果也會(huì)不同。另一種改進(jìn)的方法K-means++[5]則是對(duì)第一個(gè)聚類中心進(jìn)行隨機(jī)選取,之后的聚類中心選取不再完全隨機(jī),而是通過計(jì)算每個(gè)樣本與最近一個(gè)聚類中心的距離,利用一定的概率偏重進(jìn)行限制性選取。
在油庫(kù)公路付油作業(yè)中,因?yàn)橛凸捃嚨墓扪b接口常位于底部,攝像頭也相應(yīng)地?cái)[放比較低,同時(shí)由于油罐車停車位置不準(zhǔn),并且操作人員會(huì)走動(dòng),這些都對(duì)攝像頭拍攝視角產(chǎn)生了一定干擾。對(duì)這種角度較偏的圖像數(shù)據(jù),常規(guī)方法計(jì)算出的錨框不夠準(zhǔn)確,使得底部罐裝接口及鶴管編號(hào)識(shí)別效果不佳。
因此,本文對(duì)建立的底部罐裝接口及鶴管編號(hào)樣本庫(kù)進(jìn)行分析,結(jié)合K-means和K-means++的計(jì)算結(jié)果,手動(dòng)選定的錨框?yàn)閇8,23 10,27 11,27 15,30 21,39 25,44 29,49 37,63 59,161]。通過實(shí)驗(yàn)驗(yàn)證,本文手動(dòng)選取的初始聚類框優(yōu)于K-means和K-means++,具體效果如表1所示。
表1 油庫(kù)樣本上不同算法的Avg IoU比較
從表中數(shù)據(jù)可知,手動(dòng)設(shè)定的錨框有更高的Avg IoU,證明該設(shè)定相較于其他兩種方法更為合理。
在目標(biāo)檢測(cè)中,經(jīng)常使用邊框回歸處理預(yù)測(cè)框和目標(biāo)框,更好地完成目標(biāo)定位等任務(wù)。交并比是常用的邊界框回歸損失,其損失函數(shù)定義公式為
(2)
式中:B為預(yù)測(cè)框;Bgt是真實(shí)框。從數(shù)學(xué)角度分析可知,預(yù)測(cè)框與真實(shí)框沒有交集時(shí),IoU損失始終為1,邊框無法回歸。因此,改進(jìn)的DIoU[6]綜合考慮目標(biāo)與錨框的距離、尺度和重疊率,更加符合目標(biāo)框回歸機(jī)制。DIoU定義為
(3)
式中:b為錨框中心點(diǎn);bgt是目標(biāo)框中心點(diǎn);ρ代表兩點(diǎn)的歐氏距離;c是囊括目標(biāo)框與預(yù)測(cè)框的最小閉包區(qū)域?qū)蔷€長(zhǎng)。DIoU不會(huì)在訓(xùn)練時(shí)發(fā)散,且收斂更快,但忽略了邊界框的長(zhǎng)寬比。因此,本文改進(jìn)了YOLOv3的損失函數(shù),在DIoU基礎(chǔ)上添加一個(gè)懲罰項(xiàng)αν,定義為:
(4)
(5)
式中:α代表權(quán)重函數(shù);ν度量長(zhǎng)寬比的一致性;ω、h分別是錨框的長(zhǎng)與寬;ω1、h1分別是目標(biāo)框的長(zhǎng)與寬。利用這種方法,預(yù)測(cè)框長(zhǎng)寬比會(huì)盡量保持與目標(biāo)框相同,能夠提高定位精度。
在YOLOv3的檢測(cè)結(jié)構(gòu)中,Darknet53、卷積設(shè)置模塊和串聯(lián)(Concatenate)模塊幫助提取3個(gè)不同尺寸的圖像特征,提取后利用YOLO層檢測(cè)出最終結(jié)果。雖然YOLOv3是多尺度檢測(cè),但考慮到油庫(kù)公路付油作業(yè)中,攝像頭角度不正、操作人員移動(dòng)鶴管以及油氣回收口較小等問題,YOLOv3在檢測(cè)時(shí)會(huì)有漏識(shí)、誤識(shí)、重復(fù)識(shí)別等問題。為進(jìn)一步提高底部罐裝接口及鶴管編號(hào)的識(shí)別率,還需對(duì)網(wǎng)絡(luò)進(jìn)行改進(jìn),使其能更充分地學(xué)習(xí)到足夠的特征。
因此,本文結(jié)合雙密度[7]層思想,改進(jìn)YOLOv3的檢測(cè)模塊,增加其尺度檢測(cè)上的感受野,提高網(wǎng)絡(luò)學(xué)習(xí)能力,改進(jìn)模塊如圖2所示。
圖2 改進(jìn)的YOLOv3檢測(cè)模塊
對(duì)原網(wǎng)絡(luò)中的兩個(gè)檢測(cè)模塊分別改進(jìn)替換,改進(jìn)中雙密度層的思想體現(xiàn)在一個(gè)3×3卷積和兩個(gè)3×3卷積的并聯(lián),能夠分別獲取大小不同的兩種感受野。其中單卷積細(xì)節(jié)豐富,對(duì)油氣回收口、攝像角度較偏的小目標(biāo)等檢測(cè)效果好;雙卷積感受野更大,能很好地檢測(cè)裝油口、鶴管編號(hào)等攝像角度理想的大目標(biāo)。這種改進(jìn)使網(wǎng)絡(luò)檢測(cè)更充分,可提高對(duì)底部罐裝接口及鶴管編號(hào)的識(shí)別準(zhǔn)確率。
本文設(shè)計(jì)的改進(jìn)YOLOv3目標(biāo)檢測(cè)子系統(tǒng)會(huì)在油罐車駛?cè)胫付▍^(qū)域后,由油庫(kù)付油主系統(tǒng)發(fā)送指令給子系統(tǒng),控制子系統(tǒng)的3種狀態(tài),同時(shí)主系統(tǒng)可通過網(wǎng)絡(luò)獲取子系統(tǒng)的識(shí)別結(jié)果圖像,用作人工審閱及后續(xù)分析。
子系統(tǒng)模型采用雙GPU訓(xùn)練、單GPU識(shí)別的方式進(jìn)行部署,與主系統(tǒng)確定數(shù)據(jù)區(qū)格式及內(nèi)容,通過UDP傳輸協(xié)議,以應(yīng)答方式進(jìn)行數(shù)據(jù)交換,同時(shí)開放共享文件夾;子系統(tǒng)讀取網(wǎng)絡(luò)攝像頭視頻流并按主系統(tǒng)指令進(jìn)行識(shí)別、校時(shí)等操作。
具體檢測(cè)類別與標(biāo)記如表2所示,編號(hào)為0的鶴管只能連接油氣回收口,編號(hào)為1、2的鶴管只能連接下裝油口。子系統(tǒng)檢測(cè)后返回相應(yīng)的物體標(biāo)簽至付油主系統(tǒng),供其判斷對(duì)接的準(zhǔn)確性。
表2 油庫(kù)作業(yè)檢測(cè)目標(biāo)類別與標(biāo)簽
在自主建立的底部罐裝接口及鶴管編號(hào)樣本庫(kù)上,對(duì)原YOLOv3和本文改進(jìn)算法分別進(jìn)行實(shí)驗(yàn),從準(zhǔn)確率及實(shí)時(shí)性上進(jìn)行對(duì)比,結(jié)果如表3所示。
表3 油庫(kù)樣本上不同算法的結(jié)果比較
由表中數(shù)據(jù)可知,由于GPU非常支持卷積加速,兩種算法在實(shí)時(shí)性上并沒有太大區(qū)別,但本文算法精度提升明顯。陰雨天下,YOLOv3的識(shí)別效果受雨水、光照影響,因鶴管編號(hào)被打濕,則無法識(shí)別出鶴管編號(hào)1。本文改進(jìn)算法則彌補(bǔ)了這一缺陷,正確識(shí)別出被雨水打濕的鶴管編號(hào)1,如圖3所示。該算法對(duì)環(huán)境的抗干擾能力較強(qiáng),能較好地應(yīng)對(duì)雨天、光線昏暗、遮擋等不利情況。
圖3 改進(jìn)算法陰雨天識(shí)別效果
圖4是本文改進(jìn)算法在夜間燈光、操作人員遮擋等情況下的識(shí)別效果。改進(jìn)算法通過引入更好的邊框回歸,對(duì)底部罐裝接口及鶴管編號(hào)的定位都比較準(zhǔn)確,同時(shí)借鑒了雙密度層思想,改進(jìn)的檢測(cè)模塊能較好地解決攝像頭角度不正、人員遮擋等帶來的大小目標(biāo)識(shí)別問題。
圖4 改進(jìn)算法在昏暗、遮擋等條件下的識(shí)別效果
本文針對(duì)油庫(kù)公路付油作業(yè)的人工安全隱患,提出了一種基于改進(jìn)YOLOv3的接口鶴管對(duì)接情況檢測(cè)算法。通過深入分析油罐車底部罐裝接口及鶴管編號(hào)樣本庫(kù)的
特點(diǎn),手動(dòng)選取了合適的聚類中心,并改進(jìn)了邊界框回歸損失計(jì)算方法。同時(shí)針對(duì)YOLOv3中單一尺度的檢測(cè)模塊,基于雙密度層思想設(shè)計(jì)了新的檢測(cè)模塊,合理運(yùn)用單、雙卷積的并聯(lián),提供給YOLOv3兩種不同感受野,改善網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)識(shí)別效果。本文改進(jìn)算法在油庫(kù)實(shí)際場(chǎng)地進(jìn)行了現(xiàn)場(chǎng)測(cè)試,測(cè)試結(jié)果顯示:識(shí)別系統(tǒng)一直保持穩(wěn)定運(yùn)行;準(zhǔn)確率及實(shí)時(shí)性均滿足油庫(kù)作業(yè)要求,具有較高的實(shí)用價(jià)值。