劉 冉, 于會群, 王國兵
(1.上海電力大學, 上海 200090; 2.上海華建電力設(shè)備股份有限公司, 上海 200090)
在傳統(tǒng)配電站房進行開關(guān)操作時,為了防止開關(guān)動作不到位或開關(guān)誤操作,需要人工檢查以確保開關(guān)動作到位[1]。隨著工業(yè)4.0等概念的提出,單純依靠人工的監(jiān)測方式已無法滿足智能化、實時化的管控需求,基于機器視覺的檢測方法是實現(xiàn)智能監(jiān)控的有效途徑?,F(xiàn)有的實時監(jiān)控方法大多基于傳統(tǒng)的機器學習理論,即首先將智能巡檢機器人采集的視頻分解成以幀為單位的圖像,經(jīng)過預處理操作后手動提取圖像特征,然后使用分類器識別物體狀態(tài)[2]。
以開關(guān)設(shè)備識別監(jiān)測為例,其按照形態(tài)大致可分為“把手式開關(guān)”和“旋鈕式開關(guān)”。其中,兩相把手式開關(guān)設(shè)備的旋轉(zhuǎn)鈕是不對稱的,一邊代表指向,一邊是控制把手,此類設(shè)備應用場景居多。國內(nèi)外學者對開關(guān)狀態(tài)識別做了眾多研究,但在檢測精度、速度或模型復雜度方面仍有提升的空間,研究提高兩相把手式開關(guān)識別效率和數(shù)據(jù)采集精度仍具有重要意義[3]。
因此,本文在配電站房的實際應用研究背景下,將單激發(fā)多框探測器(Single Shot Multibox Detector,SSD)算法進行優(yōu)化改進并應用于兩相把手式開關(guān)識別中。首先,選擇SSD圖像識別神經(jīng)網(wǎng)絡(luò)作為兩相把手式開關(guān)識別的基本算法,并將基于卷積塊的注意機制(Convolutional Block Attention Module,CBAM)引入到該算法結(jié)構(gòu)中,構(gòu)造了一種改進SSD算法;然后,使用智能巡檢機器人收集開關(guān)設(shè)備的圖像并制作數(shù)據(jù)集;最后,通過對大量數(shù)據(jù)樣本進行測試,驗證了改進SSD算法的有效性和準確性。
SSD目標檢測技術(shù)的網(wǎng)絡(luò)結(jié)構(gòu)由基礎(chǔ)網(wǎng)絡(luò)、預測卷積層和輔助卷積層3部分組成。其結(jié)構(gòu)原理如圖1所示。
圖1 SSD模型結(jié)構(gòu)原理
其中,VGG16是VGG(Visual Geometry Group)模型的一個深化版本,包含了16個卷積層和全連接層;Conv指卷積操作,Conv m_n指網(wǎng)絡(luò)結(jié)構(gòu)中的第m個卷積層的第n個子層;Classes指對象檢測模型需要識別的不同類別的物體或目標的數(shù)量;S1和S2分別表示步長為1和2。SSD針對Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2和Conv11_2特征層的每個單元,按照不同長寬比分別提取4~6個先驗框,最終獲取8 732個先驗框。樣本的正負通過Iou的計算公式來判斷,當計算值小于閾值時為負樣本,反之則為正樣本。Iou的計算公式如下:
(1)
式中:Gt,Dr——真實框、先驗框的集合。
經(jīng)Iou算法判斷后產(chǎn)生的眾多重疊檢測需要使用非極大值來抑制。其思想為從列表集合中移除得分最多的檢測框,并將其添加到最后的檢測結(jié)果中,從而篩選冗余結(jié)果。
SSD損失函數(shù)L定義為位置誤差與置信度誤差的加權(quán)和,屬于多任務(wù)損失函數(shù)。其表達式為
(2)
c——類別置信度預測值;
l——預測框;
g——真實框;
N——先驗框的正樣本數(shù)量,當N=0時,損失則為零;
Lconf——置信損失函數(shù);
α——置信度誤差和位置誤差的權(quán)重系數(shù),通常取1;
Lloc——位置損失函數(shù)。
置信損失函數(shù)Lconf表示預測框與真實框的差值,公式如下:
(3)
(4)
式中:Pos——正樣本先驗框;
Neg——負樣本的先驗框;
位置損失函數(shù)Lloc公式如下:
(5)
(6)
(7)
(8)
(9)
式中:m——邊框回歸損失;
cx,cy——先驗框d的中心坐標(cx,cy);
w,h——先驗框d的寬和高;
SmoothL1——一種針對回歸任務(wù)的平滑的損失函數(shù),用于目標檢測算法中的邊界框回歸任務(wù);
無論通道特征值含量多少,SSD算法對各個通道處理程度均一致,但這樣處理會浪費計算資源。為解決這一問題,先計算出每個通道的特征值含量,再對計算資源進行合理分配,這樣就能抑制無關(guān)信息,得到更多目標特征,使檢測精度得到提高。
目前,CBAM已經(jīng)廣泛地應用到了深度學習的每個領(lǐng)域。其原理是:模擬人的視覺機制,將圖像的關(guān)注重心放在輔助判斷的信息上,忽視無關(guān)信息。CBAM主要由通道注意力和空間注意力組成[4]。通道注意力模塊如圖2所示。其中,Sigmoid函數(shù)為神經(jīng)網(wǎng)絡(luò)的激活函數(shù),將變量映射到0和1之間。
圖2 通道注意力模塊
圖2中輸入特征圖記為F∈RC×H×W,W,H,C分別為輸入特征圖的寬、高和通道數(shù)。通道注意力模塊的工作原理為:通過對特征圖F進行平均池化和最大池化操作,達到壓縮特征圖F的全局空間信息的目的[5],并生成兩個尺寸為1×1×C的特征圖S1和S2;然后通過由多層感知器和一個隱含層組成的共享網(wǎng)絡(luò)層,對每個特征應用共享網(wǎng)絡(luò)之后,得到兩個一維特征圖,即平均池化特征和最大池化特征[6]。
將這兩個一維特征圖按通道進行元素求和,并將合并的特征通過Sigmoid函數(shù)進行歸一化,得到各通道的尺寸為1×1×C的權(quán)重統(tǒng)計值Mc[7]。通道注意力可以表示為
Mc(F)=φ[MLP(AvgPool(F))+MLP(MaxPool(F))]
(10)
式中:φ——Sigmoid激活函數(shù);
MLP——由全連接層FC1,FC2與ReLU非線性激活函數(shù)組成的多層感知器;
AvgPool——全局平均池化;
MaxPool——全局最大池化。
空間注意力模塊如圖3所示。
圖3 空間注意力模塊
空間注意力模塊的工作原理為:在經(jīng)過通道特征重標定后會得到特征圖F′。將其作為輸入,并在通道維度上對特征圖F′進行平均池化和最大池化操作,使特征圖在通道維度上進行壓縮,得到特征圖P1∈R1×H×W和P2∈R1×H×W。通過通道級聯(lián)兩個特征圖,生成一個有效的特征圖P3∈R2×H×W。隨后經(jīng)過7×7的卷積層(用f7×7表示),對P3中不同位置的信息進行編碼和融合。最后,通過Sigmoid函數(shù)操作得到空間加權(quán)信息Ms,可用于區(qū)分圖像不同空間位置的重要程度??臻g注意力可以表示為
Ms(F)=φ{(diào)f7×7([AvgPool(F′);MaxPool(F′)])}
(11)
CBAM注意力模塊結(jié)構(gòu)如圖4所示。
圖4 CBAM注意力模塊結(jié)構(gòu)
將輸入特征圖F與各通道權(quán)重值Mc兩個矩陣的對應元素相乘,對F進行特征重標定處理,得到能夠有效體現(xiàn)特征關(guān)鍵通道信息的特征映射F′。基于通道加權(quán),串聯(lián)空間注意力機制,并自適應加權(quán)空間特征信息。空間注意力模塊的輸入為F′,與空間權(quán)重系數(shù)Ms兩個矩陣的對應元素相乘,獲得包含通道位置信息和空間位置信息的顯著特征圖F″,使輸入特征強的部分能夠得到更多的關(guān)注,提升其空間特征選擇能力。
其過程用公式表示為
(12)
式中:?——兩個矩陣對應元素相乘。
為了進一步提高模型的檢測精度,將CBAM注意力機制引入到SSD算法中,改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 引入CBAM注意力機制的SSD網(wǎng)絡(luò)結(jié)構(gòu)
圖5中,將注意力機制加入到conv3→conv4和conv7→conv8→conv9→conv10→conv11之間,在卷積層的最后一層檢測每一張?zhí)卣鲌D,并提取相應的先驗框,經(jīng)過各種運算后將其發(fā)送到非極大值抑制進行篩選,最終輸出檢測結(jié)果。由于注意力機制的存在,改進SSD算法在前向訓練過程中會更加注重兩相把手式開關(guān)位置的識別,從而提高其占據(jù)比例。具體來說,注意力機制會針對輸入圖像中每個像素進行分類,判斷其是否為兩相把手式開關(guān)位置,從而使得算法更加準確地識別出兩相把手式開關(guān)的位置。通過引入注意力機制,改進SSD算法能夠提高對于兩相把手式開關(guān)位置的檢測精度,從而提高整個系統(tǒng)的工作效率。通過對權(quán)重系數(shù)不斷地調(diào)整,不僅能夠使兩相把手式開關(guān)提高必要特征提取的效率,還能在精確定位兩相把手式開關(guān)損失函數(shù)回歸時,提高損失函數(shù)計算的準確率。
選擇嵌入CBAM機制來改進SSD算法時,主要考慮以下幾個方面的優(yōu)勢。
(1) 提高識別精度 SSD算法是一種基于卷積神經(jīng)網(wǎng)絡(luò)的目標檢測算法。其對于目標邊界的識別準確度較高,但對于目標的分割準確度相對較低;而CBAM機制可以通過對卷積層的輸出進行注意力加權(quán),從而使得網(wǎng)絡(luò)更加關(guān)注對于目標識別重要的特征,減少對于無關(guān)特征的捕捉,從而提高識別精度[8]。
(2) 降低模型復雜度 SSD算法在目標檢測過程中需要進行多次卷積操作,從而使得模型的參數(shù)數(shù)量較大,計算復雜度較高[9];而CBAM機制可以通過注意力加權(quán)的方式,對卷積層的輸出進行優(yōu)化,從而減少模型的參數(shù)數(shù)量和計算復雜度,提高模型的可訓練性和泛化能力。
(3) 適應不同任務(wù)需求 CBAM機制可以通過對卷積層的輸出進行注意力加權(quán),從而使得網(wǎng)絡(luò)更加關(guān)注對于目標識別重要的特征,對于不同類型的目標檢測任務(wù)都適用;而 SSD 算法是一種較為通用的目標檢測算法,可以應用于不同類型的目標檢測任務(wù),但針對不同的任務(wù)需求,可能需要對其進行相應的調(diào)整和優(yōu)化[10]。
綜上所述,選擇嵌入CBAM機制來改進SSD算法可以顯著提高模型的識別精度,降低模型的參數(shù)數(shù)量和計算復雜度,并且可以適應不同的目標檢測任務(wù)需求。因此,這是一種較為有效和實用的算法改進方法。
為了使經(jīng)過訓練的SSD目標識別網(wǎng)絡(luò)更方便地識別兩相把手式開關(guān)的狀態(tài),需要一定數(shù)量的對應開關(guān)圖像作為訓練集。本文的兩相把手式開關(guān)圖像數(shù)據(jù)集主要來自智能巡檢機器人的現(xiàn)場拍攝。對智能巡檢機器人所采集到的視頻進行抽幀處理,生成樣本圖片,通過對亮度、對比度、鏡像翻轉(zhuǎn)的調(diào)整來擴大數(shù)據(jù)集[11],最終建立起1 000張兩相把手式開關(guān)圖像的數(shù)據(jù)集。其中:包括300張橫向狀態(tài)開關(guān)圖片,300張縱向狀態(tài)開關(guān)圖片,400張橫縱混合開關(guān)圖片。標記的標準為目標完整度大于50%。使用三維標注工具labelImg對數(shù)據(jù)集進行標注,“horizontal”為橫向狀態(tài)的標注標簽,“vertical”為縱向狀態(tài)的標注標簽,采用VOC2007數(shù)據(jù)集格式標記,生成1 000份XML文件,XML文件中的信息包括圖像的路徑、名稱、大小[12]。
本文所進行訓練及測試的實驗環(huán)境配置如表1所示。
表1 實驗環(huán)境配置
為了對本文所提出的改進SSD算法的性能進行評價,對檢測結(jié)果和評價參數(shù)進行分析,樣本照片按照9∶1的比例隨機分配為訓練集和測試集。圖6為改進SSD算法測試結(jié)果的部分圖片。從圖6中可以看出,在背景雜亂的情況下,改進SSD算法仍能準確檢測識別兩相把手式開關(guān)的狀態(tài)。
圖6 改進SSD算法測試結(jié)果的部分圖片
為了進一步驗證本文提出的改進SSD算法,使用K-最近鄰(K-Nearest Neighbor,KNN)法、反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)兩種較為成熟的圖像識別應用方法、傳統(tǒng)的SSD算法和本文所提改進SSD算法,分別對測試集的1 000幅圖像進行檢測。不同算法性能評估指標對比如表2所示,識別結(jié)果對比如圖7所示。由表2可以看出:改進SSD算法的平均精度(Average Precision,AP)在98.66%以上,說明開關(guān)檢測精確度非常高,單個目標檢測效果非常好;改進SSD算法模型的平均精度均值(meam Average Precision,mAP)達到了99.10%,證明網(wǎng)絡(luò)的檢測性能在準確性上達到了較高水平。
表2 不同算法性能評估指標對比
圖7 識別結(jié)果對比
根據(jù)表2給出的數(shù)據(jù),可以得到以下實驗結(jié)果對比描述。
KNN算法是一種基于實例監(jiān)督學習的算法,其準確率較高,但對于分類問題存在一定的誤分類率。在本文實驗中,KNN算法的mAP值為79.25%,誤檢率較高,處理速度也較慢。
BPNN算法是一種基于神經(jīng)網(wǎng)絡(luò)的算法,具有較好的分類能力和魯棒性,但需要大量的參數(shù)調(diào)整。在本文實驗中,BPNN算法的mAP值為90.74%,誤檢率較高,參數(shù)量較大,處理速度較慢。
SSD算法是一種基于卷積神經(jīng)網(wǎng)絡(luò)的算法,具有較高的準確率和較低的誤檢率,但需要一定的參數(shù)調(diào)整。在本文實驗中,SSD算法的mAP值為95.29%,其參數(shù)量較少,處理速度較快。
改進SSD算法是在SSD算法的基礎(chǔ)上進行了改進,提高了準確率和降低了誤檢率。在本文實驗中,改進SSD算法的mAP值為99.10%,誤檢率最低,參數(shù)量幾乎為零,處理速度較快。
從圖7可以看出:在KNN算法、BPNN算法和傳統(tǒng)SSD算法中,由于周圍環(huán)境和開關(guān)布局的影響,存在漏檢的情況,并且對于兩相把手式開關(guān)檢測的準確性比改進SSD算法要低。
綜上所述,改進SSD算法相對于KNN算法、BPNN算法和傳統(tǒng)SSD算法具有更高的準確率和更低的誤檢率,且不需要過多的參數(shù)調(diào)整,具有較高的實用性和應用價值。
本文提出改進SSD目標檢測算法,用于對配電站房的兩相把手式開關(guān)狀態(tài)的識別。該識別算法在特征提取模塊中嵌入CBAM注意力機制,增強有用特征并抑制無用特征響應,有效地提升了檢測的精度。實驗結(jié)果表明,改進SSD算法模型的mAP達到了99.10%。在智能巡檢機器人中運用該算法不僅可以降低人工巡檢操作出現(xiàn)問題的可能性,還能提高兩相把手式開關(guān)狀態(tài)的識別效率,提高了配電站房的智能化水平。