吳江偉,南柄飛
(北京天瑪智控科技股份有限公司,北京 101300)
隨著煤礦智能化無人開采進程的縱深推進,構(gòu)建AI 視覺感知、自動決策、設(shè)備協(xié)同控制三大環(huán)節(jié)一體化的生產(chǎn)管理系統(tǒng)已經(jīng)成為業(yè)界共識。在井下工作面中,利用刮板輸送機上煤流狀態(tài)的視覺感知結(jié)果,聯(lián)動控制采煤機和刮板輸送機進行生產(chǎn)作業(yè)管理,從而實現(xiàn)工作面煤流負載平衡,不僅可以降低工作面堆煤事件發(fā)生率,提升工作面自動化生產(chǎn)率,同時可以降低井下能源消耗。
目前礦井煤流狀態(tài)識別方法大多針對帶式輸送機場景,其實現(xiàn)方式大致分為兩類。第一類是基于圖像的方法,如文獻[1-2]通過傳統(tǒng)圖像處理方法獲取帶式輸送機輪廓及煤料邊界,并由此計算煤料橫截面積和體積,但該方法嚴重依賴于邊緣檢測方法,受光照等環(huán)境因素影響較大,精度和穩(wěn)定性差。文獻[3]將圖像中煤流量大小劃分為5 個級別并利用深度學習模型直接對圖像進行分類,該方法邏輯簡單、部署方便,但對全圖進行操作時沒有排除非煤流區(qū)域的影響,且該方法只對單幅圖像進行分類,并沒有對煤流的時序特征進行建模。第二類是基于特殊傳感裝置(如超聲波傳感器、激光掃描儀等[4-7])的方法,通過計算煤料截面積進而獲得煤料體積。此類方法中雖然也可能用到圖像信息,但關(guān)鍵在于其引入的硬件設(shè)備能夠給算法增加諸如深度、超聲回波、煤流速度、激光條紋等信號,使得煤流量計算結(jié)果更加精確;但此類方法的問題在于處理的數(shù)據(jù)量較大,相關(guān)算法模型實時性、可靠性較差,且硬件設(shè)備大幅增加了成本開銷。
然而,上述方法無法有效應(yīng)用于工作面刮板輸送機場景中的煤流狀態(tài)識別,這是因為工作面刮板輸送機與帶式輸送機場景存在巨大差異。①帶式輸送機有固定外形且運輸?shù)拿毫辖?jīng)過破碎后形狀相對規(guī)則、大小相對均衡,這些場景特征使得準確計算煤料橫截面積及煤流體積成為可能;而在工作面刮板輸送機場景中,刮板輸送機姿態(tài)易受地質(zhì)條件影響且煤料形狀不規(guī)則、大小差異巨大,導致無法準確計算煤料橫截面積,煤料間存在的空隙導致無法簡單根據(jù)體積公式獲得煤流體積。② 帶式輸送機場景中相機、燈具等設(shè)備的安裝條件相對較好,可將其安裝在理想位置使得算法魯棒性更好;而在空間局促的工作面刮板輸送機場景中,由于需要考慮相機、燈具等設(shè)備是否會與滾筒、采煤機、護幫板發(fā)生干涉,造成其安裝位置受限甚至無法安裝,進而導致攝像儀視角、可見度等無法滿足已有算法要求。③在生產(chǎn)過程中,工作面刮板輸送機場景中存在高粉塵、采煤機遮擋、刮板輸送機位置改變等不利因素,影響采集數(shù)據(jù)的質(zhì)量,導致算法識別精度下降。
針對工作面刮板輸送機場景,本文提出了一種基于時序視覺特征的煤流狀態(tài)識別方法。該方法具有以下優(yōu)勢:①無需計算準確煤量,用空載煤流、正常煤流和飽和煤流3 種狀態(tài)描述刮板輸送機上煤量大小,在滿足應(yīng)用要求的前提下大大降低了算法復雜度。② 僅需以現(xiàn)有工作面中部署的攝像儀作為數(shù)據(jù)采集設(shè)備,避免了設(shè)備安裝受限問題;同時,只需處理圖像數(shù)據(jù),數(shù)據(jù)處理量較小,具有很好的實時性。③采用深度學習語義分割模型確定煤流區(qū)域,有效緩解傳統(tǒng)方法易受光照、粉塵影響導致算法精度下降的問題;同時,能夠精確定位煤流區(qū)域,排除無關(guān)圖像區(qū)域影響。④ 采用深度學習動作識別模型進行煤流特征建模,不僅能夠?qū)W習到煤流的紋理特征,而且能夠?qū)W習到煤流的時序特征。
基于時序視覺特征的刮板輸送機煤流狀態(tài)識別方法原理如圖1 所示。針對工作面煤流視頻幀圖像,首先利用深度學習語義分割模型獲得粗略煤流區(qū)域,在此基礎(chǔ)上通過線性擬合方法定位精細煤流區(qū)域坐標并裁剪出煤流圖像;然后將煤流圖像按視頻時序排列形成煤流圖像序列;最后通過動作識別模型對煤流圖像序列進行特征建模,獲得煤流狀態(tài)識別結(jié)果。
圖1 基于時序視覺特征的刮板輸送機煤流狀態(tài)識別方法原理Fig.1 Principle of method for recognizing coal flow status of scraper conveyor based on temporal visual features
刮板輸送機煤流圖像提取整體流程:針對視頻幀圖像進行圖像語義分割,獲得線纜槽邊緣;針對線纜槽邊緣進行曲線擬合;根據(jù)視頻幀圖像中刮板輸送機特點及線纜槽邊緣擬合曲線獲取煤流區(qū)域邊界;從視頻幀圖像中裁剪出煤流區(qū)域形成煤流圖像。
針對煤流視頻幀圖像進行語義分割的主要目的:①獲取視頻幀圖像中局部煤流區(qū)域,從而排除大量非煤流區(qū)域圖像對后續(xù)動作識別模型的影響,使得煤流狀態(tài)識別結(jié)果更加準確。② 受限于安裝條件,監(jiān)控攝像儀往往只能安裝在液壓支架頂板上,當支架頂板與刮板輸送機相對位置不變時,煤流區(qū)域處于圖像中的固定位置;然而,采煤過程中頻繁性推刮板輸送機動作使得支架頂板與刮板輸送機相對位置發(fā)生變化,導致煤流區(qū)域在圖像中的位置也隨之發(fā)生變化。因此,需要利用語義分割結(jié)果動態(tài)定位煤流區(qū)域。
語義分割是圖像分割的一個分支,可實現(xiàn)圖像中不同語義區(qū)域的分割。經(jīng)典的深度學習語義分割模型有SegNet[8],Mask R-CNN[9],U-Net[10],DeepLab系列[11-13]等。本文采用DeepLabV3+語義分割模型,如圖2 所示,DeepLabV3+語義分割模型將空間金字塔池化模塊(Atrous Spatial Pyramid Pooling,ASPP)與編解碼結(jié)構(gòu)相結(jié)合,既能夠使模型獲得多尺度上下文信息,又能夠保證圖像分割結(jié)果中物體的邊緣分割更加準確。同時,DeepLabV3+語義分割模型采用了Xception[14]框架,使得模型分割處理速度更快,滿足實際應(yīng)用的實時性要求。
圖2 DeepLabV3+語義分割模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of DeepLabV3+semantic segmentation model
如圖2 中DeepLabV3+語義分割模型輸出的分割結(jié)果所示,本文將視頻幀圖像以線纜槽底部為界劃分為2 個部分:①線纜槽底部到煤壁為粗略煤流區(qū)域,是后續(xù)動作識別模型的候選輸入數(shù)據(jù)。② 線纜槽底部到支架為非煤流區(qū)域。
由于語義分割獲得的粗略煤流區(qū)域中仍包含較多非煤流區(qū)域(如煤壁、浮煤等),且該分割區(qū)域形狀不規(guī)則,所以不能直接作為后續(xù)動作識別模型的輸入圖像。為獲得精細煤流區(qū)域,需確定煤流區(qū)域的4 個邊界,選取原則為盡可能包含更多煤流區(qū)域且排除非煤流區(qū)域。本文直接選取圖像高度的一半處作為上邊界,選取圖像的下邊界作為煤流區(qū)域下邊界。對于右邊界,本文先提取線纜槽邊界點并對其進行分段直線擬合,獲得擬合曲線,然后取擬合曲線與視頻幀圖像下邊緣交點橫坐標作為煤流區(qū)域右邊界。分段直線擬合計算公式為
式中:為求解參數(shù)結(jié)果;為待求參數(shù)集合;為待求直線方程;xi和yi分別為線纜槽邊界點中第i(i=1,2,···,n,n為線纜槽邊界點總數(shù))個點的橫坐標和縱坐標。
對于左邊界,由于刮板輸送機在圖像中大小不會發(fā)生變化,所以當右邊界確定時,可通過線性擬合方法根據(jù)右邊界值預(yù)測出左邊界值,計算公式為
式中:xl為煤流區(qū)域左邊界值;k為線性系數(shù),本文對推刮板輸送機動作前后2 種情況分別進行線性擬合,推刮板輸送機動作前k取0.57,推刮板輸送機動作后k取0.4;xr為煤流區(qū)域右邊界值。
通常煤流實際是指煤料隨刮板輸送機運動而形成的流體,煤量由刮板輸送機上煤料橫截面積與刮板輸送機長度積分獲得:
式中:V為待求煤量;L為刮板輸送機長度;ρ為煤料密度;F(x)為刮板輸送機上x處的煤料橫截面積。
這種方法要求精確計算刮板輸送機上煤料橫截面積。但在工作面刮板輸送機場景下精確計算煤料橫截面積面臨極大挑戰(zhàn)。因此,本文采用一種新的方法:煤量可由刮板輸送機上某一點在某一時刻的煤量與時間積分獲得:
式中:T為時間;G(t)為刮板輸送機某一位置在t時刻的瞬時煤量。
與式(3)相比,式(4)雖然不需要計算煤料橫截面積,但其中的瞬時煤量G(t)同樣無法計算。為避免精確煤量計算,本文將煤量離散化,分為空載煤流、正常煤流及飽和煤流3 個狀態(tài)。同時,為避免煤流狀態(tài)隨著刮板輸送機上煤料分布變化而頻繁變化,對一個時間段內(nèi)的煤流狀態(tài)進行融合:
式中:S為t1到tT時刻刮板輸送機上煤流狀態(tài);g(t)為t時刻刮板輸送機上煤流狀態(tài),g(t)=0,1,2,分別表示空載煤流、正常煤流、飽和煤流狀態(tài);H(g(t1),g(t2),···,g(tT))為對t1到tT時刻的煤流狀態(tài)進行融合操作。
如式(5)所示,求解刮板輸送機煤流狀態(tài)就是求解函數(shù)H(·)。求解函數(shù)H(·)可采用多種方法,最簡單的是加權(quán)平均法,即先求得各個時間點煤流狀態(tài),然后對其進行加權(quán)平均,但該方法忽略了鄰近煤流狀態(tài)在時序上的內(nèi)在聯(lián)系。因此,本文采用動作識別模型直接對不同煤流狀態(tài)圖像序列的時空特征進行建模。
動作識別通常是指通過某種算法識別出視頻中人的行為,并對其進行分類,其本質(zhì)是對視頻圖像序列中呈現(xiàn)的行為模式進行建模。經(jīng)典的動作識別模型有TSN(Temporal Segment Networks)[15],TSM(Temporal Shift Module)[16],SlowFast(SlowFast Networks)[17],I3D(Two-Stream Inflated 3D convNet)[18],R(2+1)D(Residual Spatial and Temporal Factorized Block)[19],C3D(Convolutional 3D)[20],TimeSformer(Time-Space Transformer)[21]等。其中TSN,TSM 使用2D 卷積用于提取圖像特征,并通過光流、時序漂移等方法補充時序信息;SlowFast 通過快慢2 路視頻流分別對時序信息和空間信息進行建模;I3D,R(2+1)D,C3D 則使用3D 卷積直接對視頻進行時空特征建模,有更強的時空特征表示能力;TimeSformer采用Transformer 結(jié)構(gòu)完成特征提取,模型識別準確率優(yōu)于前三者,但模型處理耗時較大,無法滿足實時性要求。
本文采用C3D 動作識別模型對煤流視頻幀圖像序列進行建模和煤流狀態(tài)分類,模型結(jié)構(gòu)如圖3 所示。將煤流圖像按時序組成新的圖像序列,再將圖像序列輸入到C3D 動作識別模型中,從而計算并輸出煤流狀態(tài)識別結(jié)果。
圖3 C3D 動作識別模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure of convolutional 3D action recognition model
在實際使用過程中,由于工作面工況場景中存在導致監(jiān)控攝像儀無法觀測到煤流的情況,為使模型能力更加完備且符合現(xiàn)場實際情況,本文在空載煤流、正常煤流及飽和煤流3 種狀態(tài)之外還增加了“未檢測煤流”,用于表示視頻幀圖像中未出現(xiàn)煤流的情況。另外,由于煤流狀態(tài)識別任務(wù)相對比較簡單,所以需要減少模型參數(shù)量,以防止模型過擬合情況發(fā)生。本文一方面將原始C3D 動作識別模型主干網(wǎng)絡(luò)中最后2 個全連接層FC6,F(xiàn)C7 維度從原來的4 096 修改為2 048,從而極大地減少模型參數(shù)量;另一方面,在全連接層FC7 之后添加自適應(yīng)平均池化層(Avg Pool),將最終特征層縮小為1×1×1,以擴大感受野,并進一步減少了模型參數(shù)量。
4.1.1 硬件設(shè)備
實驗所用設(shè)備配置:操作系統(tǒng),Ubuntu20.04;顯卡,NVIDIA GeForce RTX 3 090 ;CPU,Intel(R)Xeon(R)Gold 6258R 2.7 GHz;CUDA,版本11.4;TensorRT,版本8.2;訓練框架,PyTorch 1.10。
4.1.2 數(shù)據(jù)集
實驗所用數(shù)據(jù)來自國內(nèi)某煤礦井下工作面視頻監(jiān)控系統(tǒng),視頻幀速率為25 幀/s,圖像分辨率為1 280×720。
對于語義分割,本文人工采集、篩選并標注圖像總數(shù)量為1 867 幅,其中訓練集1 767 幅,測試集100 幅;每幅樣本圖像標注2 個類別:煤流區(qū)域、非煤流區(qū)域。
在C3D 動作識別模型訓練構(gòu)建階段,本文先采集工作面煤流視頻數(shù)據(jù)并進行人工篩選,獲得共5.3 h的訓練視頻數(shù)據(jù),對篩選視頻進行4 個類別標注,然后按3 幀/s 的速率對訓練視頻數(shù)據(jù)進行采樣,形成圖像序列。對于較長圖像序列,將其切分為多個片段,每段長度為32 幅圖像;對于較短圖像序列,用序列尾部圖像進行補齊,最終長度為16 幅圖像。最終訓練數(shù)據(jù)包含1 728 個視頻片段,總共58 568 幅樣本圖像。
在C3D 動作識別模型測試階段,本文采集工作面采煤工況條件下1 刀的煤流視頻數(shù)據(jù),時長約52 min,按1 s/段對視頻進行分段,總共3 138 個片段,對每個片段煤流狀態(tài)進行標注并形成最終測試樣本數(shù)據(jù)。
4.1.3 訓練參數(shù)設(shè)置
DeepLabV3+語義分割模型的主要訓練參數(shù):模型輸入圖像尺寸為513×513;初始學習率為0.02,學習率按多項式曲線進行下降,最小學習率為10-6;使用隨機梯度下降(Stochastic Gradient Descent,SGD)優(yōu)化器,設(shè)置動量參數(shù)為0.9,權(quán)重衰減因子為10-4;設(shè)置批處理大小為32,共迭代6 000 次。
C3D 動作識別模型的主要訓練參數(shù):模型輸入視頻片段長度為16,圖像尺寸為112×112;初始學習率為0.002,學習率采用階梯下降方法,分別在第30,60 輪下降為原來的1/10;使用SGD 優(yōu)化器,設(shè)置動量參數(shù)為0.9,權(quán)重衰減因子為10-4;設(shè)置批處理大小為96,共訓練80 輪。
煤流圖像提取結(jié)果如圖4 所示,其中淡黃色和淡藍色2 個區(qū)域為語義分割結(jié)果,紅色曲線為線纜槽底部邊界經(jīng)過分段直線擬合后結(jié)果,深藍色點表示待裁剪煤流圖像的4 個頂點。
圖4 煤流圖像提取結(jié)果Fig.4 Coal flow image extraction results
從圖4(a)可看出,在液壓支架推刮板輸送機動作后,本文方法能夠準確定位線纜槽邊緣并獲取煤流區(qū)域;從圖4(b)可看出,煤流視頻幀圖像中存在大量粉塵,導致圖像中物體紋理模糊,在此情況下本文方法仍能準確定位線纜槽邊緣并獲取煤流區(qū)域;從圖4(c)可看出,在采煤機進入監(jiān)控視野并遮擋住刮板輸送機時,雖然無法直接觀察到煤流區(qū)域,但通過采煤機邊緣同樣能夠獲取煤流區(qū)域;從4(d)可看出,與前3 幅圖像相比,該圖中刮板輸送機和煤流區(qū)域在圖像中位置發(fā)生明顯變化,在此情況下本文方法同樣能夠自適應(yīng)地準確獲取煤流區(qū)域。這表明本文方法能夠針對工作面復雜工況場景準確定位煤流區(qū)域。
為驗證DeepLabV3+語義分割模型的準確性,在測試集上計算分割結(jié)果與真實值的IoU(Intersection over Union,交并比):
式中:Agt為真實區(qū)域;Apred為預(yù)測區(qū)域。
IoU 計算結(jié)果:線纜槽底部到煤壁區(qū)域IoU 為0.976,線纜槽底部到支架區(qū)域IoU 為0.946,平均IoU 為0.961。這表明DeepLabV3+語義分割模型的預(yù)測準確率較高,能夠準確分割出煤流區(qū)域。
為驗證煤流圖像裁剪框的準確性,需要標注理想裁剪框并將其與預(yù)測裁剪框進行比較,然后計算2 個裁剪框的IoU,但由于理想裁剪框沒有明確標準,所以無法實現(xiàn)。裁剪框邊界中最重要的是右邊界的確定,即線纜槽底部邊緣與圖像下邊緣的交點橫坐標。因此本文對每幅測試圖像進行右邊界標注并將其與預(yù)測的右邊界進行比較,計算得到平均偏差為8.4 像素(圖像寬度的0.66%),標準差為3.3 像素。表明誤差較小,不會導致煤流圖像缺失關(guān)鍵區(qū)域。
刮板輸送機煤流狀態(tài)識別結(jié)果如圖5 所示。圖5(a)由于刮板輸送機被采煤機遮擋導致煤流不可見,所以顯示未檢測煤流狀態(tài);圖5(b)為空載煤流狀態(tài),其中左圖為無粉塵情況,右圖為存在粉塵干擾情況;圖5(c)為正常煤流狀態(tài),左圖為液壓支架推刮板輸送機動作后情況,右圖為液壓支架推刮板輸送機動作前情況;圖5(d)為飽和煤流狀態(tài)。
圖5 刮板輸送機煤流狀態(tài)識別結(jié)果Fig.5 Recognition results of coal flow status of scraper conveyor
在采煤作業(yè)1 刀52 min 的3 138 個測試視頻片段中,煤流狀態(tài)平均識別準確率為92.73%,其中未檢測煤流狀態(tài)識別準確率為99.05%,空載煤流狀態(tài)識別準確率為96.13%,正常煤流狀態(tài)識別準確率為90.04%,飽和煤流狀態(tài)識別準確率為90.30%。
為提升整體處理速度,將PyTorch 訓練生成的模型使用TensorRT 進行轉(zhuǎn)換。對DeepLabV3+語義分割模型和C3D 動作識別模型分別進行轉(zhuǎn)換,轉(zhuǎn)換前后模型推理耗時對比見表1??煽闯觯篋eepLabV3+語義分割模型推理耗時從39.5 ms 下降到14.1 ms,處理速度提升1.8 倍;C3D 動作識別模型推理耗時從15.1 ms 下降到5.7 ms,處理速度提升1.6 倍。經(jīng)過TensorRT 加速后,整體處理速度為42.7 幀/s,滿足實時處理要求。
表1 模型加速前后推理耗時對比Table 1 Comparison of inference time before and after model accelerationms
1)基于圖像語義分割的刮板輸送機煤流圖像提取方法能夠準確定位煤流區(qū)域并獲取煤流圖像,為后續(xù)煤流狀態(tài)自動識別提供可靠數(shù)據(jù)輸入。針對高粉塵、采煤機遮擋、刮板輸送機位置改變等不同工況,該方法都能夠自適應(yīng)獲得煤流圖像。
2)C3D 動作識別模型能夠有效提取煤流圖像視覺特征和圖像序列的時序特征,并進行準確表征,實現(xiàn)煤流狀態(tài)自動識別,煤流狀態(tài)平均識別準確率達92.73%,滿足工作面刮板輸送機煤流狀態(tài)智能監(jiān)測實際應(yīng)用需求。
3)針對工程化部署應(yīng)用,利用TensorRT 對模型進行加速處理,整體處理速度達42.7 幀/s,滿足現(xiàn)場工程化應(yīng)用的實時性要求。