張 達,熊 凌+
(1.武漢科技大學(xué) 冶金自動化與檢測技術(shù)教育部工程研究中心,湖北 武漢 430081; 2.武漢科技大學(xué) 機器人與智能系統(tǒng)研究院,湖北 武漢 430081)
實時分割氬花圖像,指導(dǎo)鋼包底吹氬流量控制任務(wù),可提高氬氣流量控制精度,提升鋼液質(zhì)量[1,2]。近年來,基于深度學(xué)習(xí)的圖像分割算法發(fā)展迅速[3]。Jonathan L等[4]提出的全卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)了像素級分割,但分割小物體能力較弱。Olaf等[5]提出U-Net網(wǎng)絡(luò),提高了小目標(biāo)分割精度,但在分割時給臨近分離邊界的像素分配權(quán)重較大,降低了分割相鄰樣本的準(zhǔn)確率。Zhao等[6]提出金字塔場景解析網(wǎng)絡(luò)(pyramid scene parsing network,PSPNet),改善了類別混淆和小樣本誤判問題,但增加了網(wǎng)絡(luò)的計算量,導(dǎo)致實時性降低。因此,為縮短圖像處理時間,需要輕量化網(wǎng)絡(luò)結(jié)構(gòu)[7-10]。目前輕量化網(wǎng)絡(luò)結(jié)構(gòu)主要有MobileNet、Xception、ShuffleNet和SqueezeNet等,其中SqueezeNet[11]采用squeeze層對上層特征圖使用1×1卷積核進行卷積,減少特征維數(shù)[11]。ShuffleNet[12]采用深度可分離卷積替代標(biāo)準(zhǔn)卷積以減少計算量[13],但缺少通道間的聯(lián)系,導(dǎo)致特征復(fù)雜度降低。而MobileNet[13]在深度可分離卷積基礎(chǔ)上加入了逐點卷積,融合了不同通道在相同空間位置上的特征信息,解決了深度可分離卷積中信息流不通暢問題,較好地完成了輕量化網(wǎng)絡(luò)結(jié)構(gòu)任務(wù)。但在使用輕量化網(wǎng)絡(luò)提取特征時,會損失部分細節(jié)信息,使分割精度降低[14]。
為滿足實時性和精度的要求,本文提出融合MobileNet-V2網(wǎng)絡(luò)特點的輕量化PSPNet網(wǎng)絡(luò)。利用深度可分離卷積降低參數(shù)量和計算量,使用金字塔池化模塊聚合上下文信息,提高信息利用率。結(jié)合Dice損失函數(shù)和交叉熵損失函數(shù)特點提出融合損失函數(shù),輔助優(yōu)化分割網(wǎng)絡(luò)。同時交替使用ReLU激活函數(shù)和線性連接層(Linear),避免特征退化。實驗結(jié)果表明,改進的PSPNet網(wǎng)絡(luò)分割精度高,實時性表現(xiàn)良好,適用于鋼包底吹氬任務(wù)。
為實現(xiàn)鋼包底吹氬流量智能控制,需要根據(jù)氬花區(qū)域覆蓋面積和氬氣流量之間的關(guān)系建立控制模型,其中獲取氬花區(qū)域面積是建立模型的首要問題,但鋼包底吹氬過程中產(chǎn)生的氬花形狀不規(guī)則且類間差異大,導(dǎo)致從鋼渣表面分割出氬花區(qū)域變得困難。PSPNet網(wǎng)絡(luò)利用金字塔池化模塊對復(fù)雜場景解析,高效利用全局上下文信息,在像素級預(yù)測中體現(xiàn)了良好的性能,可滿足氬花圖像分割任務(wù)對精度的需求。但應(yīng)用傳統(tǒng)PSPNet網(wǎng)絡(luò)分割氬花圖像時,會因為網(wǎng)絡(luò)中龐大的計算量和參數(shù)量降低圖像處理速度,導(dǎo)致氬氣流量控制產(chǎn)生滯后,影響鋼液質(zhì)量,造成成本損失。所以需要對PSPNet網(wǎng)絡(luò)進行輕量化設(shè)計,在保證分割精度的同時提高圖像處理速度。
本文以PSPNet網(wǎng)絡(luò)框架為主體,對分割網(wǎng)絡(luò)進行了輕量化設(shè)計,改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
如圖1所示,改進的PSPNet網(wǎng)絡(luò)沿用了傳統(tǒng)PSPNet網(wǎng)絡(luò)架構(gòu),在分割氬花圖像時,首先采用MobileNet提取圖像數(shù)據(jù)特征,將得到的特征圖劃分成不同大小的區(qū)域,在各區(qū)域內(nèi)部進行全局自適應(yīng)平均池化,再使用1×1卷積進行降維。然后利用雙線性插值還原輸出特征圖大小,并與輸入特征圖并聯(lián)連接。最后使用3×3卷積整合特征,1×1卷積調(diào)整通道,上采樣還原圖像尺寸,就可得到網(wǎng)絡(luò)對原圖中每個像素類別的預(yù)測結(jié)果。改進后網(wǎng)絡(luò)通過金字塔池化模塊增大感受野,采用并聯(lián)特征融合的方式將低級特征與高級特征拼接,加強網(wǎng)絡(luò)信息間交流,提高網(wǎng)絡(luò)對圖像細節(jié)的處理能力,可較好地完成語義分割任務(wù)。該網(wǎng)絡(luò)主要特點體現(xiàn)在以下幾個方面:
(1)使用MobileNet網(wǎng)絡(luò)替代ResNet網(wǎng)絡(luò)作為特征提取主干網(wǎng)絡(luò),降低卷積運算參數(shù)量。在提取特征網(wǎng)絡(luò)的首末端使用步長為1的深度可分離卷積,中間層連續(xù)使用3次步長為2的深度可分離卷積,同時應(yīng)用倒殘差模塊和瓶頸層結(jié)構(gòu)解決低維信息映射到高維過程中信息丟失的問題,提高特征利用率,在不損失精度的同時盡量減少計算量;
(2)結(jié)合交叉熵損失(cross entropy,CE)函數(shù)和Dice相似系數(shù)(Dice similarity coefficient,DSC)損失函數(shù)特點,對DSC損失函數(shù)進行拉普拉斯平滑,最終將兩種損失函數(shù)相加得到融合損失函數(shù)。采用融合損失函數(shù)輔助模型訓(xùn)練,解決氬花圖像中正負樣本不平衡問題和零概率問題,提高語義分割結(jié)果的邊緣精細度;
(3)根據(jù)模型結(jié)構(gòu)的數(shù)據(jù)特點,選擇性使用ReLU激活函數(shù)或Linear,在通道數(shù)較多的位置使用非線性ReLU函數(shù)作為激活函數(shù),在通道數(shù)少的位置使用線性Linear,避免低維映射過程中ReLU激活函數(shù)過濾掉負值信息造成激活空間坍塌,導(dǎo)致特征退化的問題;
(4)采用Adam和Momentum兩種優(yōu)化器優(yōu)化網(wǎng)絡(luò)參數(shù),避免出現(xiàn)病態(tài)曲率減緩訓(xùn)練速度,加速網(wǎng)絡(luò)訓(xùn)練過程。
為降低模型參數(shù)量和計算量,使PSPNet網(wǎng)絡(luò)輕量化,使用深度可分離卷積替代標(biāo)準(zhǔn)卷積。深度可分離卷積與標(biāo)準(zhǔn)卷積具有相似的卷積效果,但花費的計算量僅為標(biāo)準(zhǔn)卷積的12%左右。深度可分離卷積運算過程可分為逐通道卷積(depthwise convoluteion,DW)和逐點卷積(pointwise convolution,PW),DW中一個卷積核負責(zé)一個通道,一個通道只被一個卷積核卷積,DW運算后再進行PW運算,使輸出的每個特征圖包含輸入層所有特征圖的信息。深度可分離卷積和標(biāo)準(zhǔn)卷積運算過程如圖2所示。
由圖2可知,深度可分離卷積在block構(gòu)成上有所不同,深度可分離卷積含有逐通道卷積、逐點卷積和Linear結(jié)構(gòu),運算過程可分為步長為1或2兩種情況,步長為1時,輸入與特征圖維度匹配,可采用shortcut,步長為2時,輸入與特征圖維度不匹配,則不采用shortcut。并且深度可分離卷積采用Inverted Residuals結(jié)構(gòu),運算時先利用1×1卷積升維,然后進行3×3卷積,再利用1×1卷積降維,先進行擴張,再進行壓縮,相比直接使用3×3網(wǎng)絡(luò)卷積效率更高,盡可能在不降低精度的同時減少模型參數(shù)量和計算量。
同時標(biāo)準(zhǔn)卷積運算后結(jié)果直接通過非線性激活函數(shù)ReLU,這會使原本為負值的激活值變?yōu)榱?,?dǎo)致深度網(wǎng)絡(luò)僅在輸出域的非零部分具有線性分類器的功能,這將不可避免地造成通道中的信息損失,所以在通道數(shù)較少處可采用Linear,避免損失有效信息,提高模型分割精度。
假設(shè)卷積核大小為KW×Kh, 輸入通道數(shù)為Cin, 輸出通道數(shù)為Cout, 輸出特征圖的寬和高分別為W和H, 則標(biāo)準(zhǔn)卷積的參數(shù)量(Params)和計算量(FLOPs)如下式所示
Pb=KW×Kh×Cin×Cout
(1)
Fb=Kw×Kh×Cin×Cout×W×H
(2)
其中,Pb表示標(biāo)準(zhǔn)卷積參數(shù)量,F(xiàn)b表示標(biāo)準(zhǔn)卷積計算量。深度可分離卷積的參數(shù)量和計算量公式如下所示
Pd=Kw×Kh×Cin+Cin×Cout
(3)
Fd=KW×Kh×Cin×W×H+Cin×Cout×W×H
(4)
其中Pd表示深度可分離卷積參數(shù)量,F(xiàn)d表示計算量。與標(biāo)準(zhǔn)卷積相比得式(5)
(5)
通過分析上式可知,采用深度可分離卷積運算可以成倍地減少模型的參數(shù)量和計算量,降低網(wǎng)絡(luò)模型的時間復(fù)雜度和空間復(fù)雜度,大幅度縮短卷積運算時間,因此可以采用此方法節(jié)約計算成本,對網(wǎng)絡(luò)結(jié)構(gòu)進行輕量化。
語義分割任務(wù)中常使用交叉熵損失函數(shù)來反映預(yù)測結(jié)果與真實值之間的差距,輔助模型訓(xùn)練,對分割網(wǎng)絡(luò)進行優(yōu)化,CE損失函數(shù)公式如下
(6)
式中:Gi為像素點i的真實類別,Pi為語義分割網(wǎng)絡(luò)對像素點i的預(yù)測結(jié)果。鋼包底吹氬過程中產(chǎn)生的氬花圖像,通常存在鋼渣覆蓋區(qū)域遠大于氬花覆蓋區(qū)域的情況,存在類別不平衡現(xiàn)象。而使用交叉熵損失函數(shù)分割僅有前景與背景的圖片時,如果前景像素的數(shù)量遠遠小于背景像素的數(shù)量,損失函數(shù)中背景的成分就會占據(jù)主導(dǎo),導(dǎo)致模型嚴(yán)重偏向背景,影響語義分割效果。
DSC損失函數(shù)也常用于優(yōu)化語義分割網(wǎng)絡(luò),結(jié)果取值范圍在[0,1]之間,取值越大表示與真實值越相似,公式如下
(7)
式中:Gi·Pi代表兩像素矩陣點乘。當(dāng)語義分割目標(biāo)正負樣本強烈不平衡時,DSC損失函數(shù)效果更佳。但在正樣本為小目標(biāo)時DSC易產(chǎn)生嚴(yán)重的震蕩,因為在僅有前景和背景的情況下,小目標(biāo)一旦有部分像素預(yù)測錯誤,就會導(dǎo)致Loss值大幅度的變動,從而使梯度變化劇烈。因此,可對DSC進行改進,加入拉普拉斯平滑得到LSSC(laplace smoothing similarity coefficient)損失函數(shù),這樣可避免當(dāng)預(yù)測值和真實值都為零時,分子被零除,解決零概率問題,同時可以有效減少過擬合現(xiàn)象,公式如下
(8)
本文結(jié)合以上各損失函數(shù)特點,針對氬花圖像特性,設(shè)計了一種善于挖掘正樣本為小目標(biāo)的融合損失函數(shù)LD,公式如下
LD=LCE+LLSSC
(9)
在網(wǎng)絡(luò)訓(xùn)練時使用融合損失函數(shù)輔助優(yōu)化分割模型,可以避免分割結(jié)果中出現(xiàn)類別混淆現(xiàn)象,提高網(wǎng)絡(luò)對小目標(biāo)的分割能力和分割結(jié)果的邊沿精細度。
本文模型基于Tensorflow和Keras框架實現(xiàn),硬件環(huán)境為:CPU為Intel Core i7-10750H,GPU為NVIDIA GTX 1660Ti。軟件環(huán)境為:Window10、Tensorflow 1.14、Keras2.2.4、Python3.6.2。
為驗證網(wǎng)絡(luò)有效性,使用精確率(Precision)、召回率(Recall)、F-score、類別平均像素準(zhǔn)確率(mean intersection over union,MIoU)和平均交并比(mean pixel accuracy,MPA)作為模型評價指標(biāo)。采用Labelme軟件對氬花圖像標(biāo)注標(biāo)簽,用于訓(xùn)練網(wǎng)絡(luò)模型,標(biāo)簽圖像如圖3所示。
驗證時將氬花圖像像素預(yù)測結(jié)果分為4個部分,即真陽性(true positive,TP)、假陽性(false positive,F(xiàn)P)、真陰性(true negative,TN)、假陰性(false negative,F(xiàn)N),結(jié)果中TP表示預(yù)測為氬花實為氬花的部分,F(xiàn)P表示預(yù)測為氬花但不是氬花的部分,TN表示預(yù)測為背景實為背景部分,F(xiàn)N表示預(yù)測為背景但不是背景的部分,可得召回率公式為
(10)
精確率公式為
(11)
其中,| |運算符表示相關(guān)區(qū)域中的像素數(shù)。同時選用F-score作為綜合評價指標(biāo),其公式如下
(12)
MPA公式為
(13)
式中:c代表類別數(shù),pii表示類i被預(yù)測為類i的像素,pij表示類i被預(yù)測為類j的像素。MIoU為真實值和預(yù)測值的交集和并集之比,公式如下
(14)
實驗采用工業(yè)相機獲取鋼包底吹氬圖像制作數(shù)據(jù)集,共采集260張氬花圖片用作模型訓(xùn)練,圖像分辨率為473×473,使用Labelme軟件對圖像進行手工標(biāo)注。同時為提高模型精度和增加模型魯棒性,對原始數(shù)據(jù)集采用了基于幾何變換、顏色空間變換和像素點操作3類數(shù)據(jù)擴充方案,具體方法包括水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、平移、隨機旋轉(zhuǎn)、加入噪聲、對比度增強這6種擴充方式,結(jié)果如圖4所示。
擴充后數(shù)據(jù)集總數(shù)達到1300張,其中訓(xùn)練集、驗證集和測試集圖像數(shù)量分配情況見表1。
將擴充數(shù)據(jù)集的70%劃分為訓(xùn)練集,30%劃分為驗證集,訓(xùn)練次數(shù)設(shè)置50個Epoch,Batchsize設(shè)置為4,Dropout設(shè)置為0.1,采用Adam和Momentum優(yōu)化器共同優(yōu)化網(wǎng)絡(luò)參數(shù),提升訓(xùn)練速度。改進后的PSPNet網(wǎng)絡(luò)在訓(xùn)練集和驗證集上的損失函數(shù)隨迭代次數(shù)的變化曲線如圖5所示,準(zhǔn)確率變化曲線如圖6所示。
表1 數(shù)據(jù)集劃分情況
通過分析上圖可知,訓(xùn)練50個Epoch后準(zhǔn)確率和損失函數(shù)都已經(jīng)收斂,語義分割模型狀態(tài)穩(wěn)定,模型大小為9.58 M,可用于氬花圖像分割。
同時為驗證網(wǎng)絡(luò)結(jié)構(gòu)中各模塊的有效性,對模型進行消融實驗。采用控制變量法,分別使用MobileNet和ResNet作為模型的主干網(wǎng)絡(luò),驗證模型的輕量化效果。選擇不同尺度和層數(shù)的池化層,判斷特征融合對網(wǎng)絡(luò)精度的影響。分別使用交叉熵損失函數(shù)和融合損失函數(shù)輔助網(wǎng)絡(luò)訓(xùn)練,觀察融合損失函數(shù)對分割結(jié)果的優(yōu)化效果。檢測同時使用兩種激活函數(shù)和僅使用ReLU激活函數(shù)時,分割結(jié)果的精度變化。使用上述不同策略構(gòu)建分割網(wǎng)絡(luò),具體精度指標(biāo)見表2。
分析實驗結(jié)果可知,使用MobileNet或ResNet作為主干網(wǎng)絡(luò)提取模型特征時,二者的特征提取效果相近,但MobileNet網(wǎng)絡(luò)縮短了5倍的時間,體現(xiàn)了更好的實時性,實現(xiàn)了輕量化網(wǎng)絡(luò)的目的。同時發(fā)現(xiàn)隨著特征融合程度加深,在分割效果顯著提升的同時損耗時間也在逐漸增加,不過與降低的時間相比可以接受這部分的時間損耗而選擇保留精度的大幅度提升。對低高維區(qū)域合理分配不同的激活函數(shù)可使分割結(jié)果提高約4%的MPA,減輕了低維映射時信息損失帶來的影響。應(yīng)用融合損失函數(shù)輔助模型訓(xùn)練,在同等條件下使模型的MIoU提升了約10%,提高了模型分割小氬花的能力,表現(xiàn)出較好的優(yōu)化效果。
使用擴充后的氬花圖像數(shù)據(jù)集訓(xùn)練分割網(wǎng)絡(luò),然后將該網(wǎng)絡(luò)與其它經(jīng)典分割網(wǎng)絡(luò)進行對比實驗。實驗選取3張不同場景、不同狀態(tài)下的氬花圖像,圖片大小為473×473,實驗結(jié)果如圖7所示。
分析圖7可知,改進的PSPNet網(wǎng)絡(luò)與FCN和U-Net網(wǎng)絡(luò)相比,在使用FCN網(wǎng)絡(luò)分割時,F(xiàn)CN僅將氬花的光圈范圍分割出來,分割結(jié)果邊沿粗糙,表現(xiàn)較差。使用U-Net網(wǎng)絡(luò)分割時,結(jié)果表現(xiàn)優(yōu)于FCN,可以識別出氬花的輪廓,但仍存在著一定的誤差,不利于指導(dǎo)高精度的氬氣流量控制任務(wù)。而改進的PSPNet網(wǎng)絡(luò)分割結(jié)果與真實標(biāo)簽圖像相近,分割結(jié)果表現(xiàn)良好,可以較好地將緊密相鄰的氬花和較小的氬花都分割出來,同時分割結(jié)果的邊沿精細,分割誤差小,更適合鋼包底吹氬流量控制任務(wù)。而且,改進的網(wǎng)絡(luò)模型在保證分割精度的同時,對PSPNet網(wǎng)絡(luò)進行了輕量化設(shè)計,減少了模型的參數(shù)量和計算量,加快了網(wǎng)絡(luò)運行速度,滿足工業(yè)應(yīng)用對實時性的要求。傳統(tǒng)PSPNet網(wǎng)絡(luò)在CPU運行條件下分割一張圖片需要2.24 s,在GPU運行條件下分割一張圖片需要0.21 s,圖像處理速度較慢,易導(dǎo)致氬氣流量控制產(chǎn)生滯后,影響鋼液質(zhì)量。而輕量化后的PSPNet網(wǎng)絡(luò)在CPU運行條件下分割一張圖片需要0.46 s,在GPU運行條件下分割一張圖片僅需0.04 s,大大地提升了模型的圖像處理速度。
將輕量化PSPNet網(wǎng)絡(luò)與其它基于編碼解碼類的分割網(wǎng)絡(luò)進行對比實驗,實驗結(jié)果量化指標(biāo)見表3。
分析表3可知,在對氬花圖像進行分割時,F(xiàn)CN網(wǎng)絡(luò)的MIoU為0.77,MPA為0.81,分割精度較低,不滿足氬花圖像分割任務(wù)對精度的要求。U-Net網(wǎng)絡(luò)雖然在分割精度方面有一定的提升,但是網(wǎng)絡(luò)的參數(shù)量和計算量較大,分別為267 M和234.8 GFlops,提高了模型對硬件設(shè)備要求,使網(wǎng)絡(luò)分割速度降低,在GPU運行條件下處理一張圖片需要0.18 s,不能滿足實時性的要求。在使用傳統(tǒng)PSPNet網(wǎng)絡(luò)分割時,氬花圖像分割精度最高,但模型的參數(shù)量和計算量也最大,圖像處理速度緩慢,在CPU條件下為2.24 s,在GPU條件下為0.21 s,網(wǎng)絡(luò)實時性表現(xiàn)較差,會產(chǎn)生嚴(yán)重的氬氣流量控制滯后的問題。而采用改進的PSPNet網(wǎng)絡(luò)分割氬花圖像時,網(wǎng)絡(luò)分割精度遠高于FCN網(wǎng)絡(luò),與U-Net網(wǎng)絡(luò)相比,輕量化的PSPNet網(wǎng)絡(luò)MIoU也提高了6%,MPA提高了5%,高質(zhì)量地完成了語義分割任務(wù)。同時,分析模型的時間復(fù)雜度和空間復(fù)雜度可知,輕量化后的PSPNet網(wǎng)絡(luò)參數(shù)量僅為9.58 M,相比傳統(tǒng)PSPNet網(wǎng)絡(luò)縮小了45倍,計算量為21.4 GFlops,縮小了12倍,模型的圖片處理速度提升了5倍,在GPU運行條件下處理單張圖像僅需40 ms,滿足了底吹氬圖像分割任務(wù)對實時性的要求。分析可知應(yīng)用深度可分離卷積替代傳統(tǒng)卷積大幅度提高了網(wǎng)絡(luò)運算速度,降低了模型對硬件的需求。相比其它基于編碼解碼類的語義分割網(wǎng)絡(luò),改進的PSPNet網(wǎng)絡(luò)在保持良好的精確性的前提下,減少了模型的參數(shù)量和計算量,滿足了氬花圖像分割時對精度和速度的要求。實驗結(jié)果表明輕量化的PSPNet網(wǎng)絡(luò)適用于鋼包底吹氬任務(wù)。
為實現(xiàn)鋼包底吹氬過程中氬氣流量智能控制,首先需要完成氬花圖像分割的任務(wù),這對分割模型的準(zhǔn)確性和實時性都提出了較高的要求。本文融合MobileNet-V2網(wǎng)絡(luò)輕量化特點對PSPNet進行改進,使用MobileNet中的倒殘差模塊和瓶頸層結(jié)構(gòu)保留特征多樣性,并提高網(wǎng)絡(luò)特征利用率。沿用金字塔池化模塊增加圖像感受野,提高復(fù)雜場景解析能力。使用融合損失函數(shù)輔助模型訓(xùn)練,解決正負樣本不平衡問題和零概率問題對分割結(jié)果的影響,提高對正樣本的挖掘率和分割結(jié)果邊緣精細程度。對高維信息使用ReLU激活函數(shù),對低維信息使用Linear,避免低維映射過程中ReLU函數(shù)過濾掉負值信息而造成激活空間坍塌,導(dǎo)致分割精度降低。實驗結(jié)果表明,改進的PSPNet網(wǎng)絡(luò)具有語義分割精度高和處理速度快的特點。其中MPA為0.97,MIoU為0.94,圖片平均處理速度為40 ms,在保障精度的同時盡可能地提升了圖像處理速度,使網(wǎng)絡(luò)滿足了鋼包底吹氬過程對實時性和精度的要求。