孫小磊,陳 昊,孫子昌,張海華
(國網(wǎng)江蘇省電力有限公司檢修分公司,江蘇 南京211102)
隨著社會經(jīng)濟的不斷發(fā)展,電網(wǎng)安全穩(wěn)定運行的重要性日益凸顯,這對變電站的精益化運維管理提出了更高的要求。變電站二次設(shè)備作為對一次側(cè)進行測控和繼保操作的重要設(shè)備,目前對其硬壓板的核對檢查工作主要由人工巡視完成,存在耗時長、任務(wù)重和容易出錯等問題。在電網(wǎng)公司推行變電站少人化、無人化值守的趨勢下,亟需對二次設(shè)備硬壓板核對檢查的智能化解決方案,以推進電網(wǎng)公司智能化運檢體系的建設(shè)[1,2]。
現(xiàn)有變電站硬壓板狀態(tài)識別方法主要分為傳感器監(jiān)測[3-7]和圖像識別[8-12]兩大類。其中,傳感器監(jiān)測一般是在原有壓板基礎(chǔ)上新增監(jiān)測裝置,增加了變電運維人員操作難度和運維風(fēng)險;圖像識別方面,目前主要采用OpenCV進行圖像處理,輔以智能算法,但這類算法準確率較低,且對壓板圖像的光照、視角要求較高。目前已有研究人員將深度學(xué)習(xí)算法應(yīng)用到變電站壓板識別中[13-18],但存在推理速度慢,泛化能力弱等問題。為此,本文提出一種基于SSD_Inception 目標檢測模型,并經(jīng)OpenVINO 工具套件優(yōu)化加速的變電站壓板識別方法。
文獻[13]提出的SSD(SingleShotMultiBoxDetector)網(wǎng)絡(luò)是一種端到端的單次多框?qū)崟r檢測的深度神經(jīng)網(wǎng)絡(luò)模型[19],強調(diào)在多尺度特征圖上通過滑動窗口的形式產(chǎn)生多個不同尺度和寬高比的候選框然后進行分類回歸的方法進行目標檢測,因其兼顧良好的時效性與準確性的優(yōu)勢,被廣泛應(yīng)用到多個目標檢測應(yīng)用領(lǐng)域中,如視頻中的行人檢測、車輛檢測等。SSD網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)層采用經(jīng)典的VGG16 進行特征提取,并把VGG16 中的兩個全連接層FC6、FC7 采用空洞卷積的方式轉(zhuǎn)換為Conv6、Conv7 層,在不增加參數(shù)量和模型復(fù)雜度的條件下,指數(shù)級擴大卷積的感受野,然后刪除FC8層和Dropout層,使用改造后的VGG16網(wǎng)絡(luò)對輸入圖像做特征提取,并選取VGG16 中的Conv4-3 層和轉(zhuǎn)換后的Conv7 層作為目標檢測的特征圖,并在后面新增了4 對尺寸逐層減半的特征圖(10×10,5×5,3×3 和1×1的卷積層),構(gòu)成特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)[20]。其結(jié)構(gòu)圖如圖1所示。
圖1 SSD模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 SSD model framework
為進一步提高SSD 模型的計算能力,不少研究人員 提 出 將Inception 模 塊 嵌 入 至SSD 網(wǎng) 絡(luò) 中[21-23]。Inception結(jié)構(gòu)是GoogleNet中的一個模塊[24],其最大的優(yōu)點就是采用不同尺度的卷積核并行運算,通過多分支并行不同尺度卷積核提取特征相融合的方式,有效地提升了各尺度目標特征的語義性,尤其是可以照顧到較小的目標,同時也減少了參數(shù)量和計算量。Inception 結(jié)構(gòu)具有密集矩陣的高性能特點,同時還保持著網(wǎng)絡(luò)稀疏結(jié)構(gòu),Inception 模塊原始結(jié)構(gòu)圖如圖2所示,其結(jié)構(gòu)中使用了3個尺寸不同的濾波器(1×1,3×3,5×5)以對應(yīng)不同級別的特征圖片,1×1 卷積也能夠在保持原結(jié)構(gòu)的前提下增強非線性,最后將相同維度的特征進行跨通道的聚合。
圖2 Inception模塊結(jié)構(gòu)圖Fig.2 Inception block framework
嵌入了Inception 模塊的SSD 網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3所示。
OpenVINO 為英特爾公司開發(fā)的一個快速開發(fā)高性能計算機視覺和深度學(xué)習(xí)視覺應(yīng)用的工具包,支持英特爾架構(gòu)的處理器、核顯、神經(jīng)計算棒、視覺計算加速卡等設(shè)備,增強視覺系統(tǒng)功能和性能[25-30]。
OpenVINO 工具套件通過其中的模型優(yōu)化器(Model Optimizer)實現(xiàn)加速推理。模型優(yōu)化器通過將預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型導(dǎo)入到內(nèi)存中并讀取,生成內(nèi)部表達(Internal Representation)并對其進行優(yōu)化,最終生成一個可用推理引擎(Inference Engine)讀取的中間表示(Intermediate Representation)文件,即IR文件。IR文件由*.xml 格式和*.bin 格式文件組成,其中*.xml 文件記錄了模型的網(wǎng)絡(luò)拓撲結(jié)構(gòu),*.bin文件則是記錄卷積權(quán)重值的二進制文件。經(jīng)過模型優(yōu)化器優(yōu)化后的模型,在不影響精度的情況下,在英特爾的多平臺硬件上可以更快執(zhí)行。
圖3 SSD_Inception 模型網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 SSD_Inception model framework
模型優(yōu)化器的優(yōu)化方式有:線性操作融合,ResNet 優(yōu)化和分組卷積融合(針對TensorFlow 模型)等方式。
以線性操作融合為例,模型優(yōu)化器將一般卷積神經(jīng)網(wǎng)絡(luò)中常用到的批標準化(Batch Normalization)層和縮放平移(Scale and Shift)層作為一個由加法和乘法構(gòu)成的計算序列,融合至臨近的卷積層中,減小內(nèi)存拷貝計算量,從而加速模型推理。原理如圖4所示:模型中序列1 的批標準化層res_conv1_bn 和縮放平移層res_conv1_scale 被融合至臨近的卷積層res_conv1 中,序列2同理。
圖4 線性操作融合Fig.4 Linear Operations Fusing
以TensorFlow模型為例,當模型訓(xùn)練完成后,可以導(dǎo)出為模型凍結(jié)圖文件(*.pb 文件),接著使用OpenVINO 工具套件中的模型優(yōu)化器優(yōu)化凍結(jié)圖模型,生成中間表示IR 文件。獲得IR 文件之后,就可以在用戶的應(yīng)用程序中通過調(diào)用推理引擎Inference Engine 來完成推理計算。 Inference Engine 是OpenVINO 工具套件的重要組件,包含C++/Python API函數(shù),用于完成初始化AI 計算硬件、裝載模型和執(zhí)行推理計算,并返回計算結(jié)果,其典型開發(fā)流程如圖5所示。
圖5 OpenVINO典型開發(fā)流程Fig.5 OpenVINO typical development process
選取某變電站保護室保護裝置屏柜不同視角下壓板照片60 張,共包含壓板樣本2 033 個。通過選取不同視角下的壓板照片作為訓(xùn)練集,模擬移動機器人或無人機現(xiàn)場采集的圖片,以期提高模型訓(xùn)練結(jié)果的泛化能力。
圖6 不同視角下壓板照片F(xiàn)ig.6 Photos of platen under different viewing angles
通過labelImg 工具對圖片上的壓板狀態(tài)進行人工標注,分為投入(Close)、退出(Open)和備用(Standby)三種狀態(tài)。將這些標注后的圖片按8∶2的比例分為訓(xùn)練集和評估集。
本算例運行平臺為Win10,具體配置如表1所示。
表1 運行平臺參數(shù)Table 1 Experimental platform parameters
在深度學(xué)習(xí)模型的訓(xùn)練中,要想使模型收斂并得到理想的結(jié)果,需要耗費巨大的資源,因此要使用遷移學(xué)習(xí)技術(shù)。遷移學(xué)習(xí)核心思想是將在A任務(wù)訓(xùn)練得到的模型移植到B 任務(wù)上來,因此本算例在TensorFlow官方提供的用于目標檢測的SSD_Inception_V2預(yù)訓(xùn)練模型基礎(chǔ)上進行遷移學(xué)習(xí),從而獲得更快的訓(xùn)練速度和損失率Loss 下降速度。在本算例中,設(shè)置訓(xùn)練次數(shù)為10 000次,批大?。˙atch Size)為2,其損失率曲線通過TensorFlow 工具的TensorBoard 組件獲得,平滑率的經(jīng)驗值為0.5,如圖7所示。
圖7 損失率曲線Fig.7 Loss rate curve
通過遷移學(xué)習(xí),將訓(xùn)練結(jié)果保存為TensorFlow 凍結(jié)圖*.pb 文件,再使用OpenVINO 工具套件的模型優(yōu)化器對其進行優(yōu)化,得到該模型的中間表示IR文件(*.xml和*.bin文件),最后通過調(diào)用Inference Engine 的相應(yīng)API接口即可進行推理測試。測試環(huán)境參數(shù)同表1。為比較OpenVINO 對模型計算性能優(yōu)化程度,本算例采用通過TensorFlow 原生API 載入凍結(jié)圖*.pb 文件和通過Inference Engine API 載入IR 文件兩種方式對相同測試數(shù)據(jù)集進行推理,測試圖片共20 張,置信度設(shè)為0.5,測試結(jié)果如圖8所示。
圖8 不同推理方式結(jié)果對比Fig.8 Comparison of results of different inference methods
為檢測模型計算效果,本算例采用精確度(Precision)和召回率(Recall)作為評價指標,其計算公式如下:
在式(1)和式(2)中,TP為正樣本被正確識別為正樣本的數(shù)量,F(xiàn)P 為負樣本被錯誤識別為正樣本的數(shù)量,F(xiàn)N為正樣本被錯誤識別為負樣本的數(shù)量。具體到本算例中,規(guī)定TP為模型檢出并正確判斷狀態(tài)的壓板數(shù)量,F(xiàn)P為模型檢出但判斷錯誤的壓板數(shù)量,F(xiàn)N為模型未檢出的壓板數(shù)量。由此可知精確度表示模型對所有判斷為正樣本的查準率,召回率表示模型對所有正樣本的查全率。
不同推理方式的相關(guān)性能對比結(jié)果如表2所示。
從表2 可以看出,對同一模型而言,經(jīng)過OpenVINO 工具套件模型優(yōu)化器優(yōu)化后,模型可以在保證推理準確率的前提下,使得召回率有大幅提升,從而保證壓板目標有更高的檢出率;優(yōu)化后的模型在推理時間和幀率方面也有大幅提升,平均每張照片的推理時間在30 ms 左右,可以滿足計算模型對實時性的要求,適用于部署在移動機器人或無人機等邊緣移動計算平臺上。
變電站無人化值守是電網(wǎng)智能化發(fā)展的趨勢,對于變電站壓板的檢查核對工作亟需智能化的解決方案,從而提高巡檢效率,減輕人員工作負擔。所提出的基于SSD_Inception 模型的變電站壓板識別方法,通過遷移學(xué)習(xí)減輕訓(xùn)練負擔;基于Intel AI模型優(yōu)化工具套件OpenVINO 對模型進行了優(yōu)化,有效提高了模型的各項計算性能,使得模型具備部署在邊緣移動計算平臺(如各類巡檢機器人與無人機)上的能力,進一步提高變電巡檢的自動化水平。
表2 不同推理方式性能對比Table 2 Comparison of performance of different inference methods