師 飄
(亳州學(xué)院電子與信息工程系, 安徽亳州 236800)
近年來(lái), 隨著我國(guó)生態(tài)環(huán)境的改善以及高壓桿塔輸電線路的逐漸增多, 鳥(niǎo)類(lèi)對(duì)電力設(shè)備的損壞也越來(lái)越嚴(yán)重. 鳥(niǎo)類(lèi)的排泄物會(huì)腐蝕部分輸電設(shè)備, 進(jìn)而影響其絕緣性能. 未孵化的卵也會(huì)招致大型動(dòng)物的攀爬, 進(jìn)而對(duì)電力系統(tǒng)帶來(lái)?yè)p害[1]. 為保障電力系統(tǒng)的正常運(yùn)行, 電力工作人員經(jīng)常需要進(jìn)行線路巡檢, 特別是對(duì)于山區(qū)等地形復(fù)雜的地方, 巡檢任務(wù)非常困難, 因此這項(xiàng)工作逐漸發(fā)展為用無(wú)人機(jī)去采集桿塔附近圖像, 再由工作人員進(jìn)行異物的排查[2]. 但由人眼去判斷是否有鳥(niǎo)巢異物的存在, 不僅工作量大, 而且存在判斷錯(cuò)誤等情況[3].
隨著人工智能技術(shù)的發(fā)展, 讓機(jī)器代替人去做一些簡(jiǎn)單枯燥且重復(fù)性強(qiáng)的工作有助于工作效率的提高. 對(duì)于高壓桿塔的異物巡檢, 設(shè)計(jì)智能算法即可判斷圖像中是否有鳥(niǎo)巢等異物的存在. 后期可以將算法嵌入到無(wú)人機(jī)中, 在無(wú)人機(jī)巡檢過(guò)程中即可進(jìn)行異物的檢測(cè), 從而可以極大提高巡檢人員的工作效率, 進(jìn)而保障電力系統(tǒng)的安全運(yùn)行. 參考文獻(xiàn)[4]通過(guò)檢測(cè)鳥(niǎo)巢圖像的枝干懸垂點(diǎn), 進(jìn)而提取鳥(niǎo)巢枝條特征, 最后使用SVM分類(lèi)器進(jìn)行訓(xùn)練, 可以取得90%的正確率[5]. 針對(duì)鐵軌桿塔鳥(niǎo)巢檢測(cè), 蔣欣蘭等人使用深度學(xué)習(xí)YOLO模型對(duì)其進(jìn)行訓(xùn)練, 取得89%的檢測(cè)精度[6-7]. 楊佩使用Faster R-CNN結(jié)合生成式對(duì)抗網(wǎng)絡(luò)對(duì)鳥(niǎo)巢進(jìn)行定位檢測(cè)[8-10]. 而在高壓桿塔輸電線路環(huán)境中, 圖像均由無(wú)人機(jī)拍攝獲得, 由于角度多變, 背景較為復(fù)雜, 包括草叢、 樹(shù)木、 房屋、 桿塔等, 這些均會(huì)對(duì)檢測(cè)帶來(lái)一定的干擾. 關(guān)于高壓桿塔異物檢測(cè)方向的研究文獻(xiàn)較少, 且由于深度學(xué)習(xí)網(wǎng)絡(luò)模型對(duì)于機(jī)器設(shè)備的要求較高, 依賴(lài)較多的訓(xùn)練樣本, 訓(xùn)練過(guò)程漫長(zhǎng), 因此其具有一定的局限性. 本文研究基于經(jīng)典AdaBoost算法, 提取鳥(niǎo)巢圖像的LBP特征和Haar特征, 尋找適合鳥(niǎo)巢的特征描述算子. 最后基于QT設(shè)計(jì)圖像異物檢測(cè)平臺(tái), 使用圖形化界面, 可以提高人機(jī)交互能力.
本文算法結(jié)構(gòu)如圖1所示, 主要包括訓(xùn)練過(guò)程和識(shí)別過(guò)程. 其中訓(xùn)練過(guò)程使用不同特征描述子, 對(duì)訓(xùn)練樣本進(jìn)行特征處理, 在訓(xùn)練過(guò)程中會(huì)產(chǎn)生一系列的弱分類(lèi)器, 通過(guò)級(jí)聯(lián)最終形成強(qiáng)分類(lèi)器. 分類(lèi)器形成之后, 將算法和QT平臺(tái)進(jìn)行融合, 最終在圖形化界面完成測(cè)試樣本的識(shí)別和檢測(cè)結(jié)果的輸出.
圖1 算法結(jié)構(gòu)圖
本項(xiàng)目基于VS2012、 OpenCV-2.4.9和QT5.5.0設(shè)計(jì)與實(shí)現(xiàn). 訓(xùn)練樣本的質(zhì)量極大影響訓(xùn)練模型的優(yōu)劣, 而樣本不足也會(huì)出現(xiàn)嚴(yán)重的過(guò)擬合現(xiàn)象. 項(xiàng)目組所獲取的圖像, 均來(lái)源于無(wú)人機(jī)的拍攝, 大小為3936*2624像素. 本項(xiàng)目共收集651G的數(shù)據(jù), 但含有鳥(niǎo)巢的只有750張, 如表1所示.
表1 線路圖像資料匯總
部分含鳥(niǎo)巢的樣本由于拍攝角度問(wèn)題, 人眼很難識(shí)別, 因此選取適合作為正樣本的含鳥(niǎo)巢圖像600張. 負(fù)樣本最終選取1 800張, 內(nèi)容為圖像區(qū)域中不含鳥(niǎo)巢的草叢、 樹(shù)木、 房屋、 天空、 桿塔、 防震錘等位置.
訓(xùn)練樣本的截取中使用了半自動(dòng)化的標(biāo)注程序, 由Matlab編寫(xiě)完成. 標(biāo)注過(guò)程需人工參與位置的選擇和大小的框定, 因此區(qū)域大小很難保持一致, 后期統(tǒng)一設(shè)置為100*80像素. 正、 負(fù)樣本示例如圖2所示. 第一行為正樣本, 均含有鳥(niǎo)巢區(qū)域. 第二行為負(fù)樣本, 包含除鳥(niǎo)巢區(qū)域的其他位置. 程序中使用resize函數(shù)設(shè)定截取后保存的圖像大小以及rgb2gray函數(shù)將彩色圖像轉(zhuǎn)換成灰度圖, 并對(duì)訓(xùn)練樣本進(jìn)行重命名操作.
圖2 正負(fù)樣本示例
LBP (Local Binary Pattern)稱(chēng)為局部二值模式[11], 因此待處理的圖像一定是灰度圖. 基本LBP算子如圖3所示.
圖3 基本LBP算子
Haar特征算子由Papageorgiou提出[13], 后經(jīng)P. Viola和M. Jones將Haar特征的模板進(jìn)一步拓展, Haar特征模板圖4所示, 特征模板內(nèi)包含黑白兩種矩形, 而不同顏色面積之差即為該特征的計(jì)算公式, 例如, 在a)組中, 邊緣特征值為A=sum(白)-sum(黑), 而線性特征中A=sum(白)-2*sum(黑), 因?yàn)镠aar特征可以很好地表述圖像灰度變化情況, 所以被廣泛應(yīng)用于目標(biāo)檢測(cè)中[14].
圖4 Haar特征模板
在進(jìn)行圖像特征的計(jì)算時(shí), 使用上述模板在圖像上進(jìn)行滑動(dòng)或平移, 最終得到圖像的矩形特征. 而大量特征的計(jì)算, 必定產(chǎn)生描述圖像的高維Haar特征, 同時(shí)模板平移過(guò)程中, 勢(shì)必帶來(lái)重復(fù)計(jì)算的問(wèn)題, 因此有了積分圖的出現(xiàn). 積分圖如圖5所示, 對(duì)于圖中A點(diǎn)的積分圖定義如下:其中(i,j)是原圖像中點(diǎn)的像素值,A(x,y)表示A點(diǎn)積分值. 由圖示可知, 積分圖是將圖像上(x,y)點(diǎn)左上角所有像素值進(jìn)行求和, 作為當(dāng)前點(diǎn)在積分圖中的像素值, 公式表示如下:
圖5 積分圖
實(shí)際應(yīng)用中利用迭代的方式減少積分圖的計(jì)算量. 如下式, 表示(x,y)點(diǎn)以及y方向上所有原始像素之和.
A(x,y)=A(x-1,y)+S(x,y)
S(x,y)=S(x,y-1)+I(x,y)
若將特征應(yīng)用于本項(xiàng)目中的含鳥(niǎo)巢圖像, 由圖6可以看出, 其在人臉監(jiān)測(cè)中比較適用, 但在本項(xiàng)目因?qū)嶒?yàn)中所用圖像中含有大量高壓桿塔, 而桿塔圖像區(qū)域的黑白特性和鳥(niǎo)巢枝干區(qū)域相似, 會(huì)給算法帶來(lái)干擾.
圖6 人臉與鳥(niǎo)巢的對(duì)比
AdaBoost分類(lèi)器起源于Boosting算法, 后由Freund和Schapire完善成可以自適應(yīng)地調(diào)整弱學(xué)習(xí)算法錯(cuò)誤率, 最終由Viola在其基礎(chǔ)之上提出級(jí)聯(lián)結(jié)構(gòu)的AdaBoost分類(lèi)器.
級(jí)聯(lián)分類(lèi)器的結(jié)構(gòu)如圖7所示, 圖中表示只有被判斷為正的樣本才會(huì)送入到下一級(jí)分類(lèi)器, 判為負(fù)的樣本直接輸出, 因此最后輸出的正樣本是每一級(jí)分類(lèi)器都認(rèn)可的. 通過(guò)降低正確劃分樣本的權(quán)重, 增加錯(cuò)誤樣本權(quán)重, 從而實(shí)現(xiàn)自動(dòng)調(diào)整樣本權(quán)重空間. 其中1,2,3……均是由多個(gè)分類(lèi)器集成的強(qiáng)分類(lèi)器. 算法的優(yōu)點(diǎn)在于使用加權(quán)的樣本代替隨機(jī)選取的訓(xùn)練樣本, 層層級(jí)聯(lián), 并且使用加權(quán)的投票機(jī)制代替平均投票機(jī)制. 結(jié)合本實(shí)驗(yàn), 算法具體實(shí)現(xiàn)過(guò)程如下:
1)給定訓(xùn)練樣本
圖7 級(jí)聯(lián)分類(lèi)器示意圖
S={(x1,y1), (x2,y2), …, (xi,yi), …, (xn,yn)}
其中,xi是鳥(niǎo)巢樣本,y2是類(lèi)別標(biāo)簽yi∈{-1, +1},n表示當(dāng)前的訓(xùn)練樣本數(shù)量;
2)初始化訓(xùn)練樣本, 并均勻賦予相同的權(quán)重:Dt(xi)=1/n;
3)循環(huán)t=1,2,3,……T, 表示弱分類(lèi)器的個(gè)數(shù).
①在當(dāng)前的樣本權(quán)重Dt下, 得到弱分類(lèi)器Ht=H(x,y,Dt);
②計(jì)算弱分類(lèi)器在當(dāng)前權(quán)重下的錯(cuò)誤率:
③計(jì)算弱分類(lèi)器在最終分類(lèi)器中的加權(quán)系數(shù), 即弱分類(lèi)器的權(quán)重:
at=ln(1-εt)/εt;
④為下一次迭代更新訓(xùn)練樣本權(quán)重:
4)最終輸出的強(qiáng)分類(lèi)器
實(shí)驗(yàn)中, 分別使用訓(xùn)練至15級(jí)、 18級(jí)、 20級(jí)的級(jí)聯(lián)強(qiáng)分類(lèi)器進(jìn)行測(cè)試樣本的檢測(cè), 同時(shí)使用不同的特征描述子進(jìn)行圖像特征的表述, 從而進(jìn)一步對(duì)比分析得到最優(yōu)的特征算子以及訓(xùn)練級(jí)數(shù).
為使算法具有更強(qiáng)的可操作性以及友好的人機(jī)交互界面, 本文使用QT 5.5.0設(shè)計(jì)檢測(cè)界面. QT是一種跨平臺(tái)的應(yīng)用程序開(kāi)發(fā)框架, 支持C++等主流計(jì)算機(jī)語(yǔ)言, 其主要用于GUI(Graphical User Interface, 圖形用戶(hù)界面)設(shè)計(jì). 設(shè)計(jì)完成之后普通用戶(hù)可以進(jìn)行相關(guān)操作, 包括相關(guān)命令的執(zhí)行、 編輯、 調(diào)用、 啟動(dòng)等. 正樣本檢測(cè)效果如圖8、 圖9所示, 表示檢測(cè)正樣本的結(jié)果展示. 可以看出, 不同拍攝角度、 目標(biāo)的不同遮掩程度、 不同光線強(qiáng)度下均可以得到準(zhǔn)確的檢測(cè)結(jié)果, 算法具有較強(qiáng)的伺服性能. 而圖10展示了負(fù)樣本的檢測(cè)結(jié)果, 可以看到檢測(cè)鳥(niǎo)巢數(shù)量為0, 因此檢測(cè)結(jié)果正確.
圖8 正樣本檢測(cè)效果
圖9 正樣本檢測(cè)效果
圖10 負(fù)樣本檢測(cè)效果
本實(shí)驗(yàn)采用Haar和LBP兩種特征對(duì)AdaBoost分類(lèi)器進(jìn)行訓(xùn)練, 不同訓(xùn)練級(jí)數(shù)對(duì)分類(lèi)器的整體判斷能力即準(zhǔn)確率(ACC)的影響如表2所示.
表2 訓(xùn)練級(jí)數(shù)對(duì)檢測(cè)結(jié)果的影響
通過(guò)表2可以看出, 增加訓(xùn)練級(jí)數(shù)在一定程度上可以提高檢測(cè)的準(zhǔn)確率, 但并不是訓(xùn)練級(jí)數(shù)越高越好. 實(shí)驗(yàn)表明, 訓(xùn)練級(jí)數(shù)為15級(jí)時(shí)候, 達(dá)到最優(yōu)檢測(cè)效果. 用此分類(lèi)器對(duì)待檢測(cè)圖像進(jìn)行結(jié)果分析如表3所示. 假設(shè)含鳥(niǎo)巢的正樣本有P個(gè),N個(gè)不含鳥(niǎo)巢的負(fù)樣本, 則實(shí)際含鳥(niǎo)巢檢測(cè)正確的樣本稱(chēng)之為T(mén)P(ture positive), 而實(shí)際不含鳥(niǎo)巢檢測(cè)結(jié)果錯(cuò)誤的樣本稱(chēng)之為FP(false positive), 實(shí)際含有鳥(niǎo)巢檢測(cè)結(jié)果錯(cuò)誤的稱(chēng)之為FN(false negative), 實(shí)際不含鳥(niǎo)巢檢測(cè)結(jié)果正確的稱(chēng)之為T(mén)N(ture negative). 由于P=TP+FN,N=TN+FP, 因此數(shù)據(jù)計(jì)算結(jié)果如表3所示.
表3 AdaBoost檢測(cè)結(jié)果
表中數(shù)值的計(jì)算公式如下:
FPR(虛警率, Fall-out or False Positive Rate)=FP/(FP+TN)=FP/N;
FNR(漏警率, Miss Rate or False Negative Rate)=FN/(FN+TP)=FN/P;
TPR(召回率, True Positive Rate)=TP/(TP+FN)=TP/P;
PPV(精確度, Precision or Positive Predictive Value)=TP/(TP+FP);
ACC(準(zhǔn)確率, Accuracy)=(TP+TN)/(P+N).
測(cè)試實(shí)驗(yàn)中使用正樣本90張, 負(fù)樣本60張, 并使用LBP特征描述子進(jìn)行分類(lèi)器的訓(xùn)練. 正樣本中有7張圖像出現(xiàn)兩個(gè)檢測(cè)框, 一個(gè)正確一個(gè)錯(cuò)誤, 79張正樣本正確檢測(cè)出目標(biāo)位置, 因此TP=86,F(xiàn)N=4. 60張負(fù)樣本中, 出現(xiàn)4個(gè)錯(cuò)誤檢測(cè)目標(biāo), 因此FP=4+7=11,TN=56, 則P=90,N=67, 最終計(jì)算結(jié)果如表3所示. 使用Haar特征進(jìn)行分類(lèi)器的訓(xùn)練, 對(duì)于90張正樣本有10張出現(xiàn)兩個(gè)檢測(cè)窗口, 72張檢測(cè)正確, 其余8張漏檢. 60檢測(cè)負(fù)樣本中, 7張錯(cuò)檢, 53張檢測(cè)正確. 因此TP=82,F(xiàn)P=17,F(xiàn)N=8,TN=53,P=90,N=70. 實(shí)際算法使用中, 虛警率和漏警率越小越好, 從表3中可以看出, LBP算子相比Haar算法更加適合表述鳥(niǎo)巢紋理特征.
高壓輸電線路頻頻出現(xiàn)的鳥(niǎo)害現(xiàn)象, 一直是電力部門(mén)關(guān)注的問(wèn)題. 本文通過(guò)分別使用Haar和LBP特征對(duì)鳥(niǎo)巢圖像進(jìn)行紋理提取, 并通過(guò)算法分析、 實(shí)驗(yàn)驗(yàn)證、 對(duì)比分析等得出結(jié)論, 提出的基于旋轉(zhuǎn)不變的LBP特征訓(xùn)練AdaBoost分類(lèi)器的高壓桿塔鳥(niǎo)巢檢測(cè)算法, 可以精確定位鳥(niǎo)巢所處位置. 同時(shí), 課題將算法和QT平臺(tái)進(jìn)行融合, 設(shè)計(jì)了基于QT的鳥(niǎo)巢檢測(cè)用戶(hù)界面, 并在圖形化界面完成測(cè)試樣本的識(shí)別和檢測(cè)結(jié)果的輸出. 結(jié)果表明, 該方法有助于提高人機(jī)交互能力, 可以減輕電力工作人員的工作負(fù)擔(dān), 具有一定的應(yīng)用價(jià)值. 隨著課題研究的深入, 后期可以進(jìn)一步拓展數(shù)據(jù)集, 以探索更高效的算法模型, 對(duì)本項(xiàng)目做進(jìn)一步的優(yōu)化.
洛陽(yáng)師范學(xué)院學(xué)報(bào)2020年8期