李現國,劉 曉,馮欣欣
(1.天津工業大學 電子與信息工程學院,天津 300387;2.天津工業大學 天津市光電檢測技術與系統重點實驗室,天津 300387)
除鐵器是一種產生強大磁場吸引力的設備,能將混雜在非磁性物料中的鐵磁性雜質清除,按磁力來源不同,分為電磁除鐵器和永磁除鐵器兩類。其中永磁除鐵器一般由永磁磁芯、棄鐵輸送帶、減速電機、框架、滾筒等部分組成,配合帶式輸送機使用,因其能夠連續不斷地自動卸鐵,而且磁場恒定、無冷熱態變化、故障點少,故被廣泛應用于礦山、選煤廠、港口、電廠、冶金、化工等工業領域[1]。棄鐵輸送帶是永磁除鐵器中的消耗品,經常因吸附上的尖銳物體鑿穿輸送帶、輸送帶跑偏、輸送帶內置的鋼絲繩斷裂等原因,出現斷裂[2-3],若得不到及時處理會造成設備損壞、堆煤料、停產等事故,比如帶式輸送機輸煤過程中,常因其導致堆煤事故而停工。
輸送帶斷裂檢測的傳統技術有機械檢測法、聲光檢測法和電磁檢測法,它們均存在檢測裝置易損壞、安裝復雜、可靠性和準確性差的缺陷[3-9]。近年來隨著機器視覺的快速發展,基于該技術的輸送帶斷裂檢測技術及系統是當前研究和應用的重點。郭啟皇等[10]和甘福寶等[11],分別提出了基于Otsu算法的輸送帶斷裂檢測方法;Yang等[12]提出了輸送帶撕裂紅外光譜成像檢測預警方法。這類方法都使用常規的圖像處理技術進行故障檢測,算法參數設置復雜,檢測的魯棒性和準確性不高。
Alport等[13]提出了基于小波和人工神經網絡的鋼絲繩芯輸送帶、接頭及其故障的檢測算法,該算法對圖像質量要求較高,并且算法的準確性有待提高。Liu等[14]提出了一種基于深度卷積網絡的輸送帶邊緣檢測方法,解決了傳統的機器視覺方法檢測輸送帶邊緣的準確性問題,但未涉及輸送帶的斷裂檢測。
基于深度學習的特征自動提取技術已被廣泛應用,在視頻檢測方面具有顯著的效果[15-17]。本文針對現有的永磁除鐵器棄鐵輸送帶斷裂檢測方法不精確、檢測裝置易損壞、安裝復雜等問題,提出一種基于遷移學習的方法,并將該方法部署到英偉達Jetson TX2嵌入式開發平臺上,設計一種永磁除鐵器棄鐵輸送帶斷裂檢測系統,以提高故障檢測的準確性、實用性和有效性。
圖1 所示為在輸送煤炭的工作環境下,某一永磁除鐵器監控視頻中某時刻的監測圖像。

圖1 永磁除鐵器監測圖像Fig.1 Monitoring image of permanent magnetic iron remover
對本文的研究來說,永磁除鐵器監控視頻中,除了棄鐵輸送帶及其相關區域,剩余的部分都是無關特征,可稱為干擾信息。這種無關特征會加大深度學習網絡訓練的難度,導致學習效果達不到預期目標。本文采用OpenCV中的模板匹配技術選取棄鐵輸送帶的特征圖像,從而得到源圖像中的感興趣區域(ROI區域)。
模板匹配是把不同相機或同一相機在不同時間、不同成像條件下對同一景物獲取的2幅或多幅圖像在空間上對準,或根據已知模式到另一幅圖中尋找相應模式或在同一幅圖像中尋找相同模式的處理方法[18]。設模板圖像矩陣為T(x,y)、源圖像矩陣為I(x,y)、計算得到的匹配結果矩陣為R(x,y),OpenCV中提供的6種模板匹配算法的計算公式為:
(1)平方差匹配法

(2)歸一化平方差匹配法
R(x,y)=

(3)相關匹配法

(4)歸一化相關匹配法
R(x,y)=

(5)相關系數匹配法

(6)歸一化相關系數匹配法

對于平方差匹配法和歸一化平方差匹配法,越小的數值具有越高的匹配結果;而其余的方法,數值越大匹配效果越好。如果模板圖像的大小為w×h,使用OpenCV中minMaxLoc()函數查找R(x,y)的最大值或者最小值,將其位置作為源圖像中匹配效果最好的矩形區域的左上角,并以(w,h)作為矩形的寬度和高度,得到匹配后的圖像。
本文通過實驗確定了匹配效果最好的歸一化平方差匹配法,并用該方法確定了匹配的位置和區域。圖2為使用該方法提取的圖1的特征圖像。

圖2 使用模板匹配提取的圖1的特征圖像Fig.2 Feature image of Fig.1 extracted after template matching
永磁除鐵器監控視頻圖像樣本單一,并且監控視頻中棄鐵輸送帶斷裂過程較短,為提高深度學習網絡的學習效果,需要更多的數據。本文通過對棄鐵輸送帶的圖片進行隨機旋轉、裁剪、亮度變換來擴充數據量,達到數據增強的效果。這樣可以讓同一張圖像在輸入到網絡時都會有不同的差異,使模型不容易因陷入過擬合而記住單一圖像的特點;另外在網絡遇到新的圖像時,能提升圖像識別的準確性。這樣訓練出的模型具有更高的魯棒性。原圖像和數據增強后的圖像對比如圖3所示。

圖3 原圖像和數據增強后的圖像對比Fig.3 Comparison between original image and data-enhanced image
殘差網絡(residual neural network,ResNet)通過在網絡的低層與高層之間添加直通的殘差單元,解決了網絡層數很深時卷積網絡出現的梯度消失或者爆炸問題[19]。ImageNet數據集具有上百萬張分屬于1 000個類別的224×224規格的圖片;ResNet在ImageNet測試集的分類中取得了96.43%的準確度,并且根據不同的數據規模ResNet有ResNet-18、ResNet-34、ResNet-50、ResNet-101和ResNet-152等多種版本。本文的數據規模和分類類別數目上遠不及ImagNet數據集,并且考慮到Jetson TX2開發平臺的運算能力對視頻檢測實時性的影響,所以選擇ResNet18作為網絡模型,其網絡結構如圖4所示。

圖4 ResNet18結構Fig.4 Structureof ResNet18
圖4顯示了ResNet18的網絡模型結構,它包含17個卷積層和1個完全連接的層,即18個權重層。RessNet18網絡結構的計算公式為

式中:al為l層的輸出結果;δ為激活函數;w代表權重參數;b代表偏置。
當前網絡層l的輸出等于正常網絡的輸出al-1與網絡輸入zl的和,然后再經過激活函數。假設從l層到l-1層,按照常規的全連接層反向傳播公式為

其中J代表損失函數。但是ResNet增加了shutout連接,激活函數中的內容就增加了一個al-1,通過反向公式求導,得出反向傳播公式為

公式中由原來的wl的變成了wl+1。隨著網絡深度的增加,訓練變慢,這主要是由于權重w的正則化,w變得非常小,加上多層級聯關系,該層的梯度變化非常小,但是權重值w增加1,梯度增加,這就使網絡更易于訓練。
因本實驗中棄鐵輸送帶的斷裂情況分為2類:完好和斷裂,所以本文將全連接層的參數結構由1×1×1 000改為1×1×2;每個殘差單元包含2個卷積層,如圖5所示;恒等映射不會增加額外的參數和計算復雜度,它將輸入跨層傳遞,然后與經過卷積后的輸出相加,達到充分訓練底層網絡的效果。

圖5 殘差學習單元Fig.5 A building block of residual learning
在圖5殘差學習單元結構中,假設殘差網絡的輸出為H(x),經過卷積操作后的輸出為F(x),則:

式中:w1和w2為卷積操作;δ代表激活函數。此時只要F(x)=0,就構成了前述的恒等映射函數H(x)=x,所以得到一個容易擬合的殘差函數。這一過程中要保證F(x)和x的維度是相同的,如果不相同,則可以通過恒等映射執行線性投影ws來匹配維度,則有

式中:ws是通過恒等映射對x的線性變換。
前文雖然利用模板匹配和數據增強來解決ResNet18網絡訓練時棄鐵輸送帶圖像中無關信息干擾和樣本數量不足的問題,但棄鐵輸送帶圖像樣本數量不足的問題仍然突出。本文使用遷移學習的方法進行克服。遷移學習是指將預訓練好的模型結構和權重參數應用到一個新的網絡模型中的方法[20-23]。遷移學習模型如圖6所示。

圖6 遷移學習模型Fig.6 Transfer learning model
當目標域數據量很少或者很難獲取、或者從頭建立模型很費時和復雜時,可使用遷移學習完成與源目標任務相似的功能,有Fine Tuning和Feature Extraction 2種學習方法。本文使用Fine Tuning遷移學習方法,首先使用源數據(ImagNet數據集)預訓練ResNet18,然后以訓練好的模型參數為基礎,利用棄鐵輸送帶圖像數據集訓練網絡時繼續優化全部參數,使得目標模型可以更好地完成識別任務。
為了使Jetson TX2能控制GPIO,使得其檢測到棄鐵輸送帶斷裂時能立刻報警,需要將ResNet18網絡模型進行語言轉換,從而達到控制TX2外設的目的。TorchScript是一種可以把Pytorch模型轉成C++接口可讀的模型,是一種從PyTorch代碼創建可序列化和可優化模型的方法,是連接C++和Python的橋梁。
Libtorch是Pytorch官方提供的C++接口,使用此接口在Jetson TX2開發平臺上部署C++的ResNet18網絡模型。
在Jetson TX2檢測到輸送帶斷裂時,除了報警器報警外,在PC端用應用程序開發框架(Qt)設計一個監控終端軟件,使用TCP/IP協議與Jetson TX2進行通信來進行數據的實時顯示。TCP/IP協議能保證網絡數據信息及時、完整地傳輸。
永磁除鐵器棄鐵輸送帶斷裂系統硬件主要由監控攝像頭、Jetson TX2嵌入式開發平臺、報警器和監控終端界面組成,其結構框圖如圖7所示。Jetson TX2是NVIDIA專為深度學習打造的嵌入式平臺,具有256個CUDA核心的GPU,共2塊CPU(一塊是雙核的Denver 2,另一塊是ARMCortexA57),8 GB運行內存,32 GB flash存儲器;它支持NVIDIA JetPack SDK中的Tensor RT、cuDNN、CUDA工 具 包,VisionWorks、Streamer和OpenCV等眾多軟件,在深度學習運算速度、數據處理能力上具有很大優勢,確保了檢測的實時性。

圖7 輸送帶斷裂檢測硬件框圖Fig.7 Flow chart of hardwaredesign for conveyor belt breakagedetection
基于Pytorch架構,利用Python語言使用自制的數據集,結合遷移學習方法對ResNet18網絡模型進行訓練。使用Torchscript將訓練后參數最好的ResNet18網絡模型轉化為C++語言模型,然后采用Libtorch部署到Jetson TX2開發平臺上。Jetson TX2檢測到棄鐵輸送帶斷裂時可控制GPIO進行實時報警同時將信息傳送給監控終端進行數據實時顯示。棄鐵輸送帶斷裂檢測系統軟件設計流程如圖8所示。

圖8 棄鐵輸送帶斷裂檢測系統軟件設計流程Fig.8 Flow chart of softwaredesign for conveyor belt breakagedetection
首先采用Fine Tuning和Feature Extraction這2種遷移學習方法對數據集進行訓練,通過結果對比選擇1種更適合的遷移學習方法。2種遷移學習方法訓練結果如圖9所示。網絡模型訓練平臺:CPU為Intel(R)Xeon(R)CPUE5-2678 v3,內存為64 G DDR4,GPU為Nvidia Geforce GTX1080Ti,操作系統為64位Ubuntu16.04 LTS,實驗框架為Pytorch開源框架。數據集訓練次數設置為50。

圖9 2種遷移學習方法準確率Fig.9 Accuralcy of two transfer learning methods
由圖9可以看出,實驗中Fine Tuning遷移學習方法要比Feature Extraction遷移學習方法準確率高,并且Fine Tuning測試結果隨著數據集訓練次數的增加基本處于穩定狀態。所以本文選擇Fine Tuning優化模型參數。圖10是實驗測試結果,可以看到基于此方法可以準確檢測到棄鐵輸送帶的斷裂情況。

圖10 監控視頻測試實驗結果Fig.10 Experimental resultsof surveillancevideo test
在實驗室環境下將網絡模型部署到Jetson TX2開發板上進行實驗檢測,因為實驗室沒有永磁除鐵器,所以使用帶式輸送機的輸送帶代替永磁除鐵器的棄鐵輸送帶。
實驗測試中網絡模型的大小為44.8 MB,在Jetson TX2上開啟最大功率模式,使用cuda進行加速以提高視頻畫面的流暢度。Jetson TX2顯示器上的監測到的畫面如圖11所示。

圖11 Jetson TX2顯示器上監測到的畫面Fig.11 Camera screen on Jetson TX2 display
Jetson TX2終端上數據顯示如圖12所示。圖12(a)表示ResNet18部署在Jetson TX2上運行時視頻的實時幀率,一般為17幀/s,有時可達18幀/s。當檢測到棄鐵輸送帶斷裂時,Jetson TX2連接的報警器會報警;圖12(b)是模擬報警器從而發出報警信息,max_index為每一幀輸送帶圖像是否斷裂標識號,0為斷裂,1為完好。

圖12 Jetson TX2終端上數據顯示Fig.12 Data display on jetson TX2 terminal
測試結果表明,永磁除鐵器棄鐵輸送帶斷裂檢測準確率為93.74%,網絡模型圖像處理速度為17幀/s,滿足視頻檢測的要求。在棄鐵輸送帶斷裂裂口小幅度或者大幅度張開以及徹底斷帶情況下,檢測報警準確率為100%。但由于攝像頭距離輸送帶較遠,如果攝像頭灰塵遮擋嚴重,導致視線模糊則檢測的準確率會降低,有時會出現錯檢的情況。
使用Qt設計了監控終端軟件,為了測試其有效性和實時性,利用現場采集的視頻模擬監控視頻,進行測試,測試結果如圖13所示。

圖13 監控終端軟件測試結果Fig.13 Information displayed on monitoring terminal
打開終端軟件后,輸入Jetson TX2的IP地址和使用的端口號進行連接,連接成功后,輸送帶狀態提示窗口會顯示成功連接。當監控終端軟件接收到視頻畫面時,會在輸送帶狀態提示窗口顯示當前時間輸送帶是否斷裂等信息。
本文針對永磁自卸除鐵器棄鐵輸送帶斷裂檢測方法不精確,易損壞、檢測裝置安裝復雜等問題,提出一種基于遷移學習的檢測方法,并將其部署在Jetson TX2平臺上。實驗結果表明,本文方法及系統準確率可達93.74%,圖像處理速率為17幀/s,當檢測到棄鐵輸送帶斷裂可現場實時報警。