胡紅利,王茂杰,楊姝楠,2,楊海潮,盧家宇
(1.西安交通大學(xué) 電力設(shè)備電氣絕緣國家重點實驗室,陜西 西安 710049;2.北京機械設(shè)備研究所,北京 100854)
流型的準確測量在工業(yè)生產(chǎn)中有極為重要的作用?;陔娙輰游龀上?ECT)系統(tǒng)的流型識別技術(shù)因具有非侵入性和可視化的優(yōu)點,被廣泛應(yīng)用于各種工業(yè)過程的動態(tài)測量中。隨著機器學(xué)習(xí)理論的高速發(fā)展,目前使用較為廣泛的流型識別方法使用神經(jīng)網(wǎng)絡(luò)[1-3]作為識別模型。王莉莉等人將RBF神經(jīng)網(wǎng)絡(luò)用于流型識別問題,在仿真測試的條件下,各流型識別準確率都達到85%以上[4];宋蕾等人使用局部回歸網(wǎng)絡(luò)Elman進行流型辨識,對7種流型的仿真樣本進行測試,與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)測試結(jié)果相對比,識別準確率由72%提升至82%[5];張立峰等人基于遺傳算法優(yōu)化的極限學(xué)習(xí)機算法進行流型識別,在靜態(tài)模擬實驗下,平均識別準確度可以達到90%以上[6]。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要有大量的模型樣本,但通過ECT系統(tǒng)獲得的實測樣本非常有限,難以支撐模型訓(xùn)練,不能滿足真正工業(yè)上的需求。對實測樣本進行數(shù)據(jù)集擴增,利用擴增后的樣本進行模型訓(xùn)練,這樣才能讓深度學(xué)習(xí)模型發(fā)揮作用。因此,如何將實測樣本進行數(shù)據(jù)集增強擴增有著十分重要的意義。
對圖像數(shù)據(jù)集進行增強擴增可以解決實測樣本缺乏的問題,進而提升識別模型的識別準確率。數(shù)據(jù)增強一般分為有監(jiān)督的數(shù)據(jù)增強和無監(jiān)督的數(shù)據(jù)增強兩種。其中,有監(jiān)督的數(shù)據(jù)增強是在不改變標(biāo)簽的條件下,使用預(yù)設(shè)的某種變換規(guī)則。有監(jiān)督的數(shù)據(jù)增強分為針對單樣本和多樣本兩種進行操作,Xie等人研究了單樣本數(shù)據(jù)增強方法,通過幾何變換和色彩空間變換進行數(shù)據(jù)集的增強[7]。幾何變換是對單張圖片進行翻轉(zhuǎn)、旋轉(zhuǎn)、縮放等操作,色彩空間變換是對單張圖片的對比度、亮度、飽和度等進行操作。針對多樣本的數(shù)據(jù)增強,Nazki等人通過樣本比較的方法,利用現(xiàn)有樣本直接合成新樣本完成數(shù)據(jù)增強[8]。但利用傳統(tǒng)的有監(jiān)督式數(shù)據(jù)擴增方法擴增后的數(shù)據(jù)集信息量有限,無法形成較為準確的數(shù)據(jù)集,不適用于ECT系統(tǒng)。
針對上述問題,本文搭建了基于深度卷積生成對抗網(wǎng)絡(luò)的無監(jiān)督式流型數(shù)據(jù)集增強模型,利用生成模型生成“以假亂真”的流型圖像,對重建圖像集進行擴增,擴增后的數(shù)據(jù)集用以支持識別模型訓(xùn)練,以提高其性能與泛化能力,使用基于YOLOv3的流型識別方法,可以大幅度提高ECT系統(tǒng)的流型識別準確率。
DCGAN是Radford等人在2016年提出的一種GAN的改進模型[9]。將CNN應(yīng)用于GAN,用卷積層替換原有的多層感知機MLP,并據(jù)此對其他部分進行相應(yīng)改進,有效解決了原有模型訓(xùn)練不穩(wěn)定的問題。通過使用卷積層捕獲的特征來進行圖像分類,使得GAN有了更好的表達能力,更適用于圖像樣本的處理。相比于GAN,DCGAN的改進主要有以下幾點。
1)使用卷積層代替池化層。去掉池化層后整個網(wǎng)絡(luò)變?yōu)榭晌?便于DCGAN的訓(xùn)練。在判別器上使用步幅卷積層(stride convolutions)實現(xiàn)下采樣,通過卷積提取圖像特征,并減少每層特征圖的維度。在生成器上使用轉(zhuǎn)置卷積(deconvolution)實現(xiàn)上采樣,逐層提高生成圖像分辨率。
2)只保留生成器首層及判別器末層,去除其他全連接層。
3)使用批量歸一化層[10]。
4)生成器的輸出層采用Tanh激活函數(shù)以約束生成圖像的范圍,其他層采用ReLU函數(shù)。
在DCGAN的原始模型中,生成器的結(jié)構(gòu)如圖1所示,由一個全連接層和4個轉(zhuǎn)置卷積層組成。輸入是一個100維的高斯隨機噪聲,其服從范圍在[-1,1]的均勻分布,通過全連接層并對向量進行reshape操作,將其擴展為1個4×4×1 024的特征向量。從第2層開始,一共經(jīng)過3個卷積層,利用轉(zhuǎn)置卷積作上采樣,每次操作的卷積核大小為5×5,步長為2。每經(jīng)過1個轉(zhuǎn)置卷積層,特征向量尺寸變?yōu)橹?倍,通道數(shù)變?yōu)樵瓉淼?/2。但經(jīng)過最后一個卷積層后,其向量維度變?yōu)?4×64×3,即輸出一個64×64大小的三通道RGB圖像。通過生成器完成了隨機噪聲到三通道圖像的轉(zhuǎn)化。
圖1 DCGAN生成器結(jié)構(gòu)
判別器的結(jié)構(gòu)即為生成器結(jié)構(gòu)的反向,其輸入為1個64×64×3的特征向量,先通過1個卷積層恢復(fù)成32×32×64的向量。之后每經(jīng)過1個卷積層,特征向量尺寸變?yōu)橹?/2,通道數(shù)增加1倍,最后,由1個全連接層輸出1個概率值標(biāo)量,即輸入樣本的真假概率值。
本文將介紹利用搭建的DCGAN模型進行4種流型圖像生成的實驗。基于DCGAN的流型數(shù)據(jù)集增強實驗流程如圖2所示。
圖2 基于DCGAN的流型數(shù)據(jù)集增強流程圖
整體DCGAN網(wǎng)絡(luò)模型的搭建與模型訓(xùn)練基于Tensorflow深度學(xué)習(xí)架構(gòu)。Tensorflow使用結(jié)點(nodes)和線(edges)組成的數(shù)據(jù)流圖來描述數(shù)學(xué)計算,其中大小可動態(tài)調(diào)整的多維數(shù)組稱為張量。硬件采用Intel Core i7,32 GiB內(nèi)存的處理器進行實驗。
本文的原始數(shù)據(jù)集是通過最小二乘支持向量機法(LSSVM)得到的240個重建圖像,對于DCGAN的訓(xùn)練來說,數(shù)據(jù)集數(shù)量略少,訓(xùn)練時容易產(chǎn)生欠學(xué)習(xí)、過擬合的問題,因此,要對流型圖像進行預(yù)處理。之所以可以利用LSSVM方法對原始圖像進行擴充,是因為DCGAN的特定結(jié)構(gòu),即結(jié)合了GAN與CNN兩種神經(jīng)網(wǎng)絡(luò)。CNN中的卷積和池化操作使得其可以在很大的空間范圍內(nèi)處理上下文和整合特征,即具有旋轉(zhuǎn)不變性和平移不變性[11]。
對核心流、 環(huán)形流、 偏心流的圖像分別都旋轉(zhuǎn)90°、 180°、 270°后, 各得到180張圖片; 對層狀流的圖像經(jīng)過翻轉(zhuǎn)180°及左右各平移3個像素, 得到180張圖片。擴充后的數(shù)據(jù)集加上原有圖像(通過LSSVM生成每種流型60張)共同構(gòu)成真實圖像集,每種流型各240張,4種流型共960張。且將原來100×100的圖像利用Matlab等比例縮小為96×96。將真實圖像集中的80%設(shè)定為訓(xùn)練集,其余的20%設(shè)定為驗證集。由于是隨機選取,則訓(xùn)練集和驗證集中每種流型圖像數(shù)并不平均,最終數(shù)據(jù)集構(gòu)成如表1所示。
用于流型圖像的DCGAN生成器結(jié)構(gòu)如圖3所示。共使用5層轉(zhuǎn)置卷積層,前4層用ReLU激活函數(shù),最后1層使用Tanh激活函數(shù)。在BN層對數(shù)據(jù)進行批量歸一化處理,以解決梯度爆炸的問題。判別器的結(jié)構(gòu)幾乎可以認為是生成器的逆結(jié)構(gòu)(從右向左看),區(qū)別只在于使用的激活函數(shù)和最終輸出。前4層用于提取特征,激活函數(shù)采用Leaky-ReLU函數(shù),最后1層用于輸出判別結(jié)果,使用Sigmoid激活函數(shù)。
圖3 用于流型圖像的DCGAN生成器結(jié)構(gòu)圖
采用目前DCGAN模型常用的SGD優(yōu)化算法[12-14]和Adam優(yōu)化算法[12-14]進行實驗,對結(jié)果進行對比分析如下。
1)訓(xùn)練過程中Loss值。與使用SGD優(yōu)化算法訓(xùn)練的損失函數(shù)相比,Adam優(yōu)化算法下的損失函數(shù)更小。Adam算法下的判別器Loss值最大不超過2,模型穩(wěn)定時最低可達0.45,而SGD算法下的判別器Loss值最高達到4.5,且最小值也大于0.8。除去兩個實驗最后損失激增的部分,Adam算法下的生成器Loss值主要變化在0.1~2,而SGD算法下的生成器Loss值變化在1~3。則從損失函數(shù)來看,相較于SGD優(yōu)化算法而言,Adam優(yōu)化算法訓(xùn)練的結(jié)果更好。
2)生成圖像視覺效果。由于DCGAN方法是隨機生成流型圖像,并不能指定生成圖像的流型尺寸。因此,從2種優(yōu)化算法下的生成圖像中,每種流型選擇1個代表樣例,則2個實驗中生成的不同流型樣本圖像如表2所示。
表2 使用2種優(yōu)化算法的真實與生成圖像示例
根據(jù)上述結(jié)果的對比分析可以得知,使用Adam優(yōu)化算法生成的圖像效果更好。因此,利用Adam實驗中訓(xùn)練好的模型進行流型圖像生成實驗,最終得到每種流型1 500個圖像,4種流型共6 000個圖像,相較于重構(gòu)得到的240個圖像,數(shù)據(jù)集得到了25倍的擴增,生成的部分圖像如圖4所示。
圖4 擴增數(shù)據(jù)集中生成的部分流型示意圖
對于GAN-train和zGAN-test這2個指標(biāo),我們都是利用成熟的神經(jīng)網(wǎng)絡(luò)作為分類器,通過測試真實圖像和生成圖像在分類器(classifier)上的表現(xiàn)來評估圖像質(zhì)量,其原理如圖5所示。
圖5 GAN-train與GAN-test實驗原理圖
首先,將240個真實圖像的85%作為用于訓(xùn)練的真實圖像訓(xùn)練集Img-real-train,15%作為用于驗證的真實圖像驗證集Img-real-test。
1)GAN-train是真實圖像在利用生成圖像訓(xùn)練過的分類器上的表現(xiàn)。先利用生成圖像集Img-gen來訓(xùn)練初始分類器Class-org,固定后得到能有效分類生成圖片的分類器Class-gen;然后,測試驗證集Img-real-test在Class-gen的輸出,即識別準確率。如果用于區(qū)分不同類別生成圖像的分類器能夠?qū)φ鎸崍D像進行正確分類,那么代表生成圖像足夠多樣化,覆蓋了真實圖像所包含的每一個種類,使得分類器學(xué)習(xí)到真實圖像足夠多的相關(guān)特征。
2)GAN-test是生成圖像在利用真實圖像訓(xùn)練過的分類器上的表現(xiàn)。先利用真實圖像集Img-real-train來訓(xùn)練初始分類器Class-org,固定后得到能有效分類真實圖片的分類器Class-real;然后,測試生成圖像集Img-gen用Class-real的識別準確率。這個指標(biāo)與圖像精確率類似,GAN-test值較高說明用于區(qū)分真實圖像的分類器依然能辨別生成圖像,這意味著生成的樣本與真實的樣本分布近似。
為評估本文設(shè)計的DCGAN架構(gòu)生成的圖像質(zhì)量,利用基礎(chǔ)變換擴充后的真實圖像集,將其中的80%作為真實圖像訓(xùn)練集Img-real-train, 20%作為真實圖像驗證集Img-real-test。 選取上一節(jié)本文設(shè)計的DCGAN使用Adam算法訓(xùn)練時, 最優(yōu)情況下生成的4種流型圖片, 每種1 500個, 共6 000個圖像,作為生成圖像集Img-gen。
用于識別圖像的分類器選擇成熟的AlexNet[15-17]與VGG-16[18-20]兩種主流的深度卷積神經(jīng)網(wǎng)絡(luò)模型。GAN-train與GAN-test評價得分表示的都是數(shù)據(jù)集在分類器上的識別準確度,將4次實驗的平均值作為結(jié)果。
1)GAN-train評價。首先,使用Img-gen作為訓(xùn)練集訓(xùn)練2個分類器,并調(diào)整分類器參數(shù)至識別準確率最優(yōu);而后測試驗證集Img-real-test在訓(xùn)練好的分類器上的表現(xiàn),即得到GAN-train,結(jié)果如表3所示。
表3 最優(yōu)生成圖像的GAN-train實驗結(jié)果
如表3所示,GAN-train的準確率與驗證集Img_real_test的準確率都較高且相接近,體現(xiàn)了生成圖像的真實性,且由于訓(xùn)練集是隨機劃分,說明DCGAN產(chǎn)生的圖像和訓(xùn)練集一樣多樣化,較好地覆蓋了真實圖像的特征分布。
2)GAN-test評價。首先,使用Img-real-train作為訓(xùn)練集訓(xùn)練2個分類器,并調(diào)整參數(shù)至最優(yōu),然后測試Img-gen在訓(xùn)練好的分類器上的表現(xiàn),即得到GAN-test,結(jié)果如表4所示。
表4 最優(yōu)生成圖像的GAN-test實驗結(jié)果
如表4所示,不論是訓(xùn)練集還是生成圖像,在分類器上的表現(xiàn)都并不理想,識別準確率都不足55%。雖然GAN-test值與標(biāo)準值相差不大,還是能一定程度上反映出生成圖像與真實數(shù)據(jù)之間較為接近,但GAN-test值與真實圖像的識別準確率還是有一定差別。這是因為Img-real-train中包含的圖像數(shù)量太少,而所使用的分類器都是含有上億參數(shù)的深層神經(jīng)網(wǎng)絡(luò),其含有的特征不足以被分類器完全捕捉。換言之,真實圖像訓(xùn)練集的信息量不足以訓(xùn)練分類器的參數(shù),這也說明了擴充數(shù)據(jù)集對于訓(xùn)練用于流型識別的深度神經(jīng)網(wǎng)絡(luò)是非常必要的。
YOLOv3算法是一種one-stage的目標(biāo)檢測算法,與two-stage目標(biāo)檢測算法最大區(qū)別在運算速度上,YOLO系列算法將圖片劃分成若干個網(wǎng)格,再基于anchor機制生成先驗框,只用一步就生成檢測框,這種方法大大提升了算法的預(yù)測速度[21-24]。YOLOv3由3部分網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)成,分別為主干特征提取網(wǎng)絡(luò)、特征金字塔融合結(jié)構(gòu)和預(yù)測結(jié)構(gòu),主干特征提取網(wǎng)絡(luò)采用DarkNet53[25]的結(jié)構(gòu)。YOLOv3模型中,卷積單元包含卷積、LeakyRelu激活函數(shù)和批量標(biāo)準化層。結(jié)構(gòu)特征金字塔主要進行融合階段,將DarkNet53結(jié)構(gòu)輸出的3個有效特征層融合,即通過上采樣的方式將不同尺度的特征層進行拼接,最終實現(xiàn)對于多尺度目標(biāo)的檢測。將融合后的3個加強特征層輸入Yolo Head中進行預(yù)測分析,對預(yù)測結(jié)果進行解碼,最終得出邊界框的中心點坐標(biāo)和高寬等信息,完成目標(biāo)檢測。
本文針對流型圖片的特點,搭建了基于YOLOv3的流型識別算法,進行了相關(guān)的訓(xùn)練實驗。實驗中采用重建流型圖像和用DCGAN生成的流型圖像作為數(shù)據(jù)集,說明DCGAN擴增數(shù)據(jù)集的有效性,并使用識別準確率這一指標(biāo)來驗證本文基于YOLOv3的流型識別算法在流型識別問題上的可行性。
用于分類的神經(jīng)網(wǎng)絡(luò)模型通常需要3部分數(shù)據(jù)集:用于訓(xùn)練(train)的數(shù)據(jù)集、在訓(xùn)練過程中用于驗證(validation)的數(shù)據(jù)集、以及對于訓(xùn)練好的模型測試(test)其識別準確率的數(shù)據(jù)集。最終的數(shù)據(jù)集構(gòu)成如表5所示。
表5 不同比例實驗數(shù)據(jù)集構(gòu)成
使用不同比例數(shù)據(jù)集對YOLOv3模型進行訓(xùn)練,記錄模型在驗證集上的最終識別準確率,并使用5次實驗的平均值作為識別準確率的結(jié)果,結(jié)果如圖6所示。
圖6 使用不同比例數(shù)據(jù)集訓(xùn)練的YOLOv3的識別結(jié)果
從圖6可以看出,隨著數(shù)據(jù)集規(guī)模的增加,模型的識別準確度隨之上升。當(dāng)使用全部的重建圖像和全部的擴增圖像數(shù)據(jù)集進行訓(xùn)練時(第4個實驗),模型的識別準確率最高,達到98.67%。當(dāng)只使用DCGAN生成圖像進行訓(xùn)練時(第5個實驗),其識別準確度相較于全數(shù)據(jù)集(第4個實驗)有一定下降。這說明,重構(gòu)得到的原始圖像和生成圖像的分布仍具有部分區(qū)別,并不能將二者完全替換。因此可以得出,使用基于YOLOv3的流型識別算法在準確度上來講是可行的,但是關(guān)于DCGAN生成的圖像相當(dāng)于對原始數(shù)據(jù)特征的豐富而非覆蓋,恰當(dāng)?shù)剡\用擴增圖像數(shù)據(jù)集可以大幅度提高模型的識別準確率。
用訓(xùn)練好的圖像重建模型和訓(xùn)練好的基于YOLOv3的流型識別算法進行在線測試。圖像重建和流型識別的實驗環(huán)境使用如圖7所示的氣力輸送實驗測試平臺,主要包括載氣供氣、送料、實驗測量、節(jié)流裝置這4個子系統(tǒng)。
圖7 氣力輸送實驗平臺[3]
實驗中,流型實驗選用平均直徑為0.55 μm的煤粉,送氣風(fēng)速設(shè)定為24 m/s,環(huán)境溫度控制在19~21 ℃,相對濕度為45%~55%。
首先,將不同形狀的節(jié)流閥固定在管道內(nèi)部作為流型發(fā)生器,其可以控制流量參數(shù)并產(chǎn)生不同形狀、不同尺寸的多種流型。本實驗采用4種不同的節(jié)流閥以分別產(chǎn)生核心流、環(huán)狀流、偏心流、層狀流4種流型。在每個流型測量實驗開始之前,要進行測試實驗,通過1個電磁閥多次將煤粉從無流量到短暫流量狀態(tài)進行輸送。與此同時,觀察安裝在節(jié)流裝置后側(cè)的網(wǎng)格狀屏幕上的煤粉圖像,直到得到實驗所需的流型后,再將屏幕撤除進行測量實驗。
數(shù)據(jù)集選取4種流型共48組,每種流型12組數(shù)據(jù)進行實驗。實驗具體過程為:根據(jù)測量電容值進行圖像重建;然后,將重建的圖像利用訓(xùn)練好的基于YOLOv3的流型識別算法進行流型識別。識別過程滿足每秒2次的工業(yè)過程控制速度要求。最終以測試流型和對應(yīng)識別結(jié)果的形式給出,則48組數(shù)據(jù)的實驗結(jié)果如表6所示。
表6 使用改進流型識別技術(shù)的測試結(jié)果
一共48個流型圖像,只有1個環(huán)形流被識別為偏心流,核心流、層狀流、偏心流的識別率都達到100%,則平均識別準確率達到97.92%。本文提出的“從離線訓(xùn)練到在線識別”的流型識別技術(shù)對識別準確率有顯著提高。利用已經(jīng)離線訓(xùn)練好的模型進行在線流型識別,不再需要漫長的數(shù)據(jù)集擴增的部分,可以大大減少識別時間,因而能夠滿足工業(yè)控制的速度要求。
本文通過DCGAN進行流型圖像數(shù)據(jù)集擴增,得到生成的流型圖像每種流型1 500個,4種流型共6 000個。相較于原有重建所得的240個圖像,數(shù)據(jù)集得到了25倍擴增,并且對生成的圖像進行客觀評估,采用了GAN-train和GAN-test兩個評價指標(biāo),從定量角度分析,采用此算法生成的數(shù)據(jù)集的準確度較高,且豐富性較強。之后利用擴增后的數(shù)據(jù)集進行YOLOv3模型的訓(xùn)練,并用訓(xùn)練好的模型進行在線流型識別測試。測試結(jié)果表明,本文搭建的YOLOv3模型在滿足工業(yè)控制速度的要求下,識別準確率可以達到97.92%。以上實驗結(jié)果充分證明了基于DCGAN進行流型圖像數(shù)據(jù)增強的有效性,得到的擴增數(shù)據(jù)集可以有效支持識別模型的訓(xùn)練。因此,本文提出的基于DCGAN的數(shù)據(jù)集增強方法以及基于YOLOv3的流型識別算法可以對ECT系統(tǒng)的流型識別準確率提升有較大程度的改進。