唐俊,李敬兆,石晴,劉陽,宋世現(xiàn),任成成
(1.安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001;2.淮北合眾機械設(shè)備有限公司,安徽 淮北 235000)
帶式輸送機是散狀物料智能運輸裝載過程中的主要設(shè)備,在運輸裝載過程中,散狀物料的堆積是造成帶式輸送機故障的主要原因。散裝物料不斷堆積,增加了輸送帶負(fù)荷,易造成輸送帶跑偏、撕裂,落料與輸送帶之間的摩擦易導(dǎo)致輸送帶劃傷,嚴(yán)重時會引發(fā)輸送帶火災(zāi)等事故。因此,實時、精準(zhǔn)檢測帶式輸送機上散狀物料堆積尤為重要[1]。
目前,常用的散裝物料堆積檢測方法有接觸式檢測和非接觸式檢測2 種。接觸式散狀物料堆積檢測方法主要是利用紅外對射傳感器、三軸加速度計等實現(xiàn)散狀物料堆積檢測。該類檢測方法存在以下缺點:①煤礦井下濕度大,傳感器易短路,導(dǎo)致誤觸發(fā)散狀物料堆積報警。② 傳感器安裝位置靠近輸送帶,容易產(chǎn)生機械摩擦,造成傳感器損壞、引起火花等。以機器視覺為主的非接觸式散狀物料堆積檢測方法克服了接觸式檢測方法的缺點。游磊等[2]提出了一種采用紅外結(jié)構(gòu)光技術(shù)快速重建煤流曲面實現(xiàn)堆煤檢測的方法,但該方法成本高,實際應(yīng)用規(guī)模小,在因粉塵造成圖像模糊的場景下檢測效果不理想。姜文濤等[3]提出將曲量場空間方法應(yīng)用到煤礦輸送帶堆煤識別中,該方法在強噪聲、圖像邊緣模糊等條件下對堆煤具有較好的識別效果,但其僅能對帶式輸送機末端落煤處進行堆煤檢測。張濤等[4]通過激光雷達采集堆煤邊緣并與正常堆煤邊緣數(shù)據(jù)對比來觸發(fā)堆煤報警,但該方法檢測速度慢,無法實現(xiàn)實時檢測。王瀚哲[5]通過對視頻信號進行二值化處理并計算圖像中黑色區(qū)域面積來進行堆煤檢測,該方法檢測精度較低,易導(dǎo)致誤判、漏判現(xiàn)象。彭利澤[6]基于YOLOv4 算法實現(xiàn)堆煤檢測,該方法雖然能夠達到較高的平均精度均值,但是模型內(nèi)存需求大,難以部署在嵌入式設(shè)備上實現(xiàn)堆煤檢測。
針對非接觸式散狀物料堆積檢測方法存在檢測速度慢、在圖像模糊場景下檢測精度低、深度學(xué)習(xí)模型內(nèi)存需求大等問題,本文提出了一種基于輕量化 Mask-RCNN(Mask Region-based Convolutional Neural Network,掩碼-區(qū)域卷積神經(jīng)網(wǎng)絡(luò))[7-8]的帶式輸送機上散狀物料堆積視頻實時檢測方法。通過設(shè)計輕量化Mask-RCNN 減少模型內(nèi)存需求,通過圖像去霧預(yù)處理來提升因粉塵造成圖像模糊場景下的檢測效果,添加邊緣損失函數(shù)來提高模型對邊緣信息的敏感度。
散狀物料堆積檢測模型架構(gòu)如圖1 所示。具體步驟:①原始圖像經(jīng)過暗通道先驗算法[9]去霧預(yù)處理后,輸入到采用MobileNetV2+特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)輕量化的主干網(wǎng)絡(luò)(Backbone)中進行特征提取,生成特征圖。② 區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)通過滑動窗口掃描特征圖生成候選區(qū)域。③RoIAlign 層采用雙線性插值算法改進RoIPooling 中的量化操作來處理浮點數(shù),統(tǒng)一定義興趣區(qū)域,固定特征圖大小。④ 全卷積網(wǎng)絡(luò)層(Fully Convolution Network,F(xiàn)CN)生成掩碼,為了提升分割掩碼精度,在掩碼分支中加入邊緣損失函數(shù)Ledge,融合目標(biāo)分類、邊界框回歸、語義信息得到實例分割圖像。⑤ 計算散狀物料堆積掩碼內(nèi)的像素值,當(dāng)超過預(yù)設(shè)閾值時判斷為散狀物料堆積。
圖1 散狀物料堆積檢測模型架構(gòu)Fig.1 Structure of detection model for bulk material accumulation
在煤炭、砂、水泥等散狀物料的運輸裝載過程中,空氣中的粉塵會引起圖像模糊,從而影響網(wǎng)絡(luò)的推理結(jié)果,本文采用暗通道先驗算法對采集到的圖像進行去霧預(yù)處理[10]。其流程如下:
(1)將霧靄形成模型定義為
式中:I(x)為實際拍攝到的霧靄圖像,x為圖像中像素點的位置;J(x)為 去霧圖像;t(x)為透射率;A為大氣光值。
(2)去霧操作:通過I(x) 得到J(x),在不添加任何限制的條件下將會得到無窮多個解,假定每個窗口內(nèi)透射率t為常數(shù),將式(1)進行變形得
式中:c為RGB 圖像3 個顏色通道的任意一個通道,c∈{R,G,B};Ic(x)為I(x)的 任意一個顏色通道;Jc(x)為J(x)的 任意一個顏色通道;Ac為A的任意一個顏色通道。
(3)對式(2)取2 次最小值運算得
式中:Ω(x)為以像素x為中心的一個窗口;y為圖像中 像素點位置;Ic(y) 為I(y)(I(y)為像 素點為y的霧靄圖像)的任意一個顏色通道;為圖像局部區(qū)域Ω(x)內(nèi)的透射率。
(4)暗通道先驗理論指出暗通道Jdark→0,Jc(x)是待求的無霧圖像,所以其暗通道符合先驗理論。
式中Jc(y) 為J(y)(J(y)為像素點為y的去霧圖像)的任意一個顏色通道。(x)
(5)利用暗通道計算出透射率 。
(6)借助暗通道圖,從有霧圖像中估算A:首先選取暗通道圖像亮度為前0.1%的像素,然后對應(yīng)原始圖像位置,尋找具有最高亮度點的值作為大氣光值A(chǔ)。
(7)代回式(1)去霧。
式中t0為透射率閾值,t0=0.1。
當(dāng)t0很小時,會導(dǎo)致J的值偏大,引起圖像局部過曝,因此通常設(shè)置一個較小的閾值t0=0.1來限制。
暗通道先驗去霧算法解決了由于粉塵導(dǎo)致的圖像細(xì)節(jié)模糊、對比度低等問題,達到了圖像增強的效果。經(jīng)過圖像去霧預(yù)處理,可提高圖像的邊緣特征,使模型的推理結(jié)果更為精準(zhǔn)。
傳統(tǒng)的Mask-RCNN 的主干網(wǎng)絡(luò)采用ResNet 網(wǎng)絡(luò)進行特征提取[11],通過訓(xùn)練得到的模型內(nèi)存需求大,無法滿足在嵌入式平臺上對散狀物料堆積進行實時檢測的需求,因此,本文采用MobileNetV2+FPN作為主干網(wǎng)絡(luò)進行特征提取,實現(xiàn)輕量化Mask-RCNN,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 輕量化Mask-RCNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Lightweight Mask-RCNN network structure
MobileNetV2 網(wǎng)絡(luò)的優(yōu)點是通過設(shè)計倒置殘差結(jié)構(gòu)和線性瓶頸模塊使模型具有更高的準(zhǔn)確率和更小內(nèi)存需求[12]。在ResNet 的殘差結(jié)構(gòu)中,先使用1×1 卷積實現(xiàn)降維,再通過3×3 卷積提取特征,最后使用1×1 卷積實現(xiàn)升維[13]。而在MobileNetV2 的倒置殘差結(jié)構(gòu)中,先使用1×1 卷積實現(xiàn)升維,再通過3×3 逐通道卷積提取特征,最后使用1×1 卷積實現(xiàn)降維。當(dāng)激活值非常大時,F(xiàn)loat16 的低精度無法精確描述大范圍的數(shù)值,從而造成精度損失,因此,將倒置殘差結(jié)構(gòu)中的1×1 升維卷積和3×3 逐通道卷積中的激活函數(shù)選擇為ReLU6,即將ReLU 函數(shù)的輸出限制為6,使其在Float16 的低精度嵌入式終端上也可以具有很好的數(shù)值分辨率。線性瓶頸結(jié)構(gòu)是指將高維空間投影到低維空間,縮減通道數(shù),如果輸出較高的維度,則信息損失較?。蝗绻敵鲚^低的維度,則信息損失較大,所以,在變換過程中,需要將低維信息投影到高維空間,再經(jīng)ReLU 激活函數(shù)重新投影回低維空間。在MobileNetV1 中逐通道卷積部分,由于ReLU 激活函數(shù)引起卷積核內(nèi)數(shù)值大部分為零,從而導(dǎo)致卷積核失效,因此在輸出維度較低時使用ReLU 激活函數(shù)會造成較大的信息損失,從而在投影卷積層選擇線性激活函數(shù)[14]。
FPN 主要解決了目標(biāo)檢測在處理多尺度變化問題時存在的不足[15]。低層的特征語義信息匱乏,但是具有精準(zhǔn)目標(biāo)位置;高層的特征語義信息豐富,但是目標(biāo)位置模糊。將網(wǎng)絡(luò)的連接方式進行簡單改動,保持原有模型計算量的同時,目標(biāo)檢測的精度得到了大幅提升,因此在自底向上的前向過程中,將特征圖大小相同的層定義為一個Stage,輸出每個Stage 最后一層所提取的特征,構(gòu)造特征金字塔結(jié)構(gòu)。為了利用底層定位細(xì)節(jié)信息,融合上采樣的結(jié)果和自底向上生成尺寸相同的特征圖實現(xiàn)自頂向下的上采樣過程,再通過Conv3×3 對每個融合結(jié)果進行卷積,生成與自底向上的卷積結(jié)果一一對應(yīng)的特征圖,從而消除了上采樣過程中產(chǎn)生的混疊效應(yīng)。
在煤礦井下等一些干擾因素較多的工作場景中,圖像對比度很低,對邊緣的提取會產(chǎn)生較大的擾動。為了進一步提高分割掩碼的精度,更精確地找到分割物體的邊緣,本文提出在傳統(tǒng)Mask-RCNN 的掩碼分支中添加邊緣損失的方法,使得模型在復(fù)雜環(huán)境下依舊可以找到散狀物料堆積區(qū)域。首先構(gòu)建目標(biāo)掩碼,將標(biāo)注的圖像轉(zhuǎn)換為散狀物料堆積的二值分割圖;然后將掩碼分支輸出的預(yù)測掩碼和目標(biāo)掩碼作為輸入,分別與Scharr 算子進行卷積操作,Scharr 算子相較于Sobel 算子的運算準(zhǔn)確度更高,效果更好,彌補了Sobel 算子對圖像中較弱的邊緣提取效果較差的缺點[16]。對卷積后的結(jié)果進行均方根誤差計算得到邊緣損失Ledge。最后得到改進后的損失函數(shù)L[17]。
Scharr 算子的卷積核為
式中:G1為 橫軸方向上的濾波系數(shù);G2為縱軸方向上的濾波系數(shù)。
邊緣損失函數(shù)Ledge為
式中:u為標(biāo)注的目標(biāo)邊緣;為預(yù)測的目標(biāo)邊緣。
改進后的損失函數(shù)L 為?u式中:Lcls為分類損失函數(shù);Lbox為定位損失函數(shù);Lmask為分割損失函數(shù),表示平均二值交叉熵?fù)p失;pi為以候選區(qū)域i為目標(biāo)的概率;為樣本的正負(fù),當(dāng)樣本為正時,=1,當(dāng)樣本為負(fù)時,=0;vi為正樣本Anchor 到預(yù)測區(qū)域的4 個平移縮放參數(shù);v*i為正樣本Anchor 到真實樣本的4 個平移縮放參數(shù);{a,b,w,h}為Anchor 的中心坐標(biāo)和寬、高;r為任意變量;zns為分辨率m×m區(qū)域內(nèi)像素(n,s) 的標(biāo)簽;為zns相同位置上屬于第k類的預(yù)測值。
散狀物料堆積檢測實驗平臺環(huán)境:操作系統(tǒng)為Windows 11,CPU 為Inter i7-11700F,GPU 為NVIDIA RTX 3060Ti,輕量化Mask-RCNN 使用Pytorch 進行模型搭建,初始學(xué)習(xí)率設(shè)置為0.001,Momentum 參數(shù)設(shè)置為0.09,權(quán)重衰減參數(shù)設(shè)置為10-4。
本文構(gòu)建了帶式輸送機上散狀物料堆積實例分割數(shù)據(jù)集。該數(shù)據(jù)集由1 095 張圖像組成,設(shè)置煤、砂、堆煤、堆砂、帶式輸送機的標(biāo)簽分別為coal,sand,coal pile,sand pile,belt conveyor,再按照COCO2017 數(shù)據(jù)集格式,通過LabelImg 軟件對該數(shù)據(jù)集中的圖像進行標(biāo)注。隨機選取876 張圖像作為數(shù)據(jù)集,219 張圖像作為測試集。
實例分割算法性能的評估指標(biāo)有[18]精確率P、召回率R、平均精度PA、平均精度均值PmA。
式中:TP為模型預(yù)測和實際均為正樣本數(shù);FP為被模型預(yù)測為正類的負(fù)樣本數(shù);FN為被模型預(yù)測為負(fù)類的正樣本數(shù);Rg為 目標(biāo)類別為g的召回率;Pg為目標(biāo)類別為g的精確率。
為了檢驗輕量化Mask-RCNN 對散狀物料實例分割的效果,使用主干網(wǎng)絡(luò)ResNet101 和MobileNetV2進行特征提取。
暗通道先驗算法去霧預(yù)處理前后的對比如圖3所示,可以看出經(jīng)過暗通道先驗算法預(yù)處理有效解決了粉塵引起圖像的霧化問題,暗通道先驗算法去霧預(yù)處理前后平均精度均值對比見表1。
圖3 暗通道先驗算法去霧預(yù)處理前后的圖像對比Fig.3 Comparison of images before and after defogging preprocessing by the dark channel prior algorithm
表1 暗通道先驗算法去霧預(yù)處理前后圖像的 PmA對比Table 1 Comparison of PmA values of images before and after defogging preprocessing by dark channel prior algorithm %
從表1 可看出,在煤礦井下復(fù)雜環(huán)境中,經(jīng)過暗通道先驗算法對圖像去霧預(yù)處理后,主干網(wǎng)絡(luò)使用ResNet101 和MobileNetV2 的PmA均大幅提升。
對219 張圖像使用不同主干網(wǎng)絡(luò)進行實例分割,結(jié)果見表2,其中AP50表示預(yù)測框與真實框的交并比(Intersection of Union,IoU)為0.50 的平均精度,AP75 表示IoU 為0.75 時的平均精度。以ResNet101為主干網(wǎng)絡(luò)所提取的特征,其平均精度PA在不同的IoU 下幾乎持平于MobileNetV2 的結(jié)果。而以ResNet101 為主干網(wǎng)絡(luò)的平均檢測時間為2.48 s,模型內(nèi)存為276 MB,以MobileNetV2 為主干網(wǎng)絡(luò)的平均檢測時間為0.56 s,模型內(nèi)存為54 MB,由此可以看出輕量化Mask-RCNN 訓(xùn)練得到的模型更加靈活,檢測效率更高,便于移植在嵌入式平臺上。
表2 不同主干網(wǎng)絡(luò)上改進前后實例分割結(jié)果對比Table 2 Comparison of instance segmentation results before and after improvement on different Backbones
通過本文改進的損失函數(shù)曲線判斷當(dāng)前迭代輪次內(nèi)的模型訓(xùn)練狀態(tài),如圖4 所示,網(wǎng)絡(luò)訓(xùn)練到250 次時,各損失函數(shù)曲線的波動較小,說明網(wǎng)絡(luò)達到較好的穩(wěn)定性。Sobel 算子與Scharr 算子對堆煤邊緣提取對比如圖5 所示,其中Scharr 算子對邊緣信息的敏感度更強。
圖4 損失函數(shù)曲線Fig.4 Loss function curves
圖5 Sobel 算子與Scharr 算子的堆煤邊緣提取結(jié)果Fig.5 Edge extraction results of coal pile of Sobel operator and Scharr operator
從本文構(gòu)建的散狀物料實例分割測試集中隨機選取2 張原始圖像,邊緣損失函數(shù)添加前后散裝物料堆積檢測結(jié)果如圖6 所示,采用不同主干網(wǎng)絡(luò)進行特征提取后的散狀物料堆積檢測對比如圖7所示。
圖6 是否添加邊緣損失函數(shù)散裝物料堆積檢測對比Fig.6 Comparison of bulk material accumulation detection whether to add edge loss function
圖7 不同主干網(wǎng)絡(luò)散裝物料堆積檢測對比Fig.7 Comparison of bulk material accumulation detection in different backbone networks
從圖6 可看出,未添加邊緣損失函數(shù)的散狀物料堆積檢測結(jié)果中誤將帶式輸送機托輥分割為散狀物料堆積,存在誤檢現(xiàn)象。將圖像輸入到添加邊緣損失函數(shù)訓(xùn)練得到的模型中,僅分割出帶式輸送機上的煤,符合真實情況。因此,添加邊緣損失函數(shù)能更為精準(zhǔn)地分割帶式輸送機上散狀物料堆積。
從圖7 可看出,在使用不同主干網(wǎng)絡(luò)進行特征提取時均可以檢測到散裝物料堆積,而以ResNet50為主干網(wǎng)絡(luò)的模型未能很好地將散裝物料堆積的邊角進行分割;以ResNet101 為主干網(wǎng)絡(luò)的模型將顏色相近的草地分割為散裝物料堆積,因此,在使用ResNet50 和ResNet101 作為主干網(wǎng)絡(luò)時可能會增加誤檢、漏檢發(fā)生的概率。以MobileNetV2 為主干網(wǎng)絡(luò)的模型可分割出散裝物料堆積區(qū)域,在減少模型內(nèi)存需求的同時分割結(jié)果更貼合實際場景。
針對現(xiàn)有帶式輸送機上煤炭、砂、水泥等非接觸式散狀物料堆積檢測方法易受環(huán)境中粉塵影響導(dǎo)致誤檢和漏檢現(xiàn)象、深度學(xué)習(xí)模型內(nèi)存需求大、檢測精度低等問題,提出了一種基于輕量化Mask-RCNN的帶式輸送機上散裝物料堆積視頻實時檢測方法。通過暗通道先驗去霧算法對圖像進行預(yù)處理,提升了模型推理結(jié)果的準(zhǔn)確率;使用MobileNetV2+FPN輕量化主干網(wǎng)絡(luò),使得模型大小降低到以ResNet101為主干網(wǎng)絡(luò)的模型的1/5;結(jié)合Scharr 算子構(gòu)造了邊緣損失函數(shù),提高了模型對邊緣信息的敏感度。帶式輸送機散狀物料堆積實例分割數(shù)據(jù)集上的實驗表明,該方法在經(jīng)過去霧預(yù)處理后的平均精度均值提高了8%,達到了87.3%;模型內(nèi)存為54 MB;平均檢測時間縮短為以ResNet101 為主干網(wǎng)絡(luò)的模型的1/2,檢測精度可達91.8%。