尹晶,郭慧浩,林海丹,毛安瀾,劉赫,于群英
(1.中國電力科學研究院有限公司,武漢 430074;2.吉林省電力科學研究院有限公司,長春 130000)
隨著近年超/特高壓電網的長足發(fā)展,干式空心電抗器作為無功補償的重要設備,起到了對系統(tǒng)提供無功功率,提高功率因數減小損耗、改善電能質量、對線路分布電壓進行有效控制等目的[1]。目前國內制造廠生產的干式電抗器在通常采用外層聚酯薄膜的單絲絕緣繞包鋁線做載流導線[2-3],繞制其導線時內外平行繞包環(huán)氧樹脂所浸漬的玻璃纖維,加熱固化后形成包封絕緣結構。
干式電抗器在投入運行時會有如下幾個狀況:首先在滿負荷的運行工況以及頻繁投切電抗器情況下,電抗器的帶電和停電會導致導線發(fā)熱膨脹和冷卻收縮;其次在電抗器主體外包封的環(huán)氧樹脂玻璃鋼材料層用于加強機械強度和密封的作用,但主成分帶苯環(huán)的基團在光照尤其是紫外線作用下,容易發(fā)生加氫反應而開環(huán)[4-5];再次電抗器在戶外環(huán)境的工況中,常年遭受潮氣、環(huán)境冷熱、鹽霧侵蝕、電磁場作用。上述運行工況和環(huán)境均極易導致環(huán)氧樹脂發(fā)生老化現象,造成其機械強度和絕緣強度急劇降低。即使制造時包封絕緣的物料選用已考慮到使用膨脹系數較為接近材料,所有上述情況都易引發(fā)環(huán)氧玻璃纖維樹脂層老化開裂[6]。絕緣材料的老化及表面開裂會導致水霧氣容易滲入電抗器絕緣內,使包封絕緣受潮,進而導致過熱或局部放電、經過長時間的累積效應最終形成匝絕緣損傷引發(fā)嚴重故障。統(tǒng)計數據表明包封開裂是目前引發(fā)干式電抗器故障的主要原因之一。因此對干抗空心電抗器進行包封絕緣裂紋檢測尤為關鍵。
目前電抗器包封裂紋檢測仍主要依靠人工來完成,因包封結構狹小且不規(guī)則(截面寬僅25 mm,長79~91 mm)而經常導致漏檢。利用專為電抗器裂紋檢測設計的機器人可方便爬到結構緊湊的包封層內進行作業(yè),機器人主要由本體、氣動系統(tǒng)、測控系統(tǒng)、內窺鏡、傳感器等組成,機器人使用橡膠棘抓固定于管壁,通過微型氣缸驅動爬行,利用其自身攜帶的內窺鏡對包封內部進行圖像拍攝。再利用計算機視覺技術對其拍攝后圖片進行識別,常用檢測方法有基于邊緣檢測的Gabor 濾波算法[7],描述局部紋理特征算子的局部二值模式(LBP)算法[8]等。這些傳統(tǒng)的缺陷檢測利用了底層顏色特征,在特征明顯較簡單的場合能夠很好工作;但對特征不明顯的、形狀多樣的包封玻璃纖維層中的裂紋識別則不再適用。
近年來隨著深度學習與計算機視覺結合的不斷發(fā)展,為裂紋的識別提供了新方法的可能。深度卷積神經網絡是一種輸入到輸出的映射網絡,它能夠提取目標的高維特征,并通過大數據樣本來訓練學習參數并提升檢測效率。主要方法之一是以RCNN、Fast RCNN 和Faster RCNN[9]算法為標志的基于區(qū)域提議的two-stage 類算法,如常海濤[10]的缺陷檢測方法通過Faster RCNN 的卷積網絡獲取目標的特征,其特點是先獲得提供待檢測目標的大致分布區(qū)域并分類。另一種方法是以SSD、YOLO 算法為標志的無區(qū)域提議one-stage 類方法的,核心是對整幅圖像用單一的卷積網絡直接來預測目標的位置,one-stage 類算法在識別速度有著一定的優(yōu)勢。顏宏文[11]等利用YOLOv3 網絡和遷移學習算法進行航拍圖像中缺陷絕緣子串識別方法,提高了識別率。YOLOv3 在MS-COCO[12]數據集中實現了55.3%的mAP,速度達到35 幀/s,具有較高的準確率和實時性。但在實際檢測中發(fā)現YOLOv3 對一些背景紋理復雜、裂紋區(qū)域不清晰的圖片識別效果一般。
本文針對上述情況提出了一種基于YOLOv3 神經網絡和視覺顯著性來實現復雜環(huán)境下電抗器裂紋檢測的改進思路:1)使用YOLOv3 可滿足大部分封裂紋識別的任務要求;2)對較難識別的圖像則先進行一系列預處理,圖像灰度化后進行高斯降噪,再進行顯著性處理;最后將有裂紋區(qū)域部分通過閾值分割使之從復雜背景中得到位置確認并用于識別。
YOLOv3 是一種基于深度神經網絡算法的檢測物體的目標檢測器。他是一種全卷積網絡(FCN),把BN 層和leaky relu 層接到每一層卷積層之后。遍歷圖像后算法可進行3 種不同尺度的預測,先將圖像固定為416×416 大小的尺寸。然后檢測層在尺寸分別為13×13、26×26 和52×52 網格上進行檢測。每個網格上通過候選框預測,網格包含有3 個預測邊界框及數據集類別的置信度,其具體5 個預測參數分別為:x、y、w、h和置信度。YOLO 特點是檢測速度快,可用于實時系統(tǒng),強化小物體的識別能力。在提取圖像特征方面,YOLOv3 的網絡(backbone)采用了Darknet53 網絡結構,見圖1,使用了殘差網絡(residual network)[13],使在卷積層之間設置了快捷鏈路。在ImageNet 數據集上實驗驗證darknet53,相對于ResNet-152 和ResNet-101,其不僅在分類精度上有略微提升,計算速度較ResNet-152 和ResNet-101快,網絡層數也較少。
圖1 Darknet-53網絡結構Fig.1 Darknet-53 network structure
YOLOv3 在其部署到移動設備、邊緣設備等時,模型剪枝是非常有必要的。原始網絡模型有239 M大小的參數,參數個數到達了61 529 119 個。參數遠大于數據集很容易導致模型高方差過擬合現象,剪枝后可較大地提升計算速度降低過擬合。
根據論文[14]原理,對于一個訓練好的模型,會發(fā)現部分卷積核權重很小,因此相應的激活也會很小。利用YOLOv3 的組件Darknetconv2D_BN_Leaky 中的BN 層的縮放因子γ 作為重要性因子,γ 越小這部分卷積核的貢獻越小,裁剪這些卷積核后再微調是可以恢復到之前的精度,這是在未作任何限制情況下。如果對權重做某些限制如L1 正則,那么訓練的參數會比較稀疏,更加利于裁剪,流程見圖2。
圖2 YOLOv3網絡裁剪流程Fig.2 Network tailoring process of YOLOv3
訓練數據集樣本量是決定一個模型性能好壞的最重要條件。數據少時模型訓練時可能無法收斂,少量訓練數據難以提供足夠的信息供給模型學習,導致過擬合(overfitting)和陷入局部最優(yōu)值(local minimun)。為了增加數據集的多樣性,在利用缺陷檢測微型機器人[15]及人工收集圖片時應適當改變拍攝圖片背景、明暗程度、角度遠近等條件或對圖片進行裁剪放大、隨機旋轉、隨機水平/垂直翻轉。通過這樣的數據增強擴展,將裂紋的圖片增加到至少5 000 余張以上。這些通過隨機變換生成的圖像并不影響目標基本的特征信息,在樣本不足的情況下可有效增加樣本的數量和多樣,模型在訓練時不會兩次看到完全相同的圖像,也就提升了泛化能力。
圖片標記工具使用LabelImg 軟件來制作數據,見圖3。
圖3 標注樣本與檢測的示例Fig.3 Examples of labeling samples and testing
選擇制作數據的經驗原則有:
1)標注框不能過大和過小,過大會導致框內大部分區(qū)域都是背景;過小的框內的特征經過網絡處理后,會和背景中的一些雜質紋理疵點相同,使模型學習后對其區(qū)分較為困難。
2)數據越有代表性越好,做數據的時候選擇比較有代表性的裂紋,避免使用那些和背景差不多的裂紋,會導致模型訓練后將不能很好區(qū)分背景和前景。
3)根據實際YOLOv3 的使用經驗,將整理收集到的圖片統(tǒng)一裁剪為416×416 像素下識別效果最佳。由于訓練大分辨率的圖片效果比較差,可以利用程序處理將大分辨率圖像先進行裁剪再操作。
測試環(huán)境與結果如表1 所示。
表1 測試環(huán)境與結果Table 1 Test environment and results
YOLOv3 目前已經在各領域得到了廣泛應用,其基本使用方法故不再贅述。
對現場采集的包封圖像通常含有高頻噪聲信息、中頻信息、低頻背景等信息,圖像的頻率是反映灰度值變化大小程度的指標。圖像的低頻是輪廓,高頻是噪聲和細節(jié)。David Marr 提出高斯差分算子(difference of gaussian,DOG)[16],通過一幅圖片減去另一幅圖片去除掉那些在原始圖像中被保留下來的頻率之外的所有其它冗余信息,可有效地抑制高頻信息。
二維高斯函數見公式(1),其中σ是方差,σ越大,則高斯函數峰就越平滑,圖像卷積效果也越模糊,更平滑。DOG 起到了高斯差分帶通濾波的作用,有效地提高了目標的中頻信息。當DOG 被用于圖像增強時,其算法中兩個高斯核的半徑之比K通常為4:1 或5:1,當K≈5 時又很好地模擬了視網膜上神經節(jié)細胞的視野[17],以獲取裂紋缺陷中主要信息成分,增強了檢測目標對比度。高斯差分算子如公式(2)所示:
確定卷積核后對圖片進行高斯差分計算,公式為
疵點和裂紋等缺陷的紋理為圖像的細節(jié),在上述高斯差分計算去除高頻噪聲的同時,不可避免的也減弱了裂紋等缺陷區(qū)域的信息量。因此通過多尺度細節(jié)增強算法,增強缺陷部分的邊緣細節(jié)信息[18]。其核心使用了3 個尺度的高斯核對原圖濾波,再與原圖相減,以獲得不同程度的細節(jié)信息,算法將不同尺度上的特征圖進行了融合,最終得到加強后的原圖信息。
首先,對圖像灰度化處理。用G1、G2、G3其標準差分別為σ1=1、σ2=2、σ3=4 的3 個高斯核函數對高斯差分處理后的圖像代入式(4)再進行處理,得到3幅模糊圖(Blurred image)B1、B2、B3公式為
根據式(5)將對應圖像進行處理,獲得細節(jié)圖D1、次細節(jié)圖D2與粗略圖D3,公式為
然后根據式(6)將3 個不同細節(jié)程度的圖像進行整合,得到整體細節(jié)圖,其中權重w1=0.5,w2=0.5,w3=0.25。
In the patriarchal system,woman can’t determine their lives and it seems that their fates are doomed at the very beginning and the man are the rule maker of the society who has the absolute right to determine the fate of woman,which makes woman become the gender“Other”.
經過多尺度增強計算,得到灰度化并平滑圖片后灰度增強圖,見圖4。從圖4 可以看出算法有效地減少了圖片中電抗器環(huán)網樹脂表面毛刺疵點高頻噪聲等細節(jié),且對需識別樹脂層裂紋處的細節(jié)并未減少。
圖4 灰度化并平滑圖片后灰度增強Fig.4 Gray enhancement after graying and smoothing the image
人的眼睛具有快速、準確發(fā)現視野中感興趣物體的能力[19],在機器視覺領域識別感興趣物體的過程被定義為顯著性檢測。視覺顯著性模擬人類受視覺感知的驅動,將人的視點驅使到某一場景中的顯著區(qū)域,再通過圖像中顏色、亮度、邊緣等特征表示,判斷目標區(qū)域和它周圍像素的差異??衫靡曈X顯著性優(yōu)先獲取電抗器包封圖像中裂紋缺陷區(qū)域。
圖像處理通常是對像素的檢測,要得到有良好細節(jié)的圖像,攝像頭獲取的圖像往往分辨率較高,導致顯著性檢測算法計算過程中等待時間較長,耗費較高的硬件資源。對此本文提出一種降低計算量提高顯著性檢測效率的流程:首先對圖像通過簡單線性迭代聚類(simple linear iterative clustering,SLIC)超像素分割算法對原始圖像做超像素分割,形成一系列超像素集;其后利用圖像中顯著區(qū)域與其他區(qū)域灰度值差異的方法用于顯著性檢測。
SLIC 超像素分割抽象化圖像,通過把像素距離通過度量標準構造局部聚類,生成視覺上緊湊的超像素區(qū)域。其主要思路為將RGB 彩色圖像轉化為非線性壓縮的具有亮度(L)、顏色對立維度(a,b)的CIELAB色彩空間和二維坐標x,y共5 個特征向量構造度量標準。生成的超像素緊湊整齊,輪廓保持得較好,彩色圖和灰度圖均可兼容分割。其具體步驟如下:
1)初始化聚類中心。假設原圖總共N個像素點,在圖像內平均分布按照算法設置的超像素個數K,預分割的每個超像素的大小為N/K,相鄰聚類中心之間的步長(距離)則近似為。為了避免分割的聚類中心處于梯度較大的輪廓邊緣,需將聚類中心分配到以他為中心3×3 的窗口內非邊緣灰度變化(梯度值)最小的位置,并給每個聚類中心一個標簽,以免對后續(xù)聚類造成影響。
2)進行距離度量。計算每個像素點與距離最近的聚類中心的距離,包括顏色距離和空間距離得到最終距離度量D。由于每個像素點會被多個聚類中心搜索到,取其中距離最小值對應的作為該像素點標記的聚類中心。然后通過多次循環(huán)迭代進行上述過程聚類收斂,相似度算法表達式為
式中:ds為像素點間空間距離;dc為像素點間顏色距離(差異);由步驟1)可知Ns為為像素點間空間最大距離;Nc為像素點間色彩最大距離,D體現了兩個像素間的相似度,越小則代表像素越相似。其中Ns和Nc可認為色彩與空間的歸一化常數,Nc根據具體的圖片和像素簇不同可看做固定常數M,M取值范圍為[1,40],一般取10。M和K值決定了圖像的精細程度,M用來確定分割結果與圖像實際邊界貼合度,M值越大,貼合程度越高。實際中應根據使用者機器運行性能來選擇M與K的值。
3)迭代更新聚類中心。與標準的K-means 算法不同,為了節(jié)省算法時間開銷加速收斂,SLIC 只計算在每個超像素塊中心周邊的2L×2L區(qū)域內的像素點,進行步驟2 的距離度量后,即完成一次迭代,然后計算每個超像素塊新的中心點坐標,并再次循環(huán)迭代。裂紋超像素分割圖見圖5。
圖5 原圖與超像素分割示例圖Fig.5 Legend of original image and super pixel segmentation
由于電抗器包封的絕緣材料顏色變化較為單一、紋理特征相似程度也較高。通過選擇合適參數使SLIC 超像素分割在處理此類圖像時使之其紋理細節(jié)和邊緣細節(jié)保持的較好,同時處理后的圖像只有原圖大小的1/4~1/5,顯著降低了算法的開銷,為后續(xù)步驟提高檢測速度。
觀察包封圖片中微裂紋疵點等缺陷分布規(guī)律可知,裂紋顯著區(qū)域通常為連續(xù)的塊狀或條狀,可理解為顯著區(qū)域包含的像素塊較為集中、空間距離較近。且由于光線原因圖片中顯著區(qū)域與其他區(qū)域的灰度及紋理存在較明顯的差異。因此某一灰度值在圖像中的空間分布越廣,該顏色屬于背景的可能性越大。
通過上述特點,程序對顯著區(qū)判斷應主要遵循以下幾個原則:通過顏色變化的比較,變化較大的灰度值區(qū)域對應顯著性值較高,均勻或模糊區(qū)域顯著性值低;裂紋與背景紋理灰度的特征不同,兩者之間的類間方差越大,說明構成圖像的兩部分差別越大;顯著區(qū)域的像素一般聚集在圖片占比較小區(qū)域內,而不是分布整幅圖像。本文利用圖像中灰度值差異來標記裂紋顯著區(qū)域。
根據分析,算法核心應為定義比較像素塊之間的差異性[20],公式為
式中dg(pi,pj)為兩個像素塊pi與pj顏色(灰度值)之間的歐式距離;dpos為像素塊pi與像素塊pj之間的歐式距離,其中(mi,n),(mj,nj)分別為像素塊pi與pj的中心點;gi,gj分別為像素塊Pi和Pj的灰度值均值;c推薦取3。d(pi,pj)的值越小,則代表兩個像素塊之間差異越小。其中由式(8)可以分析得出,灰度值差異dg與之成正比,位置距離dpos與之成反比,且dg(pi,pj)與dpo(spi,pj)均應歸一化在[0,1]之間,它們共同決定了兩個像素塊的差異。
如更進一步的提高顯著區(qū)域與其它背景非顯著區(qū)域的對比,需要引入多個尺度(scale)計算,可以使顯著區(qū)域更加明顯。式(9)為多個尺度計算顯著性值公式,qk為與像素塊pi相似的第k個像素塊,r為某一尺度scale 值。通過式(10)取多個尺度下的顯著性值的平均值來更好地提高圖像中顯著區(qū)域與其他區(qū)域的對比。
由顯著區(qū)特點可知,包封的裂紋區(qū)域通常是連續(xù)集中的,相似的像素塊一般聚集在一起,只需計算周邊K個與pi相似的像素即可,K根據實際經驗和算法效率的一般考慮選擇K=32 或K=64。
加入上下文修正:設定顯著性閾值提取圖中的最顯著的區(qū)域,在顯著區(qū)域之外的像素塊的新顯著性值則通過與之相近的顯著像素塊之間的歐式距離(dfoci)加權得到。從而提高顯著目標附近的顯著性值,減小非顯著區(qū)的顯著性值起到弱化背景紋理的作用,n為常數影響到弱化效果。dfoci應歸一化在[0,1]之間。計算公式為
不同尺度下的顯著圖及最終標注圖見圖6。最后,應用OpenCV2 對二值閾值化后的顯著圖使用findContours 和drawContours 函數提取輪廓的邊界信息,對連通區(qū)進行標記,框選并確定位置。
圖6 裂紋不同尺度顯著圖Fig.6 Saliency diagram of cracks at different scales
視覺顯著模型有基于變換分析、基于統(tǒng)計與數學、基于信息論、基于深度學習、頻域分析、視覺注意等各類別模型[21],其模型各有自身優(yōu)劣和擅長處理領域,對處理后的缺陷圖像的顯著圖也存在明顯的差異。文中分別利用LC 算法[22]、EGNet[23]算法幾種常用顯著性模型進行對比分析。
圖7 所示為不同算法的顯著圖,第1 列圖像為準備處理的灰度圖像;第2 列圖像顯示LC 算法的結果,算法是利用圖像顏色統(tǒng)計信息計算空間顯著性圖的簡便方法,圖像的顯著性映射建立在圖像像素之間的顏色對比度(距離)上;第3 列圖像顯示為EGNet 算法的結果,算法針對邊緣強化,它通過構建一個使顯著性目標信息和顯著性邊緣信息互補的網絡,保留顯著性目標邊界,更利于模型進行顯著性目標的定位。
圖7 不同算法的顯著圖Fig.7 Saliency diagram of different algorithms
由于目前尚無共享的電抗器裂紋測試圖像集,故從測試樣本庫里選出150 個樣本,將人工標注的結果與算法檢測結果作比對,利用誤檢(false positive)、漏檢(miss)來評價不同算法對裂紋圖像的檢測結果[24],見圖8。
圖8 算法檢測結果圖示例Fig.8 Legend of algorithm detection result
表2 為算法結果對比,通過表2 的實驗結果和分析可知,基于統(tǒng)計數學的LC 算法的顯著圖保留了包封裂紋的大部分細節(jié),同時也保留了較多的未濾除的背景信息,誤檢率和漏檢率較高;EGNet 邊緣強化模型,相對LC 算法較優(yōu),且裂紋區(qū)域的顯著性明顯,但也仍保留了部分刮痕、污漬的誤檢區(qū)域;文中方法整體誤檢、漏檢及準確率結果優(yōu)于其他兩種算法,檢測效果較好。表2 中,Nnum為各類型樣本數量,Rfp和Rm為誤檢和漏檢的結果,Ry為正確結果,Pac為準確率。
表2 算法結果對比Table 2 Comparison of algorithm results
本文提出的YOLOv3 神經網絡結合視覺顯著性來實現裂紋檢測的算法思路取得了較好的效果,同時解決了個別背景復雜的圖像在YOLOv3 下識別率不高的問題,得到的顯著圖提取的裂紋輪廓更加清晰,具有較好的普遍適用性;通過對較難識別的圖像進行了SLIC 預處理、高斯降噪處理與顯著性處理,精度也達到了較為滿意的結果。
在實際應用環(huán)境中,由于裂紋圖像為視頻采集后再處理,檢測的實時性要求并不高,文中提出的方法雖增加了算法復雜度,但對檢測的效率影響不大。后續(xù)的研究將致力于在保證識別精度前提下加快檢測的速度、或提出更簡潔有效的實時圖像檢測的方法。