黃楊樂天,劉宜勝,陳 錟,劉丹丹
(浙江理工大學(xué) 機(jī)械工程學(xué)院,杭州 310018)
以前國(guó)內(nèi)大多數(shù)的數(shù)據(jù)中心機(jī)房主要依靠人工目視的方式進(jìn)行機(jī)房巡檢,但是隨著數(shù)據(jù)中心及通信機(jī)房的規(guī)模逐步擴(kuò)大,巡檢工作也變得越來越繁重。據(jù)此,基于移動(dòng)機(jī)器人的機(jī)房巡檢系統(tǒng)應(yīng)運(yùn)而生,實(shí)現(xiàn)無(wú)人值守,提高巡檢效率[1-2]。目前巡檢系統(tǒng)在電網(wǎng)行業(yè)應(yīng)用比較廣泛,特別是在變電站、配電室等[3-4]。研究前期的儀表識(shí)別主要采用的是傳統(tǒng)的視覺算法,圖像識(shí)別的準(zhǔn)確度非常依賴于人工設(shè)計(jì)的圖像特征提取方法[5]。傳統(tǒng)的圖像特征提取方法基于匹配的機(jī)制,利用識(shí)別對(duì)象的特征進(jìn)行匹配實(shí)現(xiàn)目標(biāo)檢測(cè)[6],但由于變電站的環(huán)境復(fù)雜導(dǎo)致該方法的魯棒性較差,難以滿足項(xiàng)目的需要。
近年來,以深度學(xué)習(xí)為代表的儀表識(shí)別技術(shù)已經(jīng)應(yīng)用在機(jī)器人上[7-8]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)從檢測(cè)過程可分為二階段和單階段兩類[9],代表的網(wǎng)絡(luò)有R-CNN 系列[10]和YOLO 系列[11-12]。本文從機(jī)房巡檢識(shí)別系統(tǒng)出發(fā),設(shè)計(jì)了基于深度學(xué)習(xí)的儀表定位算法以及讀數(shù)識(shí)別方法,并實(shí)裝于杭州某軌道交通信號(hào)系統(tǒng)龍頭企業(yè)。
儀表的總體識(shí)別方案如圖1 所示。由于儀表圖像中表盤占比往往較小,因此采用了對(duì)小目標(biāo)檢測(cè)精度高的Faster R-CNN 網(wǎng)絡(luò)。目前沒有公開的機(jī)房?jī)x表數(shù)據(jù)集,本實(shí)驗(yàn)根據(jù)實(shí)際場(chǎng)景建立了一個(gè)數(shù)據(jù)集。首先收集了巡檢機(jī)器人采集到的圖像,按8∶1∶1的比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集供網(wǎng)絡(luò)模型訓(xùn)練。為了提高模型的泛用性,避免過擬合,對(duì)訓(xùn)練集進(jìn)行了數(shù)據(jù)增強(qiáng),包括旋轉(zhuǎn)、鏡像和縮放,改變圖像的亮度、對(duì)比度、噪聲。對(duì)這些方法進(jìn)行隨機(jī)組合,來增加數(shù)據(jù)的多樣性,經(jīng)過數(shù)據(jù)增強(qiáng),共得到了1584 張圖像。
圖1 指針儀表的識(shí)別流程Fig.1 Identification process of pointer instruments
為了提高檢測(cè)模型的精度,本文對(duì)其進(jìn)行了改進(jìn)。首先使用殘差網(wǎng)絡(luò)對(duì)原始圖像進(jìn)行特征提?。唤又?,區(qū)域生成網(wǎng)絡(luò)根據(jù)特征圖在原始圖像中生成一定數(shù)量的候選框,對(duì)框內(nèi)對(duì)象進(jìn)行分類和回歸計(jì)算,篩選包含較多目標(biāo)的候選框,池化模塊處理篩選后的候選框;最后,目標(biāo)分類模塊對(duì)候選框內(nèi)的內(nèi)容進(jìn)行分類,坐標(biāo)回歸模塊執(zhí)行坐標(biāo)偏差量的回歸計(jì)算得到更接近目標(biāo)實(shí)際邊緣的邊界框。本文使用改進(jìn)的Faster R-CNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 改進(jìn)后的Faster R-CNN 網(wǎng)絡(luò)框架Fig.2 Improved Faster R-CNN network framework
常用的主干特征提取網(wǎng)絡(luò)有VGG16、ResNet50等。ResNet 最大的特點(diǎn)是使用了殘差塊,殘差塊的引入使其有更深的網(wǎng)絡(luò)架構(gòu),而不會(huì)造成梯度消失或過擬合,增加網(wǎng)絡(luò)的非線性,提高了檢測(cè)的精度;同時(shí)參數(shù)比淺層網(wǎng)絡(luò)更少,性能更好且收斂速度更快,計(jì)算速度大大提高。該結(jié)構(gòu)由2 個(gè)卷積層和1個(gè)跨層連接組成,如圖3 所示。這個(gè)跨層連接允許梯度直接跨過1 個(gè)或多個(gè)卷積層,可以將輸入的特征圖直接添加到輸出中,從而保留更多的特征信息。表1 中對(duì)比了不同深度的ResNet 網(wǎng)絡(luò)結(jié)構(gòu)。
表1 三種深度的ResNet 網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 Three deep ResNet network structures
圖3 殘差結(jié)構(gòu)模塊Fig.3 Residual structure module
區(qū)域生成網(wǎng)絡(luò)依靠RPN(region proposal network)以卷積層提取的特征圖作為輸入,基于滑動(dòng)窗口機(jī)制,在每個(gè)窗口位置上生成k 個(gè)錨點(diǎn),每個(gè)錨點(diǎn)與多個(gè)不同尺度和寬高比的候選目標(biāo)框相關(guān)聯(lián),通過對(duì)每個(gè)錨點(diǎn)進(jìn)行二分類和邊界框回歸。候選框回歸層輸出是候選框的4 個(gè)位置坐標(biāo),分類層輸出是預(yù)測(cè)前景和背景概率的2 個(gè)分?jǐn)?shù)。比較每個(gè)候選框的得分并進(jìn)行分類,判斷候選框?qū)儆诎瑑x表還是背景,并利用線性回歸來獲得更接近儀表實(shí)際邊緣的邊界框。
RoI Pooling 將RoI 區(qū)域劃分為一個(gè)固定大小的網(wǎng)格,而固定大小網(wǎng)格可能無(wú)法完全覆蓋RoI,從而導(dǎo)致信息的丟失,且當(dāng)RoI 很小時(shí),RoI Pooling的固定網(wǎng)格大小可能會(huì)導(dǎo)致特征量不足。為了提高儀表表盤的識(shí)別精度,將原池化層中的RoI Pooling改進(jìn)為RoI Align,它取消了RoI Pooling 的嚴(yán)格量化,將提取的特征與輸入對(duì)齊,避免了RoI 邊界的量化,保留浮點(diǎn)數(shù),通過雙線性插值計(jì)算多個(gè)樣本點(diǎn)的精確值,并將多個(gè)樣本點(diǎn)的最大值或平均值聚合以得到最終值。這樣,RoI Align 可以更精確地捕捉RoI 內(nèi)的特征,同時(shí)也可以充分利用RoI 內(nèi)的像素信息,從而提高了目標(biāo)檢測(cè)和物體識(shí)別的準(zhǔn)確性。
在RPN 訓(xùn)練期間,F(xiàn)aster R-CNN 為網(wǎng)絡(luò)訓(xùn)練的每個(gè)候選框分配一個(gè)二進(jìn)制標(biāo)簽。以下2 種類型的錨被指定為正標(biāo)簽:具有最高交并比(IoU)的錨與外部目標(biāo)框重疊;錨對(duì)于任何目標(biāo)具有高于0.7 的IoU。此外,具有低于0.3 的IoU 的非正錨被分配負(fù)標(biāo)簽。Faster R-CNN 的總損失函數(shù)包括分類和回歸損失,損失函數(shù)定義如下:
式中:i 為小批量數(shù)據(jù)中錨點(diǎn)i 的索引;pi為錨點(diǎn)i成為目標(biāo)對(duì)象的概率,如果錨是目標(biāo)對(duì)象(正),則目標(biāo)真實(shí)標(biāo)簽為1,如果錨是背景(負(fù)),則為0;Ncls為小批量的數(shù)目;Nreg為錨點(diǎn)的數(shù)量;ti為候選框與錨點(diǎn)的4 個(gè)坐標(biāo)偏移量為實(shí)際的偏移量。這里輸出的是坐標(biāo)偏移量,要得到修正后的錨點(diǎn)還要用原坐標(biāo)和這個(gè)偏移量進(jìn)行運(yùn)算,偏移量計(jì)算公式如下:
式中:w、h、x 和y 分別表示候選框的寬度、高度、x 坐標(biāo)和y 坐標(biāo);wa、w*分別定義為候選框和錨點(diǎn)框的偏移量和實(shí)際偏移量,同樣適用于x,y,h。對(duì)于分類部分采用雙對(duì)數(shù)損失函數(shù),其計(jì)算公式如下:
式中:R 是smoothL1函數(shù),其計(jì)算公式如下:
由于提取到的指針式儀表區(qū)域邊框可能會(huì)發(fā)生傾斜,影響計(jì)算指針夾角的精確度,需要對(duì)表盤區(qū)域進(jìn)行圖片矯正。本實(shí)驗(yàn)所涉及均為矩形儀表,故利用邊框直線的傾斜角度對(duì)其進(jìn)行矯正。基于圖像邊緣檢測(cè)使用的各類算子對(duì)圖像進(jìn)行處理,并進(jìn)行霍夫變換檢測(cè)直線,如圖4 所示。可以發(fā)現(xiàn),Sobel算子幾乎沒有檢測(cè)到邊框直線;Scharr 算子檢測(cè)到的直線過多,對(duì)后續(xù)篩選邊框直線造成了困難。對(duì)比Canny,Laplacian 兩類算子處理后的圖片,均可以很好地檢測(cè)出邊框直線,而經(jīng)過Laplacian 算子處理后檢測(cè)到的直線更貼合邊框且無(wú)其余直線影響。故Laplacian 算子處理后進(jìn)行霍夫變換能得到更符合要求的直線,然后從中篩選出相互垂直的直線,并保留最外端的線段,通過仿射變換矯正圖片。矯正流程如圖5 所示。
圖4 各類邊緣算子檢測(cè)后的霍夫變換圖Fig.4 Hough transform graph after detection of various edge operators
圖5 儀表圖片矯正流程Fig.5 Instrument image correction process
經(jīng)過矯正后的儀表圖片存在背景噪聲等問題。為了精確提取指針,需要對(duì)圖像進(jìn)行濾波和形態(tài)學(xué)處理。首先,遍歷整張圖像進(jìn)行輪廓檢測(cè),由于指針是細(xì)長(zhǎng)型的輪廓,因此可以通過長(zhǎng)寬比來篩選目標(biāo)輪廓;然后使用霍夫變換來檢測(cè)指針?biāo)诘闹本€;在矯正后的圖像中提取到指針直線時(shí),其與水平線的夾角即為指針的旋轉(zhuǎn)角度。其處理流程如圖6所示。
圖6 指針提取過程Fig.6 Pointer extraction process
最后使用角度法對(duì)指針式儀表進(jìn)行讀數(shù),其計(jì)算公式為
式中:Vmin表示零刻度線數(shù)值;Vmax表示最大刻度線數(shù)值;θ0表示指針旋轉(zhuǎn)角度;θ1表示零刻度線與最大刻度線間的夾角。
本文使用的深度學(xué)習(xí)框架為Pytorch,操作系統(tǒng)為Windows 10。其中GPU 為NVIDIA GeForce RTX 3090,顯存為32 G;Cuda 與Cudnn 版本11.3、Pyotrch版本1.11、Python 版本3.9、Opencv 版本4.5。實(shí)驗(yàn)中的參數(shù)設(shè)置batch_size=8,epoch=500,學(xué)習(xí)率=0.001,權(quán)重變化=0.0001。
本文采用參數(shù)量(Parameters)、精確度(Precision,P)、召回率(Recall,R)、平均精確度(mAP)和F1 評(píng)分指標(biāo)對(duì)模型的性能進(jìn)行了客觀的評(píng)價(jià)。參數(shù)量指的是模型所包含的參數(shù)的數(shù)量。精確度是最常用的評(píng)價(jià)指標(biāo),它是正確的目標(biāo)數(shù)除以檢測(cè)到的目標(biāo)數(shù)。召回率是所有正例被分對(duì)的比率。平均精確度是衡量模型在所有類別中的平均值。F1 評(píng)分為精確度和召回率的加權(quán)平均值。具體計(jì)算公式如下:
式中:TP 為將正類預(yù)測(cè)為正類數(shù)樣本數(shù)量;FP 為將負(fù)類預(yù)測(cè)為正類數(shù)樣本數(shù)量;FN 為將負(fù)類預(yù)測(cè)為負(fù)類數(shù)樣本數(shù)量;TN 為將正類預(yù)測(cè)為負(fù)類數(shù)樣本數(shù)量。
4.3.1 網(wǎng)絡(luò)改進(jìn)對(duì)比
表2 所示為不同池化策略的檢測(cè)結(jié)果對(duì)比,可知采用RoI Align 的每類儀表檢測(cè)精度均高于RoI Pooling,特別是對(duì)于電流表表盤,其準(zhǔn)確度提高了10%。表3 顯示隨著ResNet 網(wǎng)絡(luò)層數(shù)的加深,模型的識(shí)別精度越來越高,說明在本數(shù)據(jù)集上加深網(wǎng)絡(luò)更好地提取了表盤特征,提高了模型的識(shí)別準(zhǔn)確率,其中ResNet152 提升精度最高,平均提升了0.42%。
表2 不同池化策略的識(shí)別準(zhǔn)確率Tab.2 Detection accuracy of different pooling strategies
表3 不同ResNet 層數(shù)對(duì)比Tab.3 Comparison of different ResNet layers
4.3.2 消融和對(duì)比實(shí)驗(yàn)
為了驗(yàn)證網(wǎng)絡(luò)改進(jìn)的有效性,對(duì)改進(jìn)Faster RCNN 進(jìn)行了消融實(shí)驗(yàn),并和目前主流的YOLO 系列檢測(cè)模型性能進(jìn)行了對(duì)比。由表4 可以看出,經(jīng)過改進(jìn)池化策略和加深殘差網(wǎng)絡(luò)層數(shù)的Faster RCNN 比原模型的mAP 提升了6.2%,F(xiàn)1 得分提高了0.06。由表5 可以看出,輕量化模型YOLOv7-tiny的平均準(zhǔn)確率高于其他YOLO 模型,改進(jìn)Faster RCNN 的F1 得分與YOLOv7 系列相對(duì)持平,mAP 高出0.76%。
表4 Faster R-CNN 消融實(shí)驗(yàn)結(jié)果Tab.4 Faster R-CNN ablation experimental results
表5 主流模型對(duì)比實(shí)驗(yàn)Tab.5 Comparison experiment of mainstream models
4.3.3 指針讀數(shù)結(jié)果
搭載本文算法的巡檢系統(tǒng)能夠?qū)χ羔樖絻x表做出準(zhǔn)確識(shí)別。隨機(jī)選取10 個(gè)儀表圖像,將本實(shí)驗(yàn)的識(shí)別結(jié)果與真實(shí)讀數(shù)進(jìn)行比較,得到相對(duì)誤差,讀數(shù)實(shí)驗(yàn)如表6 所示。平均相對(duì)誤差在0.73%,最大誤差穩(wěn)定在2%之內(nèi),取得了較好的準(zhǔn)確度,符合巡檢識(shí)別的精度要求。
表6 讀數(shù)結(jié)果對(duì)比Tab.6 Comparison of reading results
本文從機(jī)房巡檢識(shí)別系統(tǒng)出發(fā),構(gòu)建了機(jī)房巡檢系統(tǒng)總體架構(gòu),同時(shí)對(duì)其方案進(jìn)行設(shè)計(jì)?;谏疃葘W(xué)習(xí)的儀表定位算法,針對(duì)指針儀表的表盤讀數(shù)的邊緣檢測(cè)結(jié)合霍夫變換的識(shí)別算法,有效提高了識(shí)別準(zhǔn)確率,且誤差小于2%。經(jīng)過軌道交通信號(hào)公司測(cè)試人員測(cè)試用例,最終得到指針式表計(jì)識(shí)別率為96%,最大讀數(shù)誤差小于4%,符合企業(yè)巡檢需求,并投入生產(chǎn)使用,具有較好的實(shí)際應(yīng)用價(jià)值。