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