張???,袁廣馳,李志祥,張帥乾,刁小宇
(安徽海博智能科技有限責任公司,安徽 蕪湖 241200)
智慧礦山是指在云計算、物聯(lián)網、大數(shù)據等技術基礎上,將智能礦山生產流程向智能化決策和管理轉變。
無人運輸是智慧礦山生產系統(tǒng)的重要環(huán)節(jié)。與普通汽車相比,無人運輸使用的礦卡體積更大、質量更大、制動距離更長。因此,無人礦卡對前方障礙物的檢測速度要求更高。人工智能發(fā)展迅速,尤其是卷積神經網絡對目標進行檢測的方法逐漸增多,主要可以分為端到端和非端到端兩大類。其中,端到端算法可直接對物體的類別概率、坐標等進行輸出,其速度較快。典型的端到端算法主要包括:SSD、YOLOv1、YOLOv2、YOLOv3、YOLOv5、DSSD和Retina-Net。而非端到端類算法一般需要先生成候選區(qū)域,再進行分類和回歸,其檢測準確度比較高,但檢測速度較慢。典型的非端到端算法主要包括:FCN、R-CNN、Fast R-CNN、Faster R-CNN、Mask RCNN。神 經 網絡算法同樣適用于礦山領域,如齊凡等人曾使用了改進的Mask RCNN對露天礦山中的礦卡和行人等目標進行檢測,實現(xiàn)了91%的檢測率,但該算法的檢測速度難以滿足實時需要。張柳等人對Faster-RCNN結構進行改進,并增加了FPN特征金字塔網絡結構,將運輸?shù)V卡的識別率提高至87.9%,且FPS達到了23.8,但該方法的檢測速度仍需進一步提高。YOLOv3由Joseph Redmon等人于2018年提出,該算法使用一塊Pascal Titan X顯卡即可在COCO數(shù)據集上取得mAP為33.0%的成績。它是一種成熟、典型的深度學習算法,其算子較為常見,便于移植到MDC智能駕駛平臺,且相較于YOLOv5而言,YOLOv3檢測小目標的效果更好,能夠識別遠方障礙物。因此,本文擬在YOLOv3算法的基礎上進行改進,以更快、更準地對礦山場景中的障礙物進行檢測。YOLOv3結構如圖1所示。
圖1 YOLOv3結構
YOLO系列算法是Joseph Redmon等人于2016年提出的一種端到端算法。與YOLOv1和YOLOv2相比,YOLOv3具有如下優(yōu)點:
(1)可進行多標簽分類;
(2)特征提取網絡Darknet-53采用殘差結構,可充分提取網絡中的上下文信息,提高目標檢測的準確度;
(3)使用多尺度檢測結構,可改善小目標檢測的效果。
YOLOv3的目標檢測流程:首先圖像經過預處理變成416×416;隨后,圖像進入Darknet-53進行特征提取,其中13×13、26×26和52×52的特征圖會被劃分成×個單元格,并進行多尺度目標檢測。
Darknet-53是YOLOv3所使用的特征提取網絡,它由5個殘差結構組成,并輸出5種尺寸的特征圖,分別為:208×208、104×104、52×52、26×26、13×13。殘差塊的基本結構如圖2所示。表示第一個208×208特征圖的信息,()表示第三個208×208特征圖的信息,通過跨層連接將和()連接后可得到信息為()的208×208特征圖,具體如式(1)所示。這種結構的優(yōu)點是當()變化很小時,()仍具有較大的值,從而避免了深層網絡梯度易消失的問題。
圖2 殘差網絡結構
YOLOv3采用k-means聚類方法對邊界框進行預測,可避免手工選定先驗框效果差的缺點。預測邊界框的具體過程:圖像經特征提取后進入檢測層,并分割成×個單元格。隨后,目標中心點落在哪個單元格內,該單元格就負責對目標進行位置預測。且每個單元格會生成3個預測框,最終,輸出置信度最高的邊界框。邊界框坐標指示圖如圖3所示。
圖3 邊界框坐標指示圖
在YOLOv3算法中,單元格在預測邊界框時會預測4個值:t、t、和。其中,預測框的中心坐標值用t和t表示,預測框的寬度值和高度值用和表示。最終,經過修正后的邊界框中心坐標(b,b)和寬高(,)計算方法如式(2)~式(5)所示:
式中:c和c表示包含目標中心點的單元格相對于圖像左上角的坐標位置;和表示使用k-means聚類法對數(shù)據集進行聚類后得到的先驗框映射到特征圖中的寬和高。
與外界環(huán)境相比,智慧礦山場景屬于封閉場景,無人礦卡在物料運輸過程中遇到的障礙物種類較少且障礙物特征較為明顯。為提高礦山場景下目標檢測的速度與精度,本文以YOLOv3為基礎設計了一種更適用于礦山場景的目標檢測網絡—Mine_YOLOv3。Mine_YOLOV3主要包括Darknet-31特征提取網絡和一種改進的錨點框坐標聚類法。
智慧礦山場景中的障礙物種類主要包括:礦卡、行人、皮卡和石頭。與COCO數(shù)據集相比,本文所需檢測的目標種類少,且體積差異大。為充分提取不同大小目標的特征,本文重新設計了一種特征提取網絡—Darknet-31。Darknet-31保留了Darknet-53中5種殘差塊類型,可輸出5種尺寸特征圖:302×302、151×151、76×76、38×38 和 19×19,以提 取不同大小的目標特征。為盡可能快速對礦卡前方障礙物進行檢測,本文將上述5種殘差塊的數(shù)量分別設計為1、1、4、4、2,具體見表1所列。
表1 Darknet-31網絡結構表
合理的先驗框初始坐標設置有助于網絡快速收斂。YOLOv3使用k-means聚類法生成先驗框坐標。但k-means聚類法對初始點的選取較敏感。為解決上述問題,本文使用k-means++生成先驗框坐標。k-means++算法流程如下:
(1)在樣本中隨機選取一個聚類中心;
(2)計算樣本與聚類中心的距離后計算每個樣本成為聚類中心的概率。計算原則:距離越大,成為聚類中心的概率越大;
(3)重復步驟(2)直到選擇出個初始聚類中心;
(4)根據樣本框到聚類中心交并比將每個樣本框分配給最近聚類中心;
(5)重新計算聚類中心;
(6)重復步驟(4)和步驟(5),直至聚類中心改變量小于閾值。
本文實驗環(huán)境配置 :Intel Core i9-9900K @3.60 GHz 處理器,Geforce RTX 2080Ti顯卡,Nvidai-smi版本為 450.156.00,CUDA版本為11.0,操作系統(tǒng)為Ubuntu 18.04.5,開發(fā)框架為Darknet。
礦山場景屬于封閉場景,且環(huán)境與外界場景差異較大,為此,本文對不同天氣下礦卡行駛途中的圖像進行采集,并構建了一個新的MINE數(shù)據集。MINE數(shù)據集的天氣環(huán)境為晴天和陰天,為進一步擴充數(shù)據集,本文從COCO2018中篩選出1 471張帶有人和車的圖像,加上在礦山場景下采集的8 924張圖像,共10 395張圖像,其中訓練集8 316張,測試集2 079張。最終,MINE數(shù)據集中礦卡、行人、汽車和石頭的目標框數(shù)量分別為 :9 058、10 570、9 284和 29 695。
本文訓練時迭代次數(shù)為30 000,batch為 64,subdivisions為16,width和height均為608,learning_rate為0.001。本實驗直接使用k-means對數(shù)據集進行聚類,得到的先驗框坐標為 :(4.1,4.5)、(4.8,7.9)、(6.7,6.8)、(7.6,10.7)、(11.4,14.1)、(15.2,23.6)、(23.8,50.7)、(56.7,76.0)、(112.4、140.7)。通過k-means++算法生成的錨點框的坐標為:(4.9,6.1)、(8.0,11.1)、(12.1,46.1)、(14.3,18.1)、(29.0,33.3)、(31.5,73.6)、(68.9,82.5)、(111.5,158.3)、(255.4,322.3)。
本文實驗結果如圖4和表2所示。由表2可知,原YOLOv3在MINE數(shù)據集上進行訓練后得到的FPS為38.1、mAP為67.31%。只使用本文所設計的Darknet-31時,算法的FPS可提高到50.7。最終,本文提出的Mine_YOLOv3網絡的FPS為50.7、mAP為68.32%,可快速準確地對智慧礦山中無人礦卡運輸流程中的障礙物進行快速準確檢測,以保證運輸流程的安全。
圖4 實驗樣例圖
表2 實驗結果表
本文針對礦山場景中目標種類少、場景單一的特點,重新制作了一個MINE數(shù)據集,并在YOLOv3的基礎上設計了一種Darknet-31特征提取網絡,將計算速度由38.1 FPS提高至50.7 FPS。此外,本文還使用k-means++算法對MINE數(shù)據集進行了聚類并生成先驗框坐標。最終,改進后算法的FPS為50.7,mAP為68.32%,可快速準確地對無人礦卡前方障礙物進行檢測,有效提高無人礦卡的安全性能。