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