張 凱 羅 欣 孫志剛 肖 力
(華中科技大學(xué)人工智能與自動(dòng)化學(xué)院 武漢 430074)
定子絕緣故障在大型發(fā)電機(jī)故障中占有重要比例,定子表面因?yàn)槠滂F芯過熱造成脫漆、碳化、縫隙等絕緣劣化故障,直接影響發(fā)電機(jī)整體運(yùn)行[1]。當(dāng)前對(duì)發(fā)電機(jī)定子表面的絕緣缺陷檢測幾乎都是依靠人工抽轉(zhuǎn)子檢測[2],這種人工缺陷判別的方式受人為因素影響較大。而利用以爬壁機(jī)器人為載體的視覺系統(tǒng)拍攝定子表面圖像,可以在不抽轉(zhuǎn)子的情況下,進(jìn)行膛內(nèi)定子表面缺陷自動(dòng)檢測,避免因人工檢測造成的漏檢、誤檢、差異化檢測的問題,很大程度地節(jié)約周期檢修成本。
近年來,以Faster-RCNN[3]為代表的二階段網(wǎng)絡(luò)和以YOLO[4]系列、SSD[5]系列為代表一階段的網(wǎng)絡(luò)在物體表面缺陷檢測上得到了廣泛的應(yīng)用。如蔡超鵬等利用Faster R-CNN設(shè)計(jì)了一套金屬表面缺陷自動(dòng)檢測平臺(tái)[6],實(shí)現(xiàn)了金屬軸表面的缺陷檢測和定位,檢測精度達(dá)到了94%,但其單幀檢測速度在200ms左右,達(dá)不到實(shí)時(shí)性要求;黃鑫元[7]等利用基于深度可分離卷積的YOLOv3網(wǎng)絡(luò)實(shí)現(xiàn)了鋼絲繩表面損傷診斷的方法,平均精度為77%,同時(shí)將YOLOv3模型大小縮減了3倍??偟貋砜矗浑A段網(wǎng)絡(luò)較二階段網(wǎng)絡(luò)在速度上有明顯優(yōu)勢,特別是隨著YOLOv4的出現(xiàn),一階段網(wǎng)絡(luò)在主流公開數(shù)據(jù)集上的精度和速度都均超越的二階段網(wǎng)絡(luò),并且也在物件的表面缺陷檢測中廣泛應(yīng)用。Huafu Deng[8]等將級(jí)聯(lián)的YOLOv4網(wǎng)絡(luò)用于金屬表面的復(fù)雜裂紋檢測,該方法比傳統(tǒng)的檢測方法精度有很大提高,并且比YOLOv4的檢測速度快28%。雖然這些檢測網(wǎng)絡(luò)精度基本能滿足要求,但其體積都比較龐大,對(duì)硬件性能要求較高,無法在嵌入式設(shè)備上進(jìn)行部署,難以在工業(yè)界推廣使用。
基于輕量化改造的思想,本文將改進(jìn)的MobileNetv3[9]網(wǎng)絡(luò)替換原始YOLOv4的主干特征網(wǎng)絡(luò),精簡YOLOv4網(wǎng)絡(luò)特征融合網(wǎng)絡(luò),并通過減小卷積核,合并卷積層和批量歸一化層的方式得到了一種輕量化的YOLOv4檢測網(wǎng)絡(luò)模型Tiny-YOLOv4。實(shí)驗(yàn)結(jié)果表明,本文檢測網(wǎng)絡(luò)模型的精度優(yōu)于YOLOv4,模型體積大小和檢測速度遠(yuǎn)超過原始YOLOv4。
YOLO系列檢測網(wǎng)絡(luò)是一類基于回歸思想的一階段目標(biāo)檢測網(wǎng)絡(luò),目前已經(jīng)演進(jìn)到第四個(gè)版本YOLOv4[10]。YOLOv4整體結(jié)構(gòu)如圖1所示,其結(jié)構(gòu)可分為CSPDarknet53主干網(wǎng)絡(luò),PAN[11]特征融合網(wǎng)絡(luò),YOLO檢測層網(wǎng)絡(luò)三部分。其主干網(wǎng)絡(luò)有72個(gè)卷積層,共進(jìn)行了5次下采樣。在結(jié)構(gòu)上通過引入跨階段局部網(wǎng)絡(luò)結(jié)構(gòu)(CSP結(jié)構(gòu)[12])來解決深度CNN中網(wǎng)絡(luò)優(yōu)化的梯度信息重復(fù)問題,進(jìn)而減少網(wǎng)絡(luò)計(jì)算量。在特征融合層利用路徑聚合結(jié)構(gòu)(PAN結(jié)構(gòu))融合兩個(gè)特征金字塔對(duì)應(yīng)的尺度特征,增強(qiáng)了該網(wǎng)絡(luò)在三個(gè)特征尺度的特征提取能力和對(duì)不同尺度目標(biāo)的檢測能力。

圖1 YOLOv4整體網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv4使用最后三次下采樣的特征圖大小作為目標(biāo)檢測的三個(gè)尺度,再經(jīng)過兩次上采樣后得到52×52大小的特征圖輸出,再利用步長為2的卷積進(jìn)行兩次下采樣,得到兩個(gè)堆疊順序相反的特征金字塔,將兩個(gè)金字塔對(duì)應(yīng)的三個(gè)尺度的特征層進(jìn)行通道融合,并分別送入檢測層,最終得到13×13×27,26×26×27,52×52×27這三個(gè)尺度的結(jié)果特征圖,分別用于檢測大、中、小三個(gè)尺度的目標(biāo)。
MobileNetv3是Google公司通過NAS[13]設(shè)計(jì)的一種基于強(qiáng)化學(xué)習(xí)的自搜索網(wǎng)絡(luò)。該網(wǎng)絡(luò)有大小兩個(gè)版本:MobileNetv3-Large和MobileNetv3-Small。相比其前兩代網(wǎng)絡(luò),其主要有如下優(yōu)點(diǎn)。
1)沿用了MobileNetv2[14]中的深度可分離卷積方式和具有線性瓶頸層的倒殘差結(jié)構(gòu)。其中,深度可分離卷積將普通卷積分解為一次深度卷積和一個(gè)點(diǎn)卷積。當(dāng)輸入特征圖大小為Dk×Dk×M,輸出特征圖的大小為Dk×Dk×N,卷積核大小為K×K,則一次普通卷積的計(jì)算量為

而深度可分離卷積的計(jì)算量為深度卷積和點(diǎn)卷積計(jì)算量之和,即:

則普通卷積和深度可分離卷積計(jì)算量之比為

可見,當(dāng)卷積核大小為3,通道數(shù)為256時(shí),深度可分離卷積的計(jì)算量僅為普通卷積的1/9。
2)MobileNetv3在倒殘差結(jié)構(gòu)中的深度卷積和點(diǎn)卷積之間引入了擠壓與激勵(lì)SE[15](Squeezeand-Excitation)結(jié)構(gòu),如圖2所示,對(duì)于輸入C×W×H大小的特征圖,經(jīng)過SE模塊后,將C個(gè)通道都賦予不同的權(quán)值,讓網(wǎng)絡(luò)學(xué)習(xí)到特征圖不同通道之間的關(guān)系,能夠讓模型更加關(guān)注信息量最大的通道特征,而抑制不重要的通道特征。

圖2 倒殘差結(jié)構(gòu)中擠壓與激勵(lì)網(wǎng)絡(luò)結(jié)構(gòu)
3)使用hard-swish激活函數(shù)代替swish激活函數(shù)來降低計(jì)算量,Hard-swish函數(shù)表達(dá)式如下:

由于swish激活函數(shù)對(duì)嵌入式平臺(tái)而言計(jì)算量過大,hard-swish函數(shù)通過將swish函數(shù)分段線性化,在不犧牲精度的前提下減小了計(jì)算量,圖3給出了swish激活函數(shù)和hard-swish激活函數(shù)的曲線圖。

圖3 swish與h-swish對(duì)比圖
為使改進(jìn)的YOLOv4體積更小,本文采用網(wǎng)絡(luò)輕量化的思想,將改進(jìn)的輕量級(jí)網(wǎng)絡(luò)MobileNetv3作為YOLOv4的主干特征提取網(wǎng)絡(luò),設(shè)計(jì)出了一種輕量化的YOLOv4網(wǎng)絡(luò)Tiny-YOLOv4。
MobileNetv3借鑒了MobileNetv1[16]中的深度可分離卷積思想,相比于YOLOv4的主干網(wǎng)絡(luò)CSPDarkNet53,其既保持了較強(qiáng)的特征提取能力,又很大程度減少模型的體積。本文從提高前向推理速度的角度對(duì)MobileNetv3做了如下改進(jìn)。
1)采用小卷積核減少計(jì)算量
小卷積核是減少參數(shù)量的重要途徑,在MobileNetv3的bottleneck模塊的深度卷積中,使用5×5的卷積核來增大卷積核的感受野,而本文使用兩個(gè)3×3卷積代替一個(gè)5×5卷積來達(dá)到相同效果,卷積過程如圖4所示。

圖4 兩次3×3卷積示意圖
兩次3×3卷積的感受野和一個(gè)5×5卷積是相同的,在通道相同情況下,前者計(jì)算量僅為后者的0.7倍。
2)合并卷積層和批量歸一化層
批量歸一化層(Batch Normalization,BN)用于將數(shù)據(jù)進(jìn)行歸一化處理,能使網(wǎng)絡(luò)在訓(xùn)練時(shí)加速收斂,并能夠防止過擬合現(xiàn)象發(fā)生,其計(jì)算公式為

xconv表示由卷積層輸入到BN層的特征圖,μ和σ2分別表示特征圖節(jié)點(diǎn)的均值和方差,?為很小的偏移量。γ和β分別表示縮放因子和偏置值,是需要網(wǎng)絡(luò)訓(xùn)練的參數(shù)。xconv的計(jì)算公式為其中xin表示卷積層的輸入,w表示卷積核的權(quán)值。

盡管BN層在訓(xùn)練時(shí)起到了積極的作用,但在網(wǎng)絡(luò)進(jìn)行前向推理時(shí),BN會(huì)影響其速度。因此本文將MobileNetv3的卷積層和BN層進(jìn)行合并,用以加速網(wǎng)絡(luò)的推理過程,合并公式如下所示:

則將卷積層和BN層合并后,新的卷積計(jì)算方為

其中

將BN層的權(quán)值融合到卷積層的計(jì)算中,可以避免網(wǎng)絡(luò)在進(jìn)行前向推理時(shí)計(jì)算BN的參數(shù),而只需計(jì)算原始卷積層的權(quán)值和偏置來達(dá)到相同的計(jì)算效果,進(jìn)而達(dá)到提高網(wǎng)絡(luò)推理速度的目的。
YOLOv4主干網(wǎng)絡(luò)中跨階段網(wǎng)絡(luò)CSP結(jié)構(gòu)的使用,避免了在網(wǎng)絡(luò)優(yōu)化中梯度信息的重復(fù)使用,減少了計(jì)算量的同時(shí)又能保持準(zhǔn)確率不變,降低了計(jì)算瓶頸。鑒于CSP結(jié)構(gòu)的該優(yōu)點(diǎn),本文算法也在特征融合層引入了輕量化的CSP結(jié)構(gòu)。圖5(a)和圖5(b)分別給出了原始YOLOv4中使用的CSP結(jié)構(gòu)和本文所設(shè)計(jì)的輕量化CSP結(jié)構(gòu)。


圖5 CSP結(jié)構(gòu)圖
對(duì)兩種跨階段局部連接(CSP)結(jié)構(gòu),本文一方面將原始YOLOv4的CSP結(jié)構(gòu)中Mish激活函數(shù)換成了計(jì)算量較小的hard-swish激活函數(shù),另一方面通過將CSP結(jié)構(gòu)中的兩個(gè)卷積層(圖中兩個(gè)單獨(dú)的Conv2D模塊)的計(jì)算結(jié)果直接進(jìn)行通道融合后,再共用一個(gè)BN層和激活函數(shù),這樣避免了這兩個(gè)卷積塊都單獨(dú)計(jì)算批量歸一化和激活值,來進(jìn)一步減小網(wǎng)絡(luò)的計(jì)算量。
經(jīng)過上述輕量化改進(jìn)后,本文Tiny-YOLOv4模型的可訓(xùn)練參數(shù)量由原始YOLOv4的64.1M減少到7.3M,模型參數(shù)量縮減程度達(dá)64%,進(jìn)而從結(jié)構(gòu)設(shè)計(jì)上極大地減小了YOLOv4模型的體積。本文設(shè)計(jì)的Tiny-YOLOv4網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖6所示。

圖6 本文Tiny-YOLOv4的整體網(wǎng)絡(luò)結(jié)構(gòu)圖
網(wǎng)絡(luò)中將MobileNetv3網(wǎng)絡(luò)中5×5的卷積核替換成兩個(gè)3×3的卷積核以減小計(jì)算量。同時(shí)主干網(wǎng)絡(luò)分別輸出了52×52×40,26×26×112,13×13×960三個(gè)尺度的特征圖,再送入Tiny-YOLOv4算法的PAN特征融合層。
在PAN特征融合網(wǎng)絡(luò)結(jié)構(gòu)中,本文使用結(jié)合了跨階段局部連接結(jié)構(gòu)的卷積模塊CSP_Conv2D代替原始YOLOv4網(wǎng)絡(luò)中的5個(gè)堆疊卷積塊。再經(jīng)過兩次上采樣和兩次下采樣之后,形成了兩個(gè)反向的特征金字塔,將兩個(gè)金字塔對(duì)應(yīng)大小的特征層進(jìn)行通道融合,送入Tiny-YOLOv4的檢測層網(wǎng)絡(luò),最終輸出13×13×27,26×26×27,52×52×27三個(gè)尺度的結(jié)果特征圖用于計(jì)算三個(gè)尺度的預(yù)測框。
實(shí)驗(yàn)中電腦的硬件環(huán)境為Inter(R)Xeon E5-2603 v4 CPU,內(nèi)存為8G,GPU為NVIDIA GTX1080Ti,顯存為11G。深度學(xué)習(xí)框架是pytorch1.6,GPU加速庫版本為CUDA10.2,Cudnn7.6.5。
本文定子鐵芯表面圖像數(shù)據(jù)集通過發(fā)電機(jī)膛內(nèi)爬壁機(jī)器人上的微距相機(jī)采集。其中腔內(nèi)爬壁機(jī)器人以及實(shí)驗(yàn)平臺(tái)如圖7所示,履帶式永磁吸附爬壁機(jī)器人通過外部旋轉(zhuǎn)軌道進(jìn)入發(fā)電機(jī)腔內(nèi)壁,安裝在小車頭部的視覺模塊拍攝定子鐵芯表面圖像,再通過USB數(shù)據(jù)線傳回上位機(jī)。

圖7 現(xiàn)場圖像采集平臺(tái)
獲得的圖像數(shù)據(jù)集包含四種缺陷樣本(漆瘤、掉漆、油污、鐵芯縫隙)共為397張,其中漆瘤圖像114張,掉漆圖像87張,油污圖像93張,鐵芯縫隙圖像103張。四種缺陷的典型圖片如圖8所示。

圖8 發(fā)電機(jī)定子表面典型缺陷種類
為了擴(kuò)充數(shù)據(jù)樣本并增強(qiáng)模型的泛化能力,本文采用加噪聲、裁剪、翻轉(zhuǎn)、銳化、鏡像五種方式將原始樣本數(shù)量擴(kuò)增到8000張,并按照8:1:1的比例進(jìn)行訓(xùn)練集,驗(yàn)證集和測試集的分配。
本文分別對(duì)YOLOv3、YOLOv4、經(jīng)過直接整合的MobileNetv2-YOLOv4,MobileNetv3-YOLO4以及本文Tiny-YOLOv4共5種網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以便將本文網(wǎng)絡(luò)與其余四種網(wǎng)絡(luò)進(jìn)行性能對(duì)比。
使用對(duì)應(yīng)的預(yù)訓(xùn)練權(quán)重分別初始化五種網(wǎng)絡(luò)。每個(gè)網(wǎng)絡(luò)均使用下述方法訓(xùn)練:將網(wǎng)絡(luò)的初始動(dòng)量設(shè)置為0.9,初始學(xué)習(xí)率調(diào)整為0.001,訓(xùn)練批次大小設(shè)置為16。先凍結(jié)主干網(wǎng)絡(luò),進(jìn)行50個(gè)輪次的預(yù)熱訓(xùn)練后,再將學(xué)習(xí)率設(shè)置為0.0001,將解凍后的整體網(wǎng)絡(luò)再訓(xùn)練100個(gè)輪次。
為了對(duì)比各個(gè)模型的性能,本文使用精度,召回率,平均精度,均值平均精度,作為評(píng)價(jià)標(biāo)準(zhǔn),四種指標(biāo)的計(jì)算方法如下:

式中,TP、FP、FN分別表示真正樣本數(shù)目,假正樣本數(shù)目,假負(fù)樣本數(shù)目,precision表示精度,recall表示召回率,A P表示單類目標(biāo)的平均精度,mAP為所有類別的平均精度的均值,n為目標(biāo)類別數(shù)。本文將上述5種模型分別在發(fā)電機(jī)定子表面缺陷測試集上(包含漆瘤、油污、鐵芯縫隙、掉漆各200張)進(jìn)行測試,實(shí)驗(yàn)中設(shè)定目標(biāo)框與預(yù)測框的IOU檢測閾值為0.5。表1給出了5種網(wǎng)絡(luò)模型在測試數(shù)據(jù)集上的平均精度AP和召回率recall對(duì)比結(jié)果。
由表1中的mAP指標(biāo)來看,YOLOv3的檢測精度相對(duì)最低為95.8%,特別是對(duì)漆瘤這類缺陷精度只有88.7%,遠(yuǎn)低于其余四種網(wǎng)絡(luò)。而原始YOLOv4,MobileNetv2-YOLOv4,MobileNetv3-YOLOv4模型的mAP值分別為97.6%,97.6%,97.4%。而本文網(wǎng)絡(luò)Tiny-YOLOv4的均值平均精度mAP比YOLOv4高0.7%,比經(jīng)過直接整合的兩種網(wǎng)絡(luò)Mobile-Netv2-YOLOv4和MobileNetv3-YOLOv4分別高0.7%和0.9%。說明本文的Tiny-YOLOv4檢測網(wǎng)絡(luò)在本文數(shù)據(jù)集上是有效的,而且精度上優(yōu)于其余四種網(wǎng)絡(luò)。由于本文的網(wǎng)絡(luò)結(jié)構(gòu)輕量化設(shè)計(jì),使本文算法較其余四種網(wǎng)絡(luò)在權(quán)重大小和參數(shù)量上表現(xiàn)出較好的性能。表2給出了五種網(wǎng)絡(luò)權(quán)重模型大小和計(jì)算量(BFLOPS)對(duì)比結(jié)果。

表1 不同模型精度對(duì)圖

表2 不同網(wǎng)絡(luò)模型大小和計(jì)算量(BFLOPS)
根據(jù)表2的五種模型大小和計(jì)算量(BFLOPS)得出,YOLOv3,YOLOv4模型大小分別為246.4M和256.3M,網(wǎng)絡(luò)計(jì)算量分別為32.77和29.89,兩種模型對(duì)硬件計(jì)算性能要求較高,適合于高性能計(jì)算平臺(tái)上的部署。而本文網(wǎng)絡(luò)大小僅為39.6M,比YOLOv4體積減少84.5%,同時(shí)精度優(yōu)于原始YOLOv4,說明本文算法適合在嵌入式設(shè)備上的進(jìn)行部署。
為了測試不同模型在部署時(shí)的計(jì)算性能,本文將Tiny-YOLOv4與其余四種網(wǎng)絡(luò)在訓(xùn)練平臺(tái)上進(jìn)行了前向推理測試。測試時(shí),使用相同圖像推理400次,再取其平均值作為網(wǎng)絡(luò)模型的單張推理時(shí)間。
表3給出了五種模型單幀推理速度對(duì)比結(jié)果。本文Tiny-YOLOv4的推理時(shí)間為15.3ms,幀率達(dá)到了65.4幀/s,在五種網(wǎng)絡(luò)模型中速度最快,而YOLOv4的單幀推理速度為28.0ms,比本文網(wǎng)絡(luò)慢12.7ms。而且本文網(wǎng)絡(luò)比MobileNetv2-YOLOv4和MobileNetv3-YOLOv4的單張推理時(shí)間分別快4.5ms和1.1ms。說明本文算法在推理速度和檢測精度上均優(yōu)于其余四種網(wǎng)絡(luò)。圖8給出了本文算法部分檢測效果圖。

表3 不同模型推理速度對(duì)比

圖9 本文算法在測試集中部分檢測結(jié)果
針對(duì)大型發(fā)電機(jī)定子表面缺陷檢測任務(wù),本文結(jié)合MobileNetv3設(shè)計(jì)出了一種輕量化的YOLOv4檢測網(wǎng)絡(luò)Tiny-YOLOv4。通過在結(jié)構(gòu)上對(duì)YOLOv4的輕量化改進(jìn),使得本文網(wǎng)絡(luò)模型精度在本文定子表面缺陷數(shù)據(jù)集上優(yōu)于YOLOv4的同時(shí),模型大小和推理速度均遠(yuǎn)超YOLOv4,并且也超過了兩種直接整合的網(wǎng)絡(luò)MobileNetv2-YOLOv4和Mobile-Netv3-YOLOv4,說明本文對(duì)YOLOv4輕量化改進(jìn)是有效的。本文算法在模型大小上的優(yōu)勢,使得其具有在嵌入式邊緣設(shè)備上進(jìn)行定子表面缺陷檢測的應(yīng)用前景。