盧學明, 于在川, 許升起
1(國能神東煤炭錦界煤礦, 榆林 719319)
2(國能網信科技(北京)有限公司, 北京 100096)
我國不僅目前是世界上最大的煤炭消費國之一,更是世界上最大的煤炭生產國之一[1]. 隨著工業化的不斷發展, 以及對煤炭需求的日益增長, 我國的煤炭產量逐年上升, 煤礦開采機械化水平不斷提高. 各類煤炭機械設備在我們的煤炭生產中都有著十分重要的地位和作用, 煤礦皮帶式運輸機更是在我們的煤炭生產過程中有著不可或缺的重要作用. 在煤礦運輸的各個環節中, 煤礦皮帶運輸機往往都會出現各種各樣的問題[2],例如皮帶跑偏、皮帶機聲音異常、皮帶機斷帶、運輸機打滑等, 而皮帶運輸機上存在異物往往是造成諸多皮帶異常的主要原因之一[3]. 例如, 在煤炭運輸中, 煤礦皮帶機上若存在煤矸石、鐵器等異物, 這些異物都是有可能對皮帶造成一定損傷的, 甚至可能會割裂皮帶,造成非常嚴重的后果. 同時, 這些異物的存在還可能會對煤炭的質量造成一定的影響. 因此對皮帶上的異物進行及時檢出并進行處理是十分有必要的. 傳統的煤礦皮帶機異物檢測方法有人工檢測法、金屬探測法以及雷達探測法, 但是這些方法存在著檢出效率低、適用范圍小以及造價成本高的問題[4].
近年來, 隨著科研人員對深度學習[5]的不斷研究,已經成為了目前人工智能領域的主流方法. 傳統的機器學習方法與統計方法對于處理圖像、語音及文本等真實場景的復雜問題十分受限, 同時也可能需要許多的先驗知識, 而深度學習方法能夠對原始數據特征進行線性及非線性的組合從而擁有自動處理問題的能力[6].隨著大數據時代的到來, 處理真實場景問題的困難程度也隨之增加, 數據的量級也在不斷的增大, 深度學習由于它有著處理復雜數據的能力, 已經被運用于各個領域當中[7]. 例如, 醫療領域中的病變檢出[8]、交通領域中的無人駕駛[9]、金融領域中的高頻交易[10]等. 在煤炭業中, 深度學習方法也被廣泛的應用于煤炭生產中的各個環節, 例如, 煤礦礦山中的智能監測[11]、煤礦生產機械的故障檢測[12]、煤礦工人的復雜行為識別[13]等. 本文也將利用深度學習技術對煤礦皮帶機上的異物進行檢出.
深度生成模型是深度學習中的一個非常重要的領域. 生成模型的目的是通過捕獲真實數據的分布, 并重新生成新的數據, 這些新的數據是與原始數據存在差異的, 但是又是極其相似同屬于一個分布的. 目前, 3 類主流的無監督深度生成模型分別是生成式對抗網絡(generative adversarial network, GAN)[14]、變分自編碼器(variational autoencoder, VAE)[15]以及基于流的生成模型(flow-based generative model, FLOW)[16], 這3 類生成模型各自存在著優點與缺點. GAN 是目前被研究的最深入的生成模型, 這是由于GAN 能夠生成十分逼真的圖像, 但是它卻存在著訓練困難的問題. VAE 是一種基于自編碼器(autoencoder, AE)的模型, 其利用變分推斷同時學習圖像空間與隱空間之間的映射關系,但是由于其損失是基于均方誤差的重構損失, 所以生成的圖像是較為模糊的. FLOW 是一種對數據的似然函數進行精確推斷的生成模型, 它能夠獲得較為準確的真實數據分布, 但是由于其隱空間的維數通常是與輸入空間的維數相同, 因此其隱空間被利用于下游任務存在著一定的困難.
在本文方法中, 所選用的深度生成模型是GAN與VAE. 由于VAE 的損失是基于均方誤差的重構損失, 因此可以利用重構誤差來判斷一張圖片是否存在異常物體, 故VAE 是一種非常適用于異常檢測的方法.但是, 由于皮帶煤礦運輸機上所存在的異常物體通常是與煤炭混在一起的, 而VAE 的重構圖像會忽略掉一些細節信息, 因此這對皮帶異物檢出是不適用的. GAN能夠捕獲圖像中的許多細節信息, 因此我們將GAN與VAE 進行結合, 使其適用于煤礦皮帶運輸機的異物檢測. 在接下來的部分中, 我們將會對GAN 和VAE 的理論基礎進行簡要介紹, 對本文方法進行詳細介紹, 對實驗結果進行詳細解釋, 最后會給出相應的結論.
在此部分中, 將會對VAE 和GAN 的理論基礎進行簡要的介紹, 以便能夠更加自然地引出本文的方法.
Welling 等人[17]在2014 年提出了變分自編碼器, 是在原始的自編碼器的基礎上, 對其瓶頸層進行了修改.變分自編碼器通常是由兩個對稱的神經網絡所構成的,形成了兩個概率密度分布. 其中的一個神經網絡作為VAE 的編碼器, 用于產生平均編碼和標準差編碼, 而不是直接產生編碼. 另一個神經網絡作為VAE 的解碼器,用于生成重構圖像. VAE 數據生成過程一般如式(1)所示:

常規的 VAE 的生成過程通常是由兩步所構成的.首先, 從一個先驗分布中采樣隱變量, 這個先驗分布在通常的情況下一般設定為標準高斯分布. 然后, 樣本從在給定隱變量的條件分布中生成. VAE 的損失是一個負的證據下界(evidence lower bound, ELBO), 這個損失能夠被視作為一個帶正則項的負重構損失:

其中,E[·] 為 期望,DKL[·]為 KL 散度,q(z|x)為在給定樣本的條件下隱變量的后驗分布, 它經常被視為編碼器,因為能夠完成從樣本空間到隱空間的映射.
GAN 是一種訓練過程處于博弈狀態的深度生成模型. GAN 的主要結構可以分為兩個部分: 生成器網絡與判別器網絡. 生成器網絡的功能是用來生成與真實圖像在視覺上相似的虛假圖像, 而判別器的作用是用來判斷所輸入的信號是來自于真實數據集還是來自于生成器所生成的虛假圖像.
在訓練過程中, 一組噪聲會被從一個先驗分布(一般采用高斯分布)所采樣, 然后使其通過生成器, 生成一組虛假圖像. 然后將所生成的虛假圖像與從數據集中所采集的真實圖像一起輸入到判別器中, 判斷所輸入的圖像是從何而來. 經過幾輪迭代后, 生成器所生成的圖像能夠騙過判別器, 這時GAN 達到了最優狀態.GAN 的目標函數如下:

在這一部分中, 將會對本文所使用的實驗方法進行詳細介紹, 包括本文方法的網絡結構、損失函數以及異常得分.
本文方法的網絡結構主要由3 部分組成, 分別為編碼器(encoder)、解碼器(decoder)和判別器(discriminator), 其中, 編碼器和解碼器共同構成了一個VAE, 并把VAE 看作是GAN 的生成器部分(generator), 與判別器共同構成了一個GAN. 本文方法的網絡結構如圖1.

圖1 網絡結構
編碼器的作用是將高維圖像進行編碼, 得到壓縮后的低維表示. 編碼器是完成了從高維的原始圖像空間到隱空間的映射. 在編碼器的輸出位置, 會利用重參數化技巧. 解碼器的作用是將低維的表示進行解碼, 得到解碼后的重構圖像. 解碼器是完成了從低維的隱空間到高維的重構空間的映射. 編碼器和解碼器共同構成了一個VAE. 需注意的是, 在本文中, 算法的輸入應為整張圖像, 而不是噪聲, 因此原始GAN 中的生成器已經不適合此算法, 故本文將VAE 看作是GAN 中的生成器部分.
判別器的作用是用來判斷所輸入的圖像是真實圖像還是生成圖像的. 在本文方法中, 由于利用VAE 作為GAN 的生成器部分, 這個生成器并沒有從一個高斯分布中采樣噪聲來生成圖像, 而是對原始圖像進行重構, 因此此判別器的作用是用來判斷所輸入的圖像是來自于真實圖像還是重構圖像的.
本文方法的損失函數是由兩部分構成, 分別為VAE 損失和對抗損失, 總的損失函數如式(4)所示:
對于對抗損失, 本文在GAN 的原始對抗損失的基礎上進行了修改. 由于本文方法的生成器不是從高斯分布中采樣噪聲來生成圖像, 而是將VAE 作為生成器對原始圖像進行重構, 因此生成器的輸入不再是噪聲而是原始圖像. 修改后的對抗損失如式(6)所示:
異常得分能夠檢驗圖像中是否出現異物, 異常得分越高說明越有可能出現異物, 異常得分越低說明越不能出現異物. 在本文方法中, 所使用的異常得分為測試圖像與測試圖像的重構圖像之間的重構誤差:

對于閾值的選擇, 在本文中, 均以異常比的分位數為閾值.
在本部分中, 將會詳細介紹本文實驗所使用的數據集, 實驗所使用的網絡結構和超參數設定, 以及實驗結果及解釋.
本文所使用的數據集是從煤礦中通過攝像頭所采集的, 并對采集到的圖像數據進行了人工標注. 將數據分為兩類: 一類是不含異物的正常圖像數據, 另一類是含有異物的異常圖像數據. 為了便有后續試驗的進行,將全部圖像數據調整為像素值為256×256 的灰度圖像.正常圖像數據與異常圖像數據的代表性數據如圖2.

圖2 數據示意圖
由于本文所使用的異常檢測算法以及基線方法均是半監督學習算法, 因此在劃分訓練集與測試集時, 使訓練集中僅含有正常樣本, 包含了800 張正常圖像. 為了能夠更加公平的評價各算法的差異, 使測試集中正常樣本與異常樣本的樣本量相同, 各100 張. 訓練集與測試集的具體信息如表1 所示.

表1 數據集信息
為了能夠更加穩定的訓練模型, 同時也為了能獲得更優的實驗結果, 對全部圖像數據進行了歸一化預處理:

本文的實驗環境是基于Linux 操作系統的PyTorch 1.7.0 深度學習框架, 所使用的顯卡為NVIDIA RTX 2080 Ti.
為了證明本文方法的優越性, 將本文方法與5 種基線方法進行比較, 其中包括兩種傳統的機器學習算法: 一類支持向量機(one-class support vector machine,OCSVM) 和核密度估計(kernel density estimation,KDE); 3 種深度學習方法: 自編碼器(AE)、去噪自編碼器(denoising autoencoder, DAE)和變分自編碼器(VAE)
對于網絡結構設定, 本文方法的網絡結構如圖1所示. 為了更加公平的比較各個方法, AE、DAE、VAE中的各個部件與本文方法所所對應的部件結構是相同的, OCSVM 與KDE 兩種傳統的機器學習方法是使用了機器學習庫sklearn 中的默認參數.
對于評價指標, 本文選擇了兩種用于分類任務的評價指標, 分別為F1 分數與AUC (area under the curve),同時也使用了ROC 曲線與混淆矩陣比較6 種方法的分類效果.
表2 給出的是本文方法與其他5 種基線方法的精度比較結果, 表中給出了每一種方法所對應的F1 分數與AUC 結果. 通過分析表2 能夠得知, 兩種經典的機器學習方法的效果不及深度學習方法, 且KDE 的精度表現較差, 這是由于傳統的機器學習方法對于處理高維復雜的真實場景圖像任務是存在困難的, 在應用時可能會遭受維數災難問題. AE、DAE、VAE 這3 種深度學習方法的精度表現較為相近, 但是其精度表現仍不及本文方法, 這是由于AE、DAE、VAE 的重構圖像往往是模糊且缺乏細節的, 而對于真實場景的煤礦異物檢測任務是存在困難的, 因為煤礦中的異物可能僅占據所采集的圖像中的很小的位置. 本文方法利用了GAN, 能夠學習到圖像的細節信息, 從而能夠達到更好的異物檢出效果.

表2 精度比較
圖3 給出的ROC 曲線, 圖中給出了本文方法與其他5 種基線方法的ROC 曲線. 通過分析圖3 能夠直觀的得知, 我們的方法相較于其他的基線方法擁有更優的分類效果, 且深度學習方法是要優于傳統的機器學習方法的.

圖3 ROC 曲線
圖4 給出的是本文方法與其他5 種基線方法的混淆矩陣圖. 通過分析圖4 能夠得知, 本文方法的異物檢出效果是最好的.

圖4 混淆矩陣
圖5 給出的是本文方法在測試集上的異常得分直方圖, 我們分別展示了正常測試樣本與異常測試樣本的得分情況. 通過分析圖5 能夠得知, 正常測試樣本的得分明顯的低于異常測試樣本的得分, 這說明本文方法能夠明確的劃分正常測試樣本與異常測試樣本, 也就是說能夠準確的進行異物檢出. 同時, 能夠發現正常測試樣本的得分離散程度要小于異常測試樣本的, 這說明本文的方法是能夠捕獲正常樣本的分布的, 同時能夠準確的區分正常樣本分布外的樣本.

圖5 異常得分直方圖
本文所提出的基于深度生成模型的煤礦皮帶異物檢測方法, 充分地利用了VAE 和GAN 的相關特征, 使其異物檢出效果相較于其他基線方法更為優越. 通過在煤礦皮帶數據集上進行試驗, 得出了以下結論:
(1) VAE 能夠對皮帶圖像進行重構, 利用重構誤差對皮帶上是否存在異物進行判斷.
(2) GAN 能夠提升VAE 的重構圖像質量, 使其學習到圖像中的一些細節信息, 以便能夠獲得更佳的異物檢出效果.
(3)本文方法所得到的異常得分能夠對正常樣本與異常樣本進行分離, 且正常樣本得分的離散程度要小于異常樣本得分的離散程度.