本發(fā)明涉及一種輸電線路螺栓檢測方法,尤其是涉及一種基于卷積神經(jīng)網(wǎng)絡的輸電線路螺栓檢測方法。
背景技術:
隨著我國國民經(jīng)濟持續(xù)穩(wěn)定發(fā)展,電力規(guī)模也得到快速發(fā)展,人民對電力需求的依賴性越來越強,國家對電力生產(chǎn)的安全性、穩(wěn)定性要求越來越高。設備缺陷和故障的發(fā)生時影響電網(wǎng)安全的主要問題,及時發(fā)現(xiàn)缺陷、故障點是線路運行檢修人員的主要工作。電力輸電線路中的金具檢測是電網(wǎng)安全性中的一個重要工作,其中金具帶插銷的螺栓檢測是一個重要檢測內(nèi)容。
技術實現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷而提供一種算法流程簡單易實現(xiàn),速度快,識別率高、檢測效果好的基于卷積神經(jīng)網(wǎng)絡的輸電線路螺栓檢測方法。
本發(fā)明的目的可以通過以下技術方案來實現(xiàn):
一種基于卷積神經(jīng)網(wǎng)絡的輸電線路螺栓檢測方法,包括以下步驟:
1)構建帶有標簽的螺栓圖像庫作為樣本集;
2)采用滑動窗口法得到螺栓圖像中螺栓的候選區(qū)域,
3)采用surf算法對候選區(qū)域進行粗篩選;
4)將螺栓粗篩選的候選區(qū)域作為輸入送入構建cnn卷積神經(jīng)網(wǎng)絡進行判別,依據(jù)cnn卷積神經(jīng)網(wǎng)絡的輸出向量判斷螺栓粗選區(qū)域是否為正確的螺栓區(qū)域,并對螺栓區(qū)域進行螺栓缺失檢測。
所述的步驟2)具體包括以下步驟:
將螺栓圖像庫內(nèi)的圖像作為螺栓待檢測圖像,采用滑動窗口法獲取待檢測圖像的候選區(qū)域,滑動窗口基本尺度為50*50,滑動窗口步長為25。
所述的步驟3)具體包括以下步驟:
31)對候選區(qū)域的滑動窗口塊進行特征點提取;
32)獲取每個特征點的主方向;
33)生成surf特征描述子。
所述的步驟31)中,特征點的判據(jù)為當該點像素亮度的hessian矩陣的行列式值在其鄰域內(nèi)為一個極值時,則該點為特征點。
所述的步驟32)具體包括以下步驟:
321)獲取以該特征點為中心,正比于該特征點尺度的定值為半徑,張角為60°的扇形區(qū)域內(nèi)所有像素點的合成向量的角度和模長;
322)將扇形區(qū)域以0.1個弧度為步長沿逆時針旋轉(zhuǎn),計算合成向量的角度和模長;
323)所有計算合成向量模長最大值對應的角度即為特征點主方向。
所述的步驟321)中,所述的合成向量的角度θ計算式為:
θ=arctan(sumy/sumx)
合成向量的模長l計算式為:
l=sqrt(sumy*sumy+sumx*sumx)
sumx=xby*g
sumy=xbx*g
其中,xby為y方向小波變換響應,xbx為x方向小波變換響應,g為高斯函數(shù)。
所述的步驟33)具體包括以下步驟:
選定以特征點為中心的一塊正方形區(qū)域,將其旋轉(zhuǎn)與該特征點主方向?qū)R,將正方形區(qū)域多個子區(qū)域,對每個子區(qū)域進行haar小波變換,生成surf特征描述子。
所述的步驟4)中,cnn卷積神經(jīng)網(wǎng)絡為七層cnn卷積神經(jīng)網(wǎng)絡,包括依次連接的輸入層、第一卷積層c1、第一下采樣層s2、第二卷積層c3、第二下采樣層s4、第三卷積層c5、以及輸出層。
訓練七層cnn卷積神經(jīng)網(wǎng)絡具體包括以下步驟:
41)將所有樣本圖像歸一化為32*32大小;
42)設置第一卷積層c1的卷積核大小、特征圖和卷積核個數(shù);
43)依次通過第一卷積層c1、第一下采樣層s2、第二卷積層c3和第二下采樣層s4進行卷積和下采樣,構成全連接,使卷積后特征圖的大小為1;
44)第三卷積層c5獲取第二下采樣層s4的所有數(shù)據(jù)生成一維向量給輸出層;
45)輸出層通過歐式徑向基函數(shù)輸出結(jié)果,輸出結(jié)果為將類別數(shù)排成一維數(shù)組,數(shù)組中唯一置1的位置即為對應的類別。
所述的訓練出的七層cnn卷積神經(jīng)網(wǎng)絡損失函數(shù)<0.0001。
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點:
一、由于本發(fā)明采用滑動窗口多尺度縮放獲取螺栓候選區(qū)域,且與訓練集比較進行粗篩選,提取的粗候選區(qū)域舍棄大量背景環(huán)境的干擾的區(qū)域,算法流程簡單易實現(xiàn),速度快,效果好,能較好提取復雜背景環(huán)境中的螺栓候選區(qū)域。
二、本發(fā)明采用基于卷積神經(jīng)網(wǎng)絡cnn的螺栓識別方法,通過卷積神經(jīng)網(wǎng)絡多層的網(wǎng)絡自學習的特征對環(huán)境變化具有更高的魯棒性,有較高的識別率,因此檢測效果較好。
附圖說明
圖1為本發(fā)明的方法流程圖。
圖2為7層cnn網(wǎng)絡結(jié)構圖。
圖3為卷積過程示意圖。
圖4為下采樣過程示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。
實施例
本發(fā)明采用surf特征提取粗候選區(qū)域,形成樣本集,采用cnn分類得到最后檢測結(jié)果。分為訓練和測試兩個環(huán)節(jié),如圖1所示,本發(fā)明的方法流程如下:
一、金具螺栓圖像的預處理
1.1候選區(qū)域的滑動選擇
本發(fā)明采用滑塊窗口選取螺栓圖像和非螺栓圖像,加以人工標簽信息。
將拍攝的圖像(基本大小為500*500)作為螺栓待檢測圖像,采用滑動窗口法獲取待檢測圖像的候選區(qū)域?;瑒哟翱诨境叨葹?0*50大小(基本上覆蓋了螺栓的尺寸),滑動窗口步長為25。因此,一副圖像的檢測窗口塊約為400個。
1.2surf描述子的粗篩選
首先對滑動窗口塊進行粗篩選,采用區(qū)域相似度原則進行篩選。在樣本集中選取正樣本50個,采用surf特征描述子進行特征提取。surf算法提取的特征具有尺度和旋轉(zhuǎn)不變性,同時對光照和透視變換具有適應性,因此有較高的魯棒性。它使用了近似hessian矩陣檢測興趣點,并使用積分圖像大大降低了特征檢測時間。surf算法包括特征點檢測,主方向確定,描述子的生成等步驟。
首先,先對surf算法的特征點提取:
在surf算法中,特征點的判據(jù)為某像素亮度的hessian矩陣的行列式值(dxx*dyy-dxy*dxy)為一個極值。在surf算法里,為提高算法運行速度,在精度影響很小的情況下,用近似的盒狀濾波器(0,1,1組成的boxfilter)代替高斯核。因為濾波器僅有0,-1,1,因此卷積的計算可以用積分圖像來優(yōu)化,大大提高了效率。每個點需計算dxx,dyy,dxy三個值,故需要三個濾波器;濾波后,得到一幅圖像的響應圖(responseimage,其中每個像素的值為原圖像素的dxx*dyy-dxy*dxy)。對圖像用不同尺寸的濾波器進行濾波,得到同一圖像在不同尺度的一系列響應圖,構成一個金字塔。
若某點的dxx*dyy-dxy*dxy大于其鄰域的26個點的dxx*dyy-dxy*dxy,則該點為特征點。
為保證特征點描述子的旋轉(zhuǎn)不變性,需對每個特征點計算主方向。計算主方向的過程如下:
統(tǒng)計以特征點為中心,正比于特征點尺度的某個數(shù)位半徑,張角為60°的扇形區(qū)域內(nèi)所有像素點的sumx=(y方向小波變換響應)*(高斯函數(shù)),sumy=(x方向小波變換響應)*(高斯函數(shù)),計算合成向量角度θ=arctan(sumy/sumx),模長l=sqrt(sumy*sumy+sumx*sumx)。
將扇形沿逆時針旋轉(zhuǎn)(一般取步長為0.1個弧度),以同樣方法計算合成向量。
求出各方向扇形的合成向量模長最大值,其對應的角度即特征點主方向。
描述子的建立過程如下:
選定以特征點為中心的一塊正方形區(qū)域,將其旋轉(zhuǎn)與主方向?qū)R。
將正方形分為4x4的16個子區(qū)域,對每個區(qū)域進行haar小波變換(同樣用積分圖像加速),得到4個系數(shù)。
由上述兩步,生成4x4x4=64維向量,即描述子,用它可以進行匹配等工作。本發(fā)明采用歐式距離作為度量進行匹配。
對檢測窗口塊提取surf特征,找出與20個樣本集中相似度最大的前20個候選區(qū)域,由于樣本歸一化為50*50,因此篩選候選區(qū)域的計算量并不大。圖2中左圖是模板與候選區(qū)域采用surf特征描述子的匹配結(jié)果,右圖是樣本集匹配后得到的結(jié)果。
二、卷積網(wǎng)絡cnn結(jié)構設計
如圖2所示,本發(fā)明構建的7層cnn網(wǎng)絡結(jié)構類似于letnet-5結(jié)構,分別由輸入層、卷積層、兩層下采樣與卷積相互交叉,最后是一層輸出層。如在c1層有三個卷積核,而在c3層有兩個卷積核。
如圖3所示,選用33的特征圖,移動步長為1,則可以將55的輸入圖像通過卷積核進行卷積,再加入一個偏置b和非線性變換,得到具有33大小的特征圖。此特征圖還要經(jīng)過非線性變換。
如圖4所示,下采樣是考慮簡化計算信息,基于圖像局部相關性,在減少下一層輸入的信息的同時,仍然保留有用的信息。
其過程與卷積類似,不過采用的卷積核是一個固定參數(shù)都為0.25的22模板并且感受野不重疊,所以可以將輸入的維度降低為原來的1/4。
在通過卷積和下采樣的不斷抽象下,最后會將這些結(jié)果連接成一個一維數(shù)組輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡里。
將此輸出與標簽進行對比,需要再反向傳播回模型進行參數(shù)的微調(diào),按照梯度下降算法以最快方向向極小化誤差移動,反復迭代整個過程,得到訓練好的模型。
構建7層cnn結(jié)構的具體做法:
1、將所有樣本集歸一化為32*32大小。
2、輸入訓練圖像的大小為3232,卷積核大小是55,其移動的步長為1,其大小為2828(32-5+1)。c1層有六個特征圖,因此,此層有六個不同的卷積核。
3、s2層是一個下采樣的過程,特征圖的大小也變?yōu)?414。考慮到之前提到得稀疏連接,卷積不再是將上一層所有的特征圖都連接作為下一層的輸入,而是使用相鄰的幾張圖。
4、c3層有16個特征,如第一個特征圖參考上一層特征圖的前三個特征圖,這樣大大減少了計算的復雜程度,且保留了數(shù)據(jù)的有用信息。此時特征圖的大小為1010,再通過下采樣變?yōu)?5。
5、s4層的輸入大小為55,卷積核大小也是55,使得卷積后的特征大小為1,構成了全連接。
6、c5層輸入為s4層的所有數(shù)據(jù),最后得到有120個單元的一維向量。
7、輸出層有84個節(jié)點,計算輸入向量和權重之間的點積,再加上一個偏置。然后使用激活函數(shù)得到一個反應,輸出層是歐式徑向基函數(shù)計算得到,輸出結(jié)果是將類別數(shù)排成一維數(shù)組,分到第幾類就是對于數(shù)組的第幾位且置一,其他為零,對于標簽也采用同樣的方式表示。
三、cnn的螺栓圖像訓練和識別
對上述構建的cnn結(jié)構,輸入已標簽的螺栓樣本和非螺栓樣本圖,訓練cnn,直至輸出層的損失函數(shù)<0.0001,得到螺栓識別的卷積神經(jīng)網(wǎng)絡cnn。最后,對輸入一幅圖像,進行窗口滑動得到候選區(qū)域,經(jīng)surf篩選候選區(qū)域,然后將候選區(qū)域輸入cnn網(wǎng)絡進行螺栓圖像識別。
本發(fā)明所用的數(shù)據(jù)庫為收集的一組包含1500張輸電線路金具螺栓的圖像,其中正樣本選自其中的2000張標簽的螺栓,其中100張為缺失插銷的螺栓,非螺栓區(qū)域的樣本為10000張,構成3類樣本集用于cnn的訓練。剩下的1000張圖像作為測試樣本。本實驗采用深度學習框架基于ubuntu14.04操作系統(tǒng),8g內(nèi)存,酷睿i7-4720hqcpu運行環(huán)境,實驗設置參數(shù)迭代10000次停機。
仿真實驗將訓練樣本集輸入一個7層卷積神經(jīng)網(wǎng)絡cnn中,利用高斯隨機初始化網(wǎng)絡權值,對該卷積神經(jīng)網(wǎng)絡進行訓練,直到卷積神經(jīng)網(wǎng)絡最后一層分類層的輸出損失函數(shù)<0.0001,或者迭代次數(shù)10000次為止。
然后將一幅測試的螺栓圖像,先將滑動窗口選擇候選區(qū)域,經(jīng)過surf粗篩選,再將粗篩后的候選圖像,輸入到訓練好的網(wǎng)絡進行測試,測試螺栓檢出率達到92.01%,其中正確檢出缺失螺栓率達到79.2%。