于騫翔 張元生 1
(1.礦冶科技集團有限公司,北京102628;2.金屬礦山智能開采技術北京市重點實驗室,北京102628;3.北京北礦智能科技有限公司,北京102628)
全球礦業正經歷著一場新的變革,在智能化建設的形勢下,礦山開采由目前的低效率、多人員井下作業,朝向高效、智能、少人作業方向發展,智能礦山成為未來礦山建設的新模式。地下礦山采礦規模逐步擴大也為運輸提出了更高的要求,智能化運輸方式是從智能礦山建設的一個子系統入手,為提高運輸效率而研究的新的礦山運輸技術,是礦山建設的關鍵點。
電機車作為井下主要的運輸設備,實現無人化的高效運輸經濟效益潛力巨大,是實現安全生產、智能化的重要裝備。國家應急管理部在《智能礦山建設規范》提出,有軌運輸車輛應實現自動調度和無人駕駛,系統應具備自主運行、自主避障和在線故障診斷功能,并與“信集閉”系統、計量系統實現系統集成和數據關聯[1]。真正意義上的無人智能運輸系統是電機車通過移動通信網絡接收調度中心發來的行車指令,運用機器視覺判斷軌道安全狀況,完成多地點之間的裝卸運輸任務。
(1)井下巷道運輸環境。有軌電機車是在井下環境中運行,具有更多亟需解決的技術難題[2],井下有軌運輸環境具有如下特點:①運輸巷道人車共用[3],電機車行駛的軌道與人行道并行,人行道的有效空間寬度僅有1 m,兩者邊界分辨困難,這導致在運行過程中需要兼顧考慮人、設備運輸的條件,判斷人員的狀態和人員距離信息;②巷道中有散落的礦石和雜物,電機車牽引的礦車在裝卸時會發生礦石或雜物掉落,需要及時判斷這些障礙物是否影響安全運行,必要時緊急制動以保證安全;③井下照明條件差、光線不足,地下礦山只能通過人工光源來照明,電機車運行過程中,司機在這種照明環境不良的條件下,需要反復去辨認前后方物體,極易造成視覺疲勞,降低工作效率,且容易導致安全事故[4];④電機車在轉彎處,司機存在視覺盲區。
(2)對軌道障礙物識別檢測的研究現狀。基于上述環境條件,在現有的技術和實踐研究中,以圖像處理和三維激光雷達定位為兩大主要方向。應用攝像頭拍攝到的圖像信息屬于單純的二維像素點,采集到的是電機車運行中的平面信息,主要實現識別障礙物的功能,三維激光雷達測量的坐標點形成點云圖,采集到的是軌道模型的深度信息[5]。在城市軌道運輸中,對輕軌電車的障礙物檢測應用三維激光雷達點云預處理和聚類,可以實時檢測在軌道的人員位置[6]。然而,在井下復雜的環境中,三維激光雷達的檢測受到環境干擾較大,尤其是在構建點云圖時,激光雷達的建模效果很差,容易受到運輸巷道壁不平整等對點云圖中障礙物構建的干擾,難以達到檢測電機車障礙物的效果。應用圖像處理技術可以避免建模的干擾,但傳統的圖像處理技術無法將障礙物分類,Fast R-CNN等基于深度學習的目標檢測算法又不能滿足電機車運行過程中實時的檢測需求。因此,需要一種可以快速檢測并且適應井下運輸環境的目標物分類算法。
(3)圖像處理的目標檢測技術對井下無人駕駛的研究意義。開展基于圖像處理的電機車智能化運行研究可以減少駕駛人員,保證安全運輸。圖像處理技術的關鍵在于對障礙物的快速檢測和識別,基于深度學習的YOLO算法的誕生為井下電機車障礙物的實時檢測提供了理論指導。相比較傳統圖像處理和深度學習的R-CNN卷積神經網絡,YOLO網絡架構以優越的性能和對小目標識別的精度,逐步成為基于機器視覺的主流目標檢測算法。
圖像處理技術的發展為障礙物識別提供了新的思路,流程如圖1所示。首先基于傳統的圖像處理算法提取軌道的特征,運用傳統的邊緣檢測和Hough直線檢測算法進行軌道區域劃分;在YOLOv5網絡中識別電機車前方區域內的人、設備和碎石等障礙物,根據不同的障礙物等級和障礙物的距離建立數學模型,計算權重數據反映障礙物的位置信息,實現避障。

障礙物識別的前提是對軌道進行定位,在井下巷道狹窄路段,劃分軌道內外區域的目的是確定檢測的ROI(Region of Interest)區域,縮小區分障礙物和背景的范圍。軌道定位的研究技術主要應用的是傳統的圖像處理算法,對圖像進行二值化處理,依據軌道的像素值高于環境像素點的特點,提取像素連接區域的變化特征進行標注。對區域劃分確定在不同區域下障礙物權重參數(如圖2)。A1表示電機車最小剎車距離,A2表示攝像頭有效檢測距離,區域按照邊界劃分為3種類型:對于遠距離的在軌道兩側A2區域內的人員a,需要減速,進行鳴笛提示;對于進入一定近距離區域A1的人員b,則進行鳴笛和減速,并準備制動,應對突發情況;對于近距離突然進入軌道中間的人員c,應采取緊急制動和鳴笛提示,以保證人員和電機車安全。

2.1.1 軌道定位算法流程
電機車軌道的識別和定位針對平直軌道,參考汽車無人駕駛的車道線識別和軌道線的相關特征處理技術,采用傳統圖像處理算法。這種算法可以直接在集成的硬件芯片上運行程序,運行速度快。平直軌道定位的流程應用MATLAB進行圖像預處理,主要技術和關鍵步驟如圖3。

(1)灰度變換。在MATLAB中,通過調用函數rgb2gray可以直接將3層的彩色圖像變換為二維像素點矩陣,為后續進行邊緣檢測做準備。
(2)高斯濾波。對整幅圖像進行加權平均,使用高斯核進行卷積操作,消除圖像中的高斯噪聲。在圖像處理中,常采用二維零均值離散高斯函數作平滑濾波器,如式(1)。

(3)ROI區域的選擇。由于自然場景中包含大量不相關目標,其中很大部分都有直線成分,會對軌道區域的識別造成較大影響,因此需要先在圖像中劃分ROI區域,在ROI區域中識別軌道,可提高識別準確率,排除不相關因素的干擾,同時減少在定位邊界時的計算量。
(4)邊緣檢測算法。傳統的邊緣檢測算法如Sobel,Prewitt,Roberts和Kirch 等,大部分為局域窗口梯度算子。Canny算法使用數學方法系統地推導出確定圖像邊界檢測函數性能指標的3個數學表達式,導出高斯函數的一階導數,應用在二維圖像取得最優的邊緣[7-8]。Sobel算法是一個離散的一階差分算法,用來計算圖像亮度函數的一階梯度近似值產生像素點對應的梯度矢量或是法矢量。Sobel算法雖然不如Canny算法取得形狀的最優邊界,但由于其處理圖像的速度快,所以在實時圖像處理系統中,通常采用Sobel算法來實現圖像的邊沿檢測,滿足實際的軌道定位要求[9]。對軌道邊緣檢測直接調用MATLAB中自帶的Sobel算法,函數默認的閾值無法區分軌道邊界和枕木等,導致軌道中間區域的噪點過多,在ROI區域內識別效果不好。參考相關研究的改進方法,選擇針對Sobel算法的參數進行算法優化,按照Sobel邊緣檢測的原理用MATLAB編寫Sobel算法程序,使閾值可根據實際環境和圖像質量來調整,尋找軌道和環境的最優邊緣。
(5)Hough直線檢測。電機車井下運行過程中,首尾安裝的攝像頭拍攝角度默認不變,在攝像頭視覺能到達的ROI區域內,檢測到的軌道基本是平直的,傳統圖像處理技術的Hough變換可以解決對線性軌道進行檢測問題[10]。Hough變換原理是將一個空間中具有相同形狀的曲線或者直線映射到另一個坐標空間的一個點上形成峰值,從而把檢測任意形狀的問題轉化為統計峰值問題。
2.1.2 MATLAB軌道定位實驗
在電機車的首尾進行拍攝,獲取軌道以及周圍環境的圖片,然后根據軌道定位算法的流程進行了軌道定位的MATLAB實驗。實驗結果如圖4。

根據實驗最終得到的圖像分析,綜合Sobel邊緣檢測和Hough變換的算法可以定位直線軌道的位置,從而實現對軌道區域的劃分。
隨著電機車連續運行,障礙物的坐標與電機車的相對位置發生改變,需要障礙物的區域劃分動態變化的權重數值,根據變化的位置權重實時判斷障礙物位置信息來反映障礙物相對于電機車的位置變化情況。
井下運輸巷道是單一用途的巷道,根據國家相關安全標準,列車前方有車輛或視線有障礙時,應減速并發出警告信號。障礙物分類依據:①在電機車運輸過程中檢測到的人員和信號燈;②在放礦點,由于前車裝載的礦石可能掉落,軌道之間影響運輸的碎石;③雙向巷道有列車錯車。據此確定檢測的目標物為井下人員、相向列車、礦石。
在有軌電機車運行路徑上,將電機車前方區域進行劃分并設置權重,在ROI區域識別障礙物后,根據障礙物的距離信息加類型權重,提出建立的數學模型公式為

式中,W為障礙物位置信息權重參數;L為障礙物相對電機車的距離;P為障礙物分類權重;Q為障礙物相對于軌道的位置權重,閾值由具體環境和電機車性能設定,見表1。

規定變量W與設定閾值K的關系,對電機車響應判定:①位置權重參數W大于最大剎車閾值Km,立即剎車;②位置權重W介于最大剎車閾值Km和預警閾值Kn之間,鳴笛,減速;③位置權重參數W小于預警閾值Kn,判斷,預警。以最小剎車距離Lm=10 m為設定量,閾值計算公式及設定的計算值:

根據現場實驗和《金屬非金屬礦山安全規程》[11]要求,電機車最小剎車距離不超過80 m,運送人員時不超過10 m。攝像頭有效拍攝距離20 m,根據表2權重設計相關判斷標準進行數據處理。

對數學模型說明:
(1)計算公式為障礙物分類權重乘以障礙物位置權重除以障礙物距離,計算得到的W包含了障礙物位置距離和障礙物類型3類信息。
(2)閾值計算遵循的標準。最大剎車閾值Km表示軌道中間區域影響安全大小的礦石在電機車制動距離內,包含的情況是人員在該區域;最小預警閾值Kn是軌道兩側的人員在電機車最小剎車距離,預防人員突然進入軌道中間區域,準備立即剎車。
YOLO(You Only Look Once)是基于卷積神經網絡的物體檢測算法。與常規的R-CNN卷積神經網絡相比,YOLO算法是將目標檢測看作單一的回歸問題,只需在圖像上看一次(YOLO),就可以預測目標的分類和目標物的具體坐標,成為第一個實現實時目標物檢測的算法[12],對采集到的視頻中目標物檢測有著較高的速度和良好的準確率。YOLO是最早出現的單階段目標檢測算法,尤其是在小目標檢測上,相比較于傳統的R-CNN,YOLO網絡檢測效果良好[13]。Joseph Redmon等首次提出YOLO算法網絡結構,確定了YOLO網絡的檢測框架由回歸模型和相關性分類概率構成,直接對輸入圖像應用算法檢測并輸出類別、分類概率和對應的檢測框位置[14]。
YOLO算法的基本思路是將圖像分為s×s的網格,如果目標物的中心坐標位于某個格子內,那么該格子就負責對該物體進行檢測。同時格子向四周擴展,以確定物體的基本類型。預測框會給定目標物多個置信度參數,分類時取置信度參數中目標物的最大概率作為該目標的類別,權重參數的計算函數通過神經網絡的預訓練來確定。
實驗采用最新的目標物檢測算法YOLOv5對軌道障礙物進行檢測。在YOLOv5官方代碼中,給出的目標檢測網絡模型中一共有4個版本,分別是YOLOv5s、YOLO5m、YOLOv5l、YOLOv5x。 其 中 ,YOLOv5s模型是YOLOv5系列中深度最小的網絡,其訓練和測試的速度最快,對目標物的檢測更為迅速,但是精度低于其他模型。無人駕駛技術要求在設備聯動時對目標物檢測達到低時延、快響應的效果,井下的障礙物分類并不多,因此實驗采用的模型是YOLOv5s。
與YOLOv4相比,YOLOv5算法更為靈活,提升來自于幾個方面:
(1)自適應圖片尺寸的調整。常見的目標物檢測算法需要統一圖片的尺寸,然后再進入網絡中,圖片的尺寸調整會帶來黑邊。在YOLOv5代碼中作者對datasets.py的letterbox函數進行了修改,在原始圖像的四周自適應地添加最少的黑邊,使計算量減少。
(2)YOLOv5s的Focus結構。在YOLOv4中并沒有這個結構,其中比較關鍵的是針對圖像特征的切片操作。原始608×608×3的圖像輸入Focus結構,采用切片操作,先變成304×304×12的特征圖,再經過一次32個卷積核的卷積操作,最終變成304×304×32的圖像矩陣。
YOLOv5的優點是對小目標檢測的性能有所提升,在對低像素小目標檢測時,先對大分辨率圖片進行分割,變成1張張小圖,再進行檢測,這樣可以降低最小目標像素下限。在YOLOv3中,目標的寬或者高低于10像素就無法檢測,而在YOLOv5中,可以達到對8像素以上的目標進行檢測,性能大大提高。
YOLOv5在Neck層中采用FPN+PAN的結構[15],不同于YOLOv3的只融合了3個大小分別是13×13,26×26和52×52規模的FPN結構,YOLOv5的FPN層的后面還添加了1個自底向上的特征金字塔,其中包含2個PAN結構[16]。FPN結構是一種特征提取方式,在Faster R-CNN等網絡中也有用到,從底層圖像進行上卷積運算進行下采樣,再對高層特征圖下采樣融合。橫向連接下采樣和上采樣[17],利用底層定位細節信息。圖5展示了FPN+PAN的特征金字塔狀網絡結構。
YOLOv5與YOLOv4不同點在于,YOLOv4中只有主干網絡使用了CSP結構[18],而在YOLOv5模型中設計了2種CSP結構——CSP1_x和CSP2_x,分別應用在不同的結構中,CSP1_x主要是應用在主干網絡。

大多井下運輸巷道具有人車共用的環境特點,狹窄巷道人員的通行通過機器視覺的判斷,在電機車行駛過程中可以起到輔助避障的作用。人員位置按照相對電機車首尾的距離遠近以及在軌道線的中間或者兩側進行劃分,默認的轉向位置和交叉口檢測到人員歸屬鳴笛和減速的判斷等級。
3.3.1 訓練環境及訓練模型
本實驗使用的軟件是在Anaconda+Jupyter Notebook+pytorch 1.7.1+CUDA 11.0+pycocotools-win 2.0+python3的環境變量,顯卡GeForce RTX 2070。在對數據集預訓練時,傳統的神經網絡監督學習存在一個嚴重弊端:需要重新對圖片標注大量數據以滿足訓練要求,會造成數據的浪費[19]。遷移學習的方法不需要構建數據集,直接使用YOLO v5s權重模型提高訓練的效率。一方面,YOLOv5s是運算速度比較快的模型;另一方面,在井下電機車運行的過程中,檢測速度要求高,而目標檢測的精度不高。pycocotools(python api tools of COCO)作為訓練數據集,權重文件為yolov5s.pt,后期可以根據不同的需求,進一步地優化參數。實驗不同角度、不同距離下的人員快速的檢測效果,參數設置:
conf_thres=0.25,img_size=640,iou_thres=0.45,name='exp',project='runs/detect',source='data/images',weights='yolov5s.pt'.
3.3.2 實驗結果與分析
將測試集圖片輸入訓練好的模型中,從多人員、多角度檢測效果,神經網絡輸出目標物預測框和置信度,實驗結果如圖6。

假陽性率FPR作為定量的計算參數評價YOLOv5算法檢測質量的評判標準:

式中,TP(真陽性)、FP(假陽性)分別表示算法在圖像中檢測到的目標物、被算法誤認的背景對象。
本實驗還對比了在YOLOv5s、YOLOv5x模型和權重文件下檢測837幀圖片(表3),計算人員識別的準確率。在更大的訓練模型下,YOLOv5x運算時間變長,耗用的時間是YOLOv5s模型時間的2倍,但檢測準確率FPR提高了6.4%。作為對比的mask RCNN網絡不論從時間還是精度上都無法與YOLO算法相提并論,由于對單張圖片的處理時間長,更無法處理視頻。

井下電機車運輸基本按照“溜井放礦—運輸巷道—井下儲礦倉”固定的路線運行。在溜井放礦階段,從采場采掘的礦石在溜井放礦口通過振動放礦機裝入礦車。礦石由于下落過快和礦車溢礦等情況,落到軌道上,如果不及時判斷,后續礦車很容易產生碰撞,發生安全事故。對軌道中間礦石應用機器視覺識別可以減少巡檢人員的巡視距離,保障電機車運行安全。
3.4.1 訓練數據集構建
在YOLOv5使用的數據權重文件中沒有礦石的模型,無法遷移學習。應用YOLOv5網絡進行數據集構建如下:選用100張含有待檢測目標物的圖片,使用anaconda+labelme環境進行目標物的手動標注,構建YOLOv5訓練的數據集。標注后生成.json格式文件,包含了目標物的坐標信息和輪廓信息,標注目標物的目的是訓練神經網絡。
3.4.2 網絡訓練模型
神經網絡訓練:在python3環境下運行train.py程序,訓練網絡獲得權重文件和損失函數的下降趨勢圖,mAP學習率在迭代了500次后達到平衡,最終訓練得到weight權重文件。通過訓練結果可以看到,損失函數呈現下降趨勢,如圖7所示。

3.4.3 測試圖像訓練結果
選用與訓練數據集相同場景下的圖像作為測試圖像,測試效果如圖8。根據輸出結果看出,在訓練神經網絡獲得的權重文件后獲得了較好的識別效果,可以精確定位在軌道兩側和中間掉落的礦石障礙物。

(1)實驗研究了基于深度學習的圖像處理YOLOv5算法應用于軌道障礙物識別,從實驗結果分析,在對YOLOv5訓練迭代了1 000次后,檢測目標物的準確度可以達到80%以上,單張圖片的檢測時間僅有0.012 s,在更優的硬件設備下,YOLO算法完全可以滿足對視頻中障礙物的檢測。相比較于R-CNN卷積神經網絡,YOLOv5算法存在更佳的靈活性,可以對視頻文件中低于8像素值小目標物進行識別處理。
(2)軌道區域劃分障礙物權重的數學模型,簡化定量描述軌道不同區域內障礙物的位置,在電機車最小剎車距離不超過80 m,攝像頭有效拍攝距離40 m下,計算閾值和攝像頭有效檢測區域即可完成環境與設備之間的數據匹配,具有很高的實用性。
(3)研究深度學習的視覺檢測目標算法,可以更為準確和快速地進行區域劃分,并確定障礙物的種類和距離,為安全運輸提供輔助檢測,降低人眼識別的錯誤率,為基于圖像處理的井下電機車無人駕駛提供了方向性參考。