龔 安,張 洋,唐永紅
(中國石油大學(xué)(華東),青島 266580)
在電力行業(yè)中,傳統(tǒng)電能表的示數(shù)信息采集大都采用人工抄表,但人工抄表工作繁瑣,效率較低,因此智能自動抄表系統(tǒng)的出現(xiàn)迎合了時代的需要.近年來,許多數(shù)字圖像處理方法已經(jīng)被應(yīng)用于電能表示數(shù)自動識別[1–5],一類是根據(jù)人工設(shè)計的特征進(jìn)行定位和識別的方法[1–4],如張宗健使用邊緣檢測方法定位計數(shù)器目標(biāo)區(qū)域,然后根據(jù)數(shù)字的筆畫和形狀特征進(jìn)行數(shù)字識別[1];貝澄潔使用圖像閾值處理方法定位計數(shù)器目標(biāo)區(qū)域,然后根據(jù)投影法和數(shù)字的筆畫特征進(jìn)行數(shù)字識別[2].另一類是基于深度學(xué)習(xí)自動提取特征的定位和識別方法[5],如Rayson Laroca等使用YOLOv2-Tiny[6]網(wǎng)絡(luò)定位計數(shù)器目標(biāo)區(qū)域,并進(jìn)行了CR-NET[7]、CRNN[8]等網(wǎng)絡(luò)在數(shù)字識別部分的對比實驗[5].基于人工設(shè)計的特征進(jìn)行目標(biāo)檢測存在檢測準(zhǔn)確率低、訓(xùn)練耗時長等缺點,而基于深度學(xué)習(xí)的目標(biāo)檢測能夠自動提取特征,有效提升檢測精度,因此目前基于深度學(xué)習(xí)的目標(biāo)檢測得到了廣泛應(yīng)用[9,10].
因為YOLO網(wǎng)絡(luò)檢測速度快、準(zhǔn)確率較高,所以為提升電能表示數(shù)識別的準(zhǔn)確率,本文提出一種基于YOLOv3網(wǎng)絡(luò)的電能表示數(shù)識別新方法.首先構(gòu)建基于YOLOv3-Tiny網(wǎng)絡(luò)的計數(shù)器定位模型定位計數(shù)器區(qū)域,然后構(gòu)建基于YOLOv3[11]網(wǎng)絡(luò)的計數(shù)器識別模型進(jìn)行數(shù)字識別,實驗結(jié)果表明本方法對電能表示數(shù)的識別具有更高的準(zhǔn)確率.
本章主要介紹了YOLO網(wǎng)絡(luò)檢測的基本流程、網(wǎng)絡(luò)訓(xùn)練過程和網(wǎng)絡(luò)的結(jié)構(gòu)單元.
基于YOLO網(wǎng)絡(luò)的檢測方法將特征提取、目標(biāo)定位、目標(biāo)分類統(tǒng)一于一個卷積網(wǎng)絡(luò)中,將物體檢測問題作為一個回歸問題來解決,將測試圖像輸入完成訓(xùn)練的網(wǎng)絡(luò)便能得到目標(biāo)物體的位置和其所屬的類別及其相應(yīng)的置信度.YOLO網(wǎng)絡(luò)檢測的基本流程如圖1所示.
圖1 YOLO網(wǎng)絡(luò)檢測流程
具體流程如下:
(1)分辨率初始化:將原始圖像的分辨率初始化為a×b,圖像的通道數(shù)為n.
(2)卷積網(wǎng)絡(luò)提取特征:將resize后的圖像數(shù)據(jù)輸入卷積網(wǎng)絡(luò),輸出一個S×S×[(5+N)×B]的特征圖,該特征圖將圖像劃分為S×S個網(wǎng)格單元,每個網(wǎng)格單元輸出B個預(yù)測框,每個預(yù)測框?qū)⑤敵?種信息,包括預(yù)測框的位置(x,y)、尺寸(w,h)、 置信度c以及預(yù)測不同類別的條件概率p1,···,pN,其中類別的數(shù)量為N.
預(yù)測框的置信度c用公式表示為:
其中,p(Object)表示應(yīng)的網(wǎng)格單元是否存在目標(biāo)(Object)的中心點,若存在,那么p(Object)=1,否則p(Object)=0;表示預(yù)測框和真實框面積的交并比;area(t)表示真實框的面積,area(p)表示預(yù)測框的面積.
(3)NMS處理刪除冗余框:NMS (Non-Maximum Suppression)即非極大值抑制算法,對于預(yù)測框組成的集合 A ,采用下面的計算方式:選擇具有最大置信度的預(yù)測框M,將其從A 集合中移除并加入到最終的檢測結(jié)果D中,將A 中剩余預(yù)測框中與M的IOU大于閾值Nt的框從 A中移除,重復(fù)這個過程,直到A 集合為空.使用NMS算法將特征圖1中的冗余框的置信度設(shè)置為0,生成特征圖2.
(4)計算預(yù)測類別:預(yù)測框?qū)τ诘趇類的置信度分?jǐn)?shù)si,用公式表示為:
其中,pi表 示當(dāng)前預(yù)測框?qū)?yīng)第i類的條件概率,c表示當(dāng)前預(yù)測框的置信度.
預(yù)測類別取si最大時對應(yīng)的類別i,預(yù)測框?qū)?yīng)的預(yù)測類別用公式表示為:
YOLO網(wǎng)絡(luò)的訓(xùn)練過程可分為4個步驟:
(1)由2.1節(jié)中得到特征圖2中每個網(wǎng)格單元每個預(yù)測框的x,y,w,h,c,p1,···,pN.
(2)根據(jù)損失函數(shù)計算誤差.
YOLO網(wǎng)絡(luò)的損失函數(shù)=預(yù)測框和真實框的坐標(biāo)尺寸誤差+預(yù)測框和真實框的置信度誤差+分類誤差[6,11,12].
圖2 網(wǎng)絡(luò)基本結(jié)構(gòu)單元
預(yù)測框與真實框的坐標(biāo)尺寸誤差loss1用公式表示為:
其中,λcoord表 示預(yù)測位置的系數(shù),該值設(shè)置為5;判斷第i個網(wǎng)格單元中第j個預(yù)測框是否負(fù)責(zé)目標(biāo)o bj,與目標(biāo)obj的真實框IOU最 大的預(yù)測框負(fù)責(zé)目標(biāo)o bj,若負(fù)責(zé)預(yù)測,那么該值為1,否則為0;(wi,yi),(wi,hi)表示預(yù)測框位置和尺寸;表示真實框位置和尺寸.
預(yù)測框和真實框的置信度誤差loss2用公式表示為:
其中,λnoobj表示網(wǎng)格內(nèi)沒有目標(biāo)時的系數(shù),該值設(shè)置為0.5;判斷第i個 網(wǎng)格單元中第j個預(yù)測框是否不負(fù)責(zé)目標(biāo) o bj,若不負(fù)責(zé),那么該值為1,否則為0;ci表示預(yù)測框置信度;表示真實框置信度.
類別條件概率誤差loss3用公式表示為:
其中pi(C)表示第i個網(wǎng)格單元預(yù)測C類的條件概率,(C)第i個網(wǎng)格單元是C類的真實概率.
(3)根據(jù)誤差計算卷積核中每個權(quán)重的梯度.
(4)應(yīng)用基于梯度的優(yōu)化算法更新權(quán)重.
(1)CBL層:指集合了卷積操作、BatchNormal[13]操作和LeakyReLU激活操作的網(wǎng)絡(luò)層.結(jié)構(gòu)如圖2(a)所示,Conv2d表示卷積操作,卷積核數(shù)量為a,大小為b×b,該操作使用權(quán)重組成卷積核在數(shù)字圖像上滑動,將圖像點上的像素灰度值與對應(yīng)的卷積核上的數(shù)值相乘,然后將相乘后的值相加作為卷積核中間像素對應(yīng)的圖像上像素的灰度值,具有稀疏交互、參數(shù)共享、等變表示等優(yōu)點.
BN表示批標(biāo)準(zhǔn)化操作,該操作將特征規(guī)整為均值為0、方差為1的正態(tài)分布.可以加快收斂速度,緩解訓(xùn)練過擬合問題,增強(qiáng)模型泛化能力.
LeakyReLU是激活函數(shù),公式如下:
其中,ai是(1,+∞)區(qū)間內(nèi)的固定參數(shù).
(2)最大池化層(Maxpool):用某一位置的相鄰矩形區(qū)域內(nèi)的最大值來代替網(wǎng)絡(luò)在該位置的輸出,該操作能提高計算速度和所提取特征的魯棒性.
(3)上采樣層(Upsample):通過雙線性插值方法實現(xiàn)上采樣操作.
(4)殘差層[14]:將淺層網(wǎng)絡(luò)特征和深層網(wǎng)絡(luò)特征融合,有效解決了深度網(wǎng)絡(luò)訓(xùn)練過程的退化問題,結(jié)構(gòu)如圖2(b)所示.
(5)CBL集合層:指集合了5個CBL層的集合.結(jié)構(gòu)如圖2(c)所示.
2.4.1 機(jī)制和性能
YOLOv3-Tiny網(wǎng)絡(luò)以Darknet-Tiny網(wǎng)絡(luò)為特征提取網(wǎng)絡(luò),使用Darknet-Tiny網(wǎng)絡(luò)前7個CBL層和6個池化層,設(shè)計了兩個不同尺度的特征圖輸出,并且通過上采樣將兩個不同分辨率的特征圖進(jìn)行了融合;通過聚類先驗框尺寸,對每個尺度的輸出給定3個先驗框.
YOLOv3網(wǎng)絡(luò)以DarkNet53網(wǎng)絡(luò)為特征提取網(wǎng)絡(luò),使用DarkNet53網(wǎng)絡(luò)前52個CBL層,存在有23個殘差層結(jié)構(gòu),設(shè)計了3個不同尺度的特征圖輸出,并且通過上采樣將3個不同分辨率的特征圖進(jìn)行了融合;通過聚類先驗框尺寸,對每個尺度的輸出給定3個先驗框.
在COCO圖像數(shù)據(jù)集的目標(biāo)檢測任務(wù)中,當(dāng)真實框和預(yù)測框的IOU閾值為0.5時,YOLOv3-Tiny網(wǎng)絡(luò)的mAP為33.1,FPS為220 f/s;YOLOv3網(wǎng)絡(luò)的mAP為55.3,FPS為35 f/s.
2.4.2 適用場景
根據(jù)YOLOv3-Tiny和YOLOv3網(wǎng)絡(luò)的結(jié)構(gòu)和在COCO數(shù)據(jù)集上的性能表現(xiàn),可以得出YOLOv3-Tiny速度較快,mAP較低,適用于圖像分辨率高,目標(biāo)種類少的簡單場景;YOLOv3速度較慢,mAP較高,適用于圖像分辨率低,目標(biāo)種類多的復(fù)雜場景.
為排除電能表圖像中無關(guān)信息的干擾,首先需要對計數(shù)器目標(biāo)定位,然后裁剪計數(shù)器目標(biāo)區(qū)域,最后進(jìn)行計數(shù)器數(shù)字識別.根據(jù)相關(guān)理論和電能表計數(shù)器圖像的特點,給出計數(shù)器定位和識別模型.
電能表圖像較大,且目標(biāo)區(qū)域單一,因此基于YOLOv3-Tiny網(wǎng)絡(luò)構(gòu)建計數(shù)器定位模型.為了提高定位的準(zhǔn)確率,測試時將預(yù)測框的尺寸擴(kuò)大為原來的1.1.倍.計數(shù)器圖像較小,目標(biāo)種類相對較多,因此基于YOLOv3網(wǎng)絡(luò)構(gòu)建計數(shù)器識別模型.為了避免同一個數(shù)字位置出現(xiàn)多個不同類別的預(yù)測框,測試時對NMS算法進(jìn)行改進(jìn),在NMS算法中添加規(guī)則:如果存在任意兩個預(yù)測框的IOU>0.6,那么將保留置信度最高的預(yù)測框,將其余預(yù)測框全部刪除.
計數(shù)器定位和識別的流程如圖3所示.
圖3 定位和識別的流程
針對電能表圖像寬高比特征,將輸入的分辨率初始化為416×416;網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示.
針對計數(shù)器圖像寬高比特征,將輸入的分辨率初始化為416×128;網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示.
綜上,計數(shù)器定位和識別的整體設(shè)計思路即使用基于YOLOv3-Tiny網(wǎng)絡(luò)的單目標(biāo)檢測方法實現(xiàn)計數(shù)器定位,使用基于YOLOv3網(wǎng)絡(luò)的多目標(biāo)檢測方法實現(xiàn)計數(shù)器識別.定位和識別模型的速度取決于輸入圖片的大小,網(wǎng)絡(luò)的參數(shù)數(shù)量和結(jié)構(gòu);準(zhǔn)確率取決于輸入圖片的質(zhì)量,網(wǎng)絡(luò)的訓(xùn)練是否充分等.
圖4 YOLOv3-Tiny網(wǎng)絡(luò)結(jié)構(gòu)
實驗的計算機(jī)配置和環(huán)境如下:CPU處理器為Intel(R)Core(TM)i7-6700K CPU @ 4.00 GHz×8;GPU處理器為NVIDIA GeForce GTX TITAN X;內(nèi)存(RAM)為16.00 GB;操作系統(tǒng)為64 bit Windows10專業(yè)版;編程語言為C++;集成開發(fā)環(huán)境為Visual Studio2017;網(wǎng)絡(luò)模型通過基于DarkNet的深度學(xué)習(xí)框架實現(xiàn).
計數(shù)器定位數(shù)據(jù):本文所用數(shù)據(jù)集共含有2000張圖片和對應(yīng)的標(biāo)簽文件,選取數(shù)據(jù)集中的800張電能表圖片作為訓(xùn)練集;從剩余1200張中選取100張圖片作為驗證集;從剩余的1100張中選取100張圖片作為測試集.
計數(shù)器識別數(shù)據(jù):將數(shù)據(jù)集中的原始圖片按計數(shù)器位置標(biāo)簽裁剪生成計數(shù)器圖片,選取裁剪生成800張計數(shù)器圖片作為訓(xùn)練集.從剩余1200張中選取400張計數(shù)器圖片作為驗證集.將剩余的800張計數(shù)器圖片作為測試集.
圖5 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
4.3.1 定位模型的的評價指標(biāo)評分S用公式表示為:
其中,S1表 示預(yù)測框和真實框的交并比的平均值,S2表示當(dāng)IOU閾值=0.5時每張圖像的定位計數(shù)器目標(biāo)的準(zhǔn)確率,N(True)表 示定位準(zhǔn)確的數(shù)量,N(Total)表示在總目標(biāo)數(shù)量,計數(shù)器檢測中的驗證集和測試集中的N(Total)均為100,評分S用于選擇最優(yōu)權(quán)重.
4.3.2 識別模型的評價指標(biāo)
單個數(shù)字識別的準(zhǔn)確率公式如下:
其中,N1(True)表 示預(yù)測識別的數(shù)字?jǐn)?shù)量,N1(Total)表示總數(shù)字?jǐn)?shù)量,驗證集的N1(Total)=400×5=2000,測試集的N1(Total)=800×5=4000.
整個計數(shù)器識別的準(zhǔn)確率公式如下:
其中,N2(True)表 示正確識別的計數(shù)器數(shù)量,N2(Total)表示計數(shù)器的數(shù)量,驗證集的N2(Total)=400,測試集的N2(Total)=800.
4.4.1 定位模型的實驗過程
(1)配置訓(xùn)練參數(shù):圖像尺寸初始化為416×416×3;采用隨機(jī)梯度下降法(SGD),每次迭代使用1個樣本對參數(shù)進(jìn)行更新;優(yōu)化方案采用動量法,參數(shù)值=0.9;權(quán)重衰減正則項值=0.0005;學(xué)習(xí)率=0.001;迭代次數(shù)共50 000次;網(wǎng)絡(luò)需要識別的物體種類數(shù)為1,因此最后一層卷積核數(shù)量n=(1+5)×3=18;開啟多尺度訓(xùn)練,每經(jīng)10批次訓(xùn)練強(qiáng)制改變輸入圖像大小進(jìn)行訓(xùn)練;使用K-means聚類方法對訓(xùn)練集真實框的尺寸聚類獲得先驗框尺寸,配置先驗框尺寸參數(shù).
(2)訓(xùn)練網(wǎng)絡(luò):根據(jù)2.2節(jié)的訓(xùn)練過程訓(xùn)練網(wǎng)絡(luò),每迭代1000次保存權(quán)重文件.
(3)驗證網(wǎng)絡(luò):設(shè)置IOU閾值=0.5,計算不同權(quán)重文件對驗證集驗證的評分S,選取最優(yōu)權(quán)重W.
(4)測試網(wǎng)絡(luò):選擇驗證步驟所得的最優(yōu)權(quán)重W對測試集進(jìn)行測試,獲取電能表圖像中計數(shù)器的位置
4.4.2 識別模型的實驗過程
(1)配置訓(xùn)練參數(shù):圖像尺寸初始化為416×128×3;采用小批量梯度下降法(MBGD),其中batch=64,sub=4,每次迭代使用64個樣本對參數(shù)進(jìn)行更新;優(yōu)化方案采用動量法,參數(shù)值=0.9;權(quán)重衰減正則項值=0.0005;學(xué)習(xí)率=0.001;迭代次數(shù)共20 000次;網(wǎng)絡(luò)需要識別的物體種類數(shù)為10,因此最后一層卷積核數(shù)量n=(10+5)×3=45;使用K-means聚類方法對訓(xùn)練集真實框的尺寸聚類獲得先驗框尺寸,配置先驗框尺寸參數(shù).
(2)訓(xùn)練網(wǎng)絡(luò):根據(jù)2.2節(jié)的訓(xùn)練過程訓(xùn)練網(wǎng)絡(luò),每迭代1000次保存權(quán)重文件.
(3)驗證網(wǎng)絡(luò):設(shè)置IOU閾值=0.6,計算不同權(quán)重文件對驗證集驗證所得的單個數(shù)字識別準(zhǔn)確率F1和整個計數(shù)器示數(shù)識別準(zhǔn)確率F2,用于選擇最優(yōu)權(quán)重W.
(4)測試網(wǎng)絡(luò):選擇驗證步驟所得的最優(yōu)權(quán)重W對測試集進(jìn)行測試,獲取計數(shù)器圖像中的示數(shù)[a1,a2,a3,a4,a5] 以及每個數(shù)字ai的位置 [xi,yi,wi,hi].
4.5.1 計數(shù)器定位的實驗結(jié)果
將基于 YOLOv3-Tiny 網(wǎng)絡(luò)的定位模型與基于 YOLOv2-Tiny網(wǎng)絡(luò)的定位模型進(jìn)行對比實驗.
(1)驗證結(jié)果:選取不同迭代次數(shù)對應(yīng)的權(quán)重文件,對驗證集進(jìn)行驗證的結(jié)果如圖6所示.
圖6 YOLOv2-Tiny與YOLOv3-Tiny驗證集對比結(jié)果
(2)測試結(jié)果:根據(jù)驗證集結(jié)果,YOLOv3-Tiny和YOLOv2-Tiny網(wǎng)絡(luò)均在迭代次數(shù)48 000處對應(yīng)權(quán)重驗證評分較高,因此分別選擇迭代次數(shù)48 000對應(yīng)的權(quán)重進(jìn)行測試,對測試集進(jìn)行測試的結(jié)果如表1所示.
由表1可得,相比YOLOv2-Tiny網(wǎng)絡(luò),基于YOLOv3-Tiny網(wǎng)絡(luò)的計數(shù)器定位模型的精度更高,當(dāng)IOU閾值為0.5時,預(yù)測準(zhǔn)確率達(dá)到95%.將預(yù)測框的尺寸擴(kuò)大為原來的1.1倍,定位準(zhǔn)確率達(dá)到100%.
4.5.2 計數(shù)器識別的實驗結(jié)果
YOLO網(wǎng)絡(luò)存在許多變體,其中較為成功的是CR-NET (Character Recognition NETwork)字符識別網(wǎng)絡(luò),該網(wǎng)絡(luò)將YOLOv2-Tiny網(wǎng)絡(luò)中的部分池化層改為卷積層,結(jié)構(gòu)簡單,參數(shù)量少,本文將基于YOLOv3網(wǎng)絡(luò)的識別模型與基于CR-NET網(wǎng)絡(luò)的識別模型進(jìn)行對比實驗.
表1 YOLOv2-Tiny與YOLOv3-Tiny測試集對比結(jié)果
(1)驗證結(jié)果:選取不同迭代次數(shù)對應(yīng)的權(quán)重文件,對驗證集進(jìn)行驗證的結(jié)果如圖7、圖8所示.
圖7 對單個數(shù)字識別的準(zhǔn)確率驗證集對比結(jié)果
圖8 對整個計數(shù)器示數(shù)識別準(zhǔn)確率驗證集對比結(jié)果
(2)測試結(jié)果:根據(jù)驗證集結(jié)果,CR-NET、YOLOv3網(wǎng)絡(luò)分別在迭代次數(shù)15 000、9000時對應(yīng)的權(quán)重驗證準(zhǔn)確率較高,因此選擇上述兩個權(quán)重進(jìn)行測試,IOU閾值設(shè)置為0.6,對測試集進(jìn)行測試的結(jié)果如表2所示.由表2可得,修改識別模型的NMS算法后提高了計數(shù)器整體識別的準(zhǔn)確率;基于YOLOv3網(wǎng)絡(luò)的計數(shù)器識別模型的準(zhǔn)確率達(dá)到92.13%,相比CR-NET網(wǎng)絡(luò),準(zhǔn)確率提升2.63%.
表2 兩個網(wǎng)絡(luò)的測試集對比結(jié)果
定位效果展示如圖9所示.
圖9 計數(shù)器定位圖片展示
(1)正確識別的示例如圖10所示.
圖10 正確識別圖片
(2)錯誤識別的示例如圖11所示.主要原因包括:像素點缺失,電表處于跳轉(zhuǎn)狀態(tài),圖片模糊等.
圖11 錯誤識別圖片
本文為提高電能表自動識別準(zhǔn)確率,構(gòu)建了基于YOLOv3-Tiny網(wǎng)絡(luò)的計數(shù)器定位模型和基于YOLOv3網(wǎng)絡(luò)的計數(shù)器識別模型.實驗表明基于YOLO網(wǎng)絡(luò)的模型對數(shù)字式電表的自動識別適用性較高,后續(xù)將研究基于YOLO網(wǎng)絡(luò)的模型對指針式電表示數(shù)識別的問題.