高文俊,張海峰
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院)
隨著國家大力發(fā)展清潔能源,風(fēng)力發(fā)電由于動力獲取簡單、儲存容量大,被國家大力扶持。但是由于風(fēng)力發(fā)電機(jī)工作往往處于沿海潮濕或者沙漠干旱等惡劣環(huán)境,風(fēng)力發(fā)電設(shè)備就會出現(xiàn)各種損傷,導(dǎo)致發(fā)電效率降低。
風(fēng)機(jī)葉片是風(fēng)機(jī)設(shè)備中的重要部件。傳統(tǒng)的風(fēng)機(jī)葉片缺陷檢測技術(shù)主要基于圖像處理檢測技術(shù)和傳感器等完成,如閾值分割、邊緣提取技術(shù)和聲傳感器、振動傳感器、光傳感器等。曹慶才等[1]為了提取風(fēng)機(jī)葉片缺陷,采用機(jī)器視覺方法,首先對風(fēng)機(jī)葉片圖像進(jìn)行濾波和對比度增強(qiáng)預(yù)處理,然后采用OSTU 閾值法進(jìn)行圖像分割,最后使用Canny邊緣檢測算法提取葉片缺陷特征;嚴(yán)海領(lǐng)[2]為檢測不同顏色風(fēng)機(jī)葉片中的缺陷類型,分析傳統(tǒng)邊緣提取算子的提取效果,得出采用Prewitt 算子提取邊緣特征和圖像增強(qiáng)處理的方法,對不同顏色風(fēng)機(jī)葉片缺陷特征提取效果較好;鄒潔等[3]將光纖光柵傳感器布置在風(fēng)機(jī)葉片上,對傳感器接收到的沖撞信號進(jìn)行信號能量分布和中心波長分析來得出風(fēng)機(jī)葉片是否存在表面損傷缺陷。但是這些技術(shù)都有不足之處,如基于傳統(tǒng)圖像處理技術(shù)的缺陷檢測方法,需要人工設(shè)計(jì)的算法去提取相對應(yīng)的缺陷明顯特征,人為主觀性大,且提取效果受環(huán)境因素影響較大,對環(huán)境要求比較嚴(yán)格,識別準(zhǔn)確度不高?;趥鞲衅鳈z測技術(shù)的方法,需要人為在風(fēng)機(jī)葉片表面布置對應(yīng)的傳感器設(shè)備,搭建檢測傳感器信號系統(tǒng),整體花費(fèi)費(fèi)用大,且不能對缺陷類別進(jìn)行分類。隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的迅速發(fā)展,深度學(xué)習(xí)具有根據(jù)標(biāo)簽信息自主學(xué)習(xí)類別特征的模型能力,使之成為缺陷識別的熱門技術(shù)。
基于深度學(xué)習(xí)的缺陷目標(biāo)檢測方法主要分為2 類:一階段網(wǎng)絡(luò)和兩階段網(wǎng)絡(luò)。兩階段網(wǎng)絡(luò)預(yù)測準(zhǔn)確度高,但檢測速度弱于一階段網(wǎng)絡(luò)。Faster R-CNN[4]是典型的兩階段端到端的目標(biāo)檢測網(wǎng)絡(luò),其基本原理是利用RPN(Region Proposal Network)組件在卷積網(wǎng)絡(luò)生成的特征圖上提出一組可能位于目標(biāo)對象的邊界框區(qū)域,然后將提出的邊界框區(qū)域傳遞給ROI 池化層進(jìn)行同一尺度化,從而構(gòu)成端到端式的網(wǎng)絡(luò)模型構(gòu)建,使其完成目標(biāo)分類結(jié)果和邊界框回歸輸出。由于兩階段網(wǎng)絡(luò)模型在檢測速度方面較弱,因此一階段網(wǎng)絡(luò)被提出。SSD[5]和YOLO[6-9]系列為典型的一階段目標(biāo)檢測算法。該類網(wǎng)絡(luò)把目標(biāo)分類任務(wù)和檢測任務(wù)操作過程都集成在一個(gè)時(shí)間段過程中,不像兩階段網(wǎng)絡(luò)需要單獨(dú)提取目標(biāo)類別特征和目標(biāo)區(qū)域進(jìn)行目標(biāo)檢測任務(wù),并且一階段網(wǎng)絡(luò)訓(xùn)練過程比兩階段網(wǎng)絡(luò)訓(xùn)練過程簡單。
針對傳統(tǒng)風(fēng)機(jī)葉片檢測方式的不足,本文采用一階段網(wǎng)絡(luò)YOLOv4 算法進(jìn)行風(fēng)機(jī)葉片缺陷檢測。為了使該算法達(dá)到實(shí)際運(yùn)行需求,將其主干網(wǎng)絡(luò)更換為Ghost Net[10]。利用k-means 方法處理用于訓(xùn)練的標(biāo)簽數(shù)據(jù)進(jìn)行類別錨框大小選取。將Focal loss[11]損失函數(shù)代替原算法模型的分類交叉熵?fù)p失函數(shù)來訓(xùn)練風(fēng)機(jī)葉片缺陷數(shù)據(jù)集,提高了YOLOv4識別風(fēng)機(jī)葉片缺陷的準(zhǔn)確率和速度。
YOLOv4 算法是一種單階段目標(biāo)檢測算法,在YOLO 系列基本原理上進(jìn)行了網(wǎng)絡(luò)架構(gòu)改進(jìn)。YOLO 系列基本原理是將輸入圖片輸入所構(gòu)建的端到端網(wǎng)絡(luò)模型中,輸入圖片經(jīng)過網(wǎng)絡(luò)模型分割成S×S 個(gè)網(wǎng)格區(qū)域,然后由每個(gè)網(wǎng)格區(qū)域所提取的特征預(yù)測那些可能落在該網(wǎng)格區(qū)域內(nèi)的目標(biāo),每個(gè)網(wǎng)格區(qū)域會產(chǎn)生多個(gè)邊界框(Bounding Box)以及邊界框的置信度(Confidence Score),每個(gè)邊界框包含5 個(gè)參數(shù),即框的位置坐標(biāo)(x,y,h,w)和置信度[12]。最后利用設(shè)計(jì)的損失函數(shù)訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu),使模型收斂能夠預(yù)測這些邊界框參數(shù)和分類類別。
如圖1 所示,YOLOv4 算法框架由特征提取網(wǎng)絡(luò)(Backbone)和結(jié)合特征融合的頸部模塊(Neck)以及進(jìn)行目標(biāo)位置回歸和分類的檢測頭(Head)3 部分組成[13]。其中特征提取網(wǎng)絡(luò)為CSP-Darknet53,是一種全卷積神經(jīng)網(wǎng)絡(luò),結(jié)合CSP 基本組件減少傳統(tǒng)圖像特征提取網(wǎng)絡(luò)推理計(jì)算量大的問題;Neck 模塊結(jié)合特征融合結(jié)構(gòu)(空間金字塔池化結(jié)構(gòu)(SPP)和特征金字塔結(jié)構(gòu)(PANet))形成路徑聚合網(wǎng)絡(luò),能夠融合深淺層的語義信息特征和空間特征進(jìn)行多尺度目標(biāo)檢測。檢測頭采用傳統(tǒng)的YOLOv3 檢測頭,進(jìn)行分類預(yù)測和目標(biāo)位置回歸,置信度預(yù)測。
圖1 YOLOv4 整體網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv4Network diagram
損失函數(shù)是一個(gè)網(wǎng)絡(luò)模型訓(xùn)練時(shí)的重要部分。YOLOv4 損失函數(shù)由分類損失函數(shù)(Classificition loss)和回歸損失函數(shù)(Bounding Box Regeression Loss)以及置信度函數(shù)(Confiden loss)3 部分組成,其關(guān)系式為
式中:λ1,λ2,λ3——平衡系數(shù),Lconf——置信度損失,Lcla——分類損失,Lloc——回歸損失函數(shù)。
YOLOv4 置信度損失和分類損失均延續(xù)YOLOv3 二值交叉熵?fù)p失函數(shù),回歸損失則采用了CIoU 損失函數(shù)。其中CIoU 損失函數(shù)公式為
式中:IoU——真實(shí)框面積和預(yù)測框面積之間交集與并集的比值;b、bgt——預(yù)測框、真實(shí)框的中心坐標(biāo);p2(b,bgt)——預(yù)測框和真實(shí)框中心點(diǎn)坐標(biāo)之間的歐式距離;c2——預(yù)測框和真實(shí)框之間的對角線距離;wgt,w,hgt,h——真實(shí)框和預(yù)測框的寬和高;v——衡量長寬比一致性的參數(shù)[14];a——用于權(quán)衡的參數(shù)。
本文主要從目標(biāo)檢測模型的主干網(wǎng)絡(luò)和分類損失函數(shù)2 個(gè)方面對YOLOv4 算法進(jìn)行改進(jìn)。
Ghost net 是由華為諾亞方舟實(shí)驗(yàn)室提出的一種新的提取圖像特征的卷積神經(jīng)網(wǎng)絡(luò),提出一種新的卷積結(jié)構(gòu)方式,稱為Ghost module,如圖2 所示。該卷積結(jié)構(gòu)利用類似深度分離卷積方式將一個(gè)傳統(tǒng)卷積形式分解成3 個(gè)步驟,先利用傳統(tǒng)卷積提取部分原始特征,然后利用少量的線性計(jì)算操作生成額外Ghost 特征,最后將原始特征和額外Ghost 特征進(jìn)行拼接并輸出,這樣減少了一半的卷積核數(shù)目,且保證特征圖中變化的冗余特征不減少,并減少了一半的卷積計(jì)算,有助于模型主干輕量化。
圖2 The Ghost ModuleFig.2 The Ghost Module
識別要求在邊緣設(shè)備上達(dá)到實(shí)時(shí)性,而原有YOLOv4 算法采用的是CSPDarek net 主干網(wǎng)絡(luò)框架,模型參數(shù)量相對較大,且其推理速度和識別精確度需要大量的計(jì)算機(jī)硬件資源。為了達(dá)到滿足識別硬件要求,需對CSPDark net 主干網(wǎng)絡(luò)進(jìn)行輕量化,故更換原有主干網(wǎng)絡(luò)為Ghost net,在大幅降低主干網(wǎng)絡(luò)參數(shù)量的同時(shí)保證特征提取效果基本不變。改進(jìn)的YOLOv4 算法結(jié)構(gòu)如圖3 所示
圖3 改進(jìn)后的YOLOv4Fig.3 Improved YOLOv4
圖3 中Ghos_bot 全稱為Ghost_bottleneck,針對不同卷積步長參數(shù)對應(yīng)2 種結(jié)構(gòu)形式:步長為1時(shí),輸入和輸出的特征圖尺度保持不變,只進(jìn)行特征圖數(shù)量的伸縮;步長為2 時(shí),對輸入特征圖尺度進(jìn)行壓縮,利用底層特征圖信息獲取更高級的特征信息。有效組合2 種結(jié)構(gòu)方式使主干網(wǎng)絡(luò)模型能夠輸出對應(yīng)的PAN 三層特征圖尺度,實(shí)現(xiàn)Ghost net與PAN 的之間的結(jié)合。
由于風(fēng)機(jī)葉片數(shù)據(jù)集類別分布不均勻,且缺陷形式大部分為小型缺陷,若采用原有損失函數(shù)進(jìn)行目標(biāo)檢測模型訓(xùn)練,訓(xùn)練出的模型識別精度不佳易導(dǎo)致缺陷種類誤檢或漏檢情況,不利于實(shí)際應(yīng)用場景。產(chǎn)生原因主要是YOLO 系統(tǒng)算法層面的問題,一般來說一張圖片中需要檢測的目標(biāo)像素所占整張圖片分辨率比例較小,而YOLO 系統(tǒng)算法又是基于回歸框進(jìn)行目標(biāo)位置回歸,在產(chǎn)生回歸框的過程中會因?yàn)楸尘靶畔⒄紦?jù)圖片比例大產(chǎn)生許多與所需要檢測的目標(biāo)無關(guān)的負(fù)樣本信息,使得正負(fù)樣本分布不均衡且當(dāng)多類別樣本分布不均勻時(shí)大量樣本的類別相當(dāng)于少量樣本的類別而言就會產(chǎn)生大量的負(fù)樣本,會使得模型傾向于負(fù)樣本樣本訓(xùn)練,因此采用Focal loss 代替原有YOLOv4 中的分類交叉熵函數(shù),提高了不平衡樣本識別率。
損失函數(shù)計(jì)算為
式中:p——正樣本概率;α,γ——控制樣本損失比例超參數(shù),控制這2 個(gè)超參數(shù)可降低易分樣本損失占損失比例,提升難分樣本損失比例,使得模型更加考慮難分樣本損失,解決類別之間不平衡問題。
本文實(shí)驗(yàn)在Win10 系統(tǒng)、pytorch 框架下進(jìn)行,計(jì)算機(jī)處理單元為E5-2680 V4,內(nèi)存容量16 GB,顯卡RTX 3060 顯存12 GB,Conda 軟件4.10.3,python3.6.5,pytorch1.7.1,使用cuda11.0進(jìn)行訓(xùn)練加速。
風(fēng)機(jī)葉片數(shù)據(jù)集采用Kaggle 官網(wǎng)數(shù)據(jù)集[15]。將數(shù)據(jù)集按8(訓(xùn)練集)∶2(測試集)進(jìn)行訓(xùn)練,其中訓(xùn)練集2 395 張,測試集599 張,總共2 995張圖片,部分標(biāo)注圖片數(shù)據(jù)如圖4 所示。
圖4 風(fēng)機(jī)葉片F(xiàn)ig.4 Wind turbine blade
訓(xùn)練過程中,設(shè)置學(xué)習(xí)率初值為0.001,之后在前300 次迭代訓(xùn)練中學(xué)習(xí)率線性增加,當(dāng)?shù)竭_(dá)第8 個(gè)epoch 迭代時(shí),學(xué)習(xí)率衰減到0.02;之后第9,10,11 個(gè)epoch 學(xué)習(xí)率設(shè)置為0.002,第12 個(gè)epoch 設(shè)置為0.000 2,進(jìn)行模型收斂,模型訓(xùn)練過程中的損失函數(shù)圖如圖5 所示。
圖5 訓(xùn)練損失變化Fig.5 Variation of training loss
由圖5 可知,改進(jìn)的YOLOv4 采用遷移學(xué)習(xí)策略、學(xué)習(xí)率策略和訓(xùn)練策略后,模型逐漸收斂,總損失收斂于0.050 6,分類損失收斂于0.015 1,回歸損失收斂于0.030 5,收斂情況較好,驗(yàn)證了這種算法方案可行。
通過控制有無采用Ghsot Module 或 Focal loss策略,進(jìn)行消融實(shí)驗(yàn),驗(yàn)證改進(jìn)算法的有效性,并采用COCO 數(shù)據(jù)集map 指標(biāo)和檢測推理時(shí)間判斷網(wǎng)絡(luò)性能。如表1 所示。
表1 消融實(shí)驗(yàn)指標(biāo)對比Tab.1 Comparison of ablation test indexes
由表1 可知:(1)原有YOLOv4 的map 預(yù)測值為79.32%,YOLO-F 在更換原有交叉熵分類損失為focal loss 后map 值達(dá)到82.33%,相比于原YOLOv4 的map 值提高了3.01%;dirt 缺陷的AP 值由原有的70.78%提到76.71%,但模型檢測damage 缺陷能力并沒有下降,總的map 值進(jìn)行了提升,也說明加入focal loss 在處理類別不均衡方面具有一定效果。
(2)YOLO-G 在只更換網(wǎng)絡(luò)模型主干網(wǎng)絡(luò)為Ghost net 的情況下,模型參數(shù)量由246.19 MB 減少到134.27 MB,推理時(shí)間由0.204 s 減少到0.172 s,且提升了dirt 缺陷AP,說明更換的Ghost net 提取圖像特征神經(jīng)網(wǎng)絡(luò)不僅能大大降低網(wǎng)絡(luò)訓(xùn)練計(jì)算量,而且可以提取更有效的分類特征,即在增加網(wǎng)絡(luò)性能的同時(shí)保證相應(yīng)的準(zhǔn)確率。
(3)融 合Focal loss 和Ghost net 的YOLOGF 策略模型的map 預(yù)測值為82.98%,比原有YOLOv4 預(yù)測值高了3.66%,且推理時(shí)間由原有的0.204 s 減少到0.166 s,在準(zhǔn)確率和網(wǎng)絡(luò)性能方面都比原有的YOLOv4 算法檢測效果好,參見圖6,說明本文的改進(jìn)YOLOv4 算法能在保證實(shí)時(shí)性的情況下提高了葉片缺陷檢測準(zhǔn)確率。
圖6 風(fēng)機(jī)葉片檢測效果Fig.6 Wind turbine blade detection effect
(1)針對目前風(fēng)機(jī)葉片傳統(tǒng)檢測技術(shù)的不足,提出一種基于改進(jìn)YOLOv4 的風(fēng)機(jī)葉片缺陷檢測方法(YOLO-GF),實(shí)驗(yàn)結(jié)果表明YOLO-GF 的檢測精度達(dá)到82.98%,參數(shù)量134.27 MB,檢測速度約7 f/s,模型能在保持風(fēng)機(jī)葉片缺陷檢測準(zhǔn)確率的同時(shí),達(dá)到實(shí)時(shí)性檢測。
(2)采用Ghost net 的特征提取網(wǎng)絡(luò)更換原有YOLOv4 的CSP-Darknet 主干網(wǎng)絡(luò),模型參數(shù)量由246.19 MB 降到134.27 MB,使得模型參數(shù)量相對減少,提高風(fēng)機(jī)葉片缺陷檢測效率。
(3)利用Focal loss 損失函數(shù)代替原有YOLOv4 的分類交叉熵?fù)p失函數(shù),解決數(shù)據(jù)集類別分布不平衡問題,使dirt 的類別AP 提高了5.93%,提高模型整體類別識別準(zhǔn)確率。
(4)將本文改進(jìn)YOLOv4 檢測方法(YOLOGF)與原有YOLOv4 模型分別在同一風(fēng)機(jī)葉片數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)測試,得出YOLO-GF 檢測方法比原YOLOv4 方法平均類別識別準(zhǔn)確率提高了3.66%,且能達(dá)到實(shí)時(shí)性需求。
本文提出的風(fēng)機(jī)葉片缺陷方法YOLO-GF,在準(zhǔn)確率和檢測速度上都有較好的性能表現(xiàn),但由于數(shù)據(jù)集缺陷種類較少,模型檢測其它類型的風(fēng)機(jī)葉片缺陷能力不佳,如裂紋,腐蝕,沙眼等,因此為了提高模型檢測其它缺陷能力,后續(xù)采取更多類別的風(fēng)機(jī)葉片缺陷圖片進(jìn)行模型訓(xùn)練,并研究模型對沙眼等小類型缺陷的檢測能力。