衛(wèi)良潤,楊柳林
(廣西大學(xué) 電氣工程學(xué)院,廣西 南寧 530004)
隨著中國電網(wǎng)的不斷擴(kuò)建與更新,變電站中電力設(shè)備的種類和數(shù)量越來越多,電力設(shè)備銘牌記錄了該設(shè)備以及臺(tái)賬的主要信息內(nèi)容,包括制造商名稱和基本電氣參數(shù)等[1]。根據(jù)供電局生產(chǎn)部門的需求,對電力設(shè)備銘牌信息進(jìn)行采集,可以有效解決項(xiàng)目資料收集校準(zhǔn)、智能運(yùn)維等需求。而現(xiàn)階段的采集方法(人工、智能)都不同程度地存在效率不高、精度不夠等問題。對變電設(shè)備銘牌通常使用硬件設(shè)備采集得到大量的圖片,因此本文擬將智能的圖像文本提取技術(shù)應(yīng)用于銘牌信息提取任務(wù),將該技術(shù)應(yīng)用到數(shù)據(jù)采集的設(shè)備中,以改善變電設(shè)備數(shù)據(jù)收集效率低的現(xiàn)狀,提高電力系統(tǒng)數(shù)據(jù)管理水平。
變電設(shè)備銘牌文本提取任務(wù)源于自然場景文本提取,通常分為文本檢測和文本識(shí)別兩個(gè)階段進(jìn)行。文本檢測定位提取出圖像中是文本的區(qū)域;文本識(shí)別則是將文本區(qū)域中含有的文本信息“翻譯”成字符輸出。將文本檢測和文本識(shí)別任務(wù)獨(dú)立進(jìn)行的方法稱之為兩階段方法,而合并在一起同時(shí)運(yùn)作的方法稱之為端到端的方法。
傳統(tǒng)方法中常使用邊緣檢測[2]、連通域計(jì)算[3]、預(yù)設(shè)模板[4]實(shí)現(xiàn)銘牌文本檢測任務(wù),對于文本識(shí)別任務(wù)常用基于字符分割[5-6]的識(shí)別方法。文獻(xiàn)[2]提出一種基于“霍夫變換”的圖形角度糾正預(yù)處理方法,以提高后續(xù)任務(wù)準(zhǔn)確率。文獻(xiàn)[3]使用Retinex 算法提高圖像質(zhì)量,利用MSER 和Graham 算法進(jìn)行文本位置定位。文獻(xiàn)[4]提出一種基于模板的電氣銘牌識(shí)別方法。文獻(xiàn)[5]提出一種I_CNN 的單字符識(shí)別方法。文獻(xiàn)[6]提出一種傳統(tǒng)的字符分割的文本識(shí)別方法??傮w來說,傳統(tǒng)方法僅適用于理想化、固定且相對簡單的場景,在稍微復(fù)雜的場景中魯棒性較差。
文獻(xiàn)[7-8,11,13]以YOLOv3 算法為基礎(chǔ)框架實(shí)現(xiàn)文本檢測任務(wù)。文獻(xiàn)[9,12,15]改進(jìn)CTPN 算法提高了在傾斜文本上的檢測效果。文獻(xiàn)[10,19]在文本檢測任務(wù)中使用EAST 方法改進(jìn)非極大抑制后處理方法,提高了長文本檢測效果。文獻(xiàn)[14]提出基于MobileNet v3 骨架搭建移動(dòng)端文本檢測算法,構(gòu)建了一套發(fā)動(dòng)機(jī)銘牌數(shù)據(jù)集,該數(shù)據(jù)集并未公開。文獻(xiàn)[18]提出一種端到端的文本提取方法—TDRN,文本檢測分支使用CTPN 網(wǎng)絡(luò),文本識(shí)別分支引入BLSTM和注意力機(jī)制。
上述深度學(xué)習(xí)方法中,多數(shù)文本檢測使用CTPN,少數(shù)使用EAST,但存在長文本檢測不全、傾斜文本檢測效果不佳、對圖片背景要求簡單等問題。以往文本提取研究使用的是兩階段方法,不如端到端方法簡潔,還有訓(xùn)練流程復(fù)雜、文本提取時(shí)間長等缺點(diǎn)。此外,目前缺少可靠的電氣設(shè)備銘牌公開數(shù)據(jù)集。針對上述問題,本文提出了一種端到端的圖像文本提取算法,使用RoIRotate 模塊將文本檢測和文本識(shí)別合并為一個(gè)任務(wù)。
傳統(tǒng)的文本檢測和識(shí)別方法以及一些深度學(xué)習(xí)的文本提取方法包含多個(gè)獨(dú)立步驟,處理過程復(fù)雜且耗時(shí)。這些方法中因文本檢測和識(shí)別過程是分開進(jìn)行的,訓(xùn)練過程無法相互監(jiān)督,也會(huì)導(dǎo)致偏差積累。本文基于FOTS 算法[20]提出一個(gè)端到端的單階段變電設(shè)備銘牌文本提取方法。本文方法創(chuàng)新性地將文本檢測和文本識(shí)別任務(wù)合并為單個(gè)任務(wù),同時(shí)也避免了多階段方法訓(xùn)練步驟繁瑣的問題。文中算法主要分為四個(gè)部分:共享特征提取模塊、文本檢測分支、RoIRotate 操作和文本識(shí)別分支。方法的總體架構(gòu)如圖1 所示。首先對銘牌圖像進(jìn)行特征提取,利用該特征進(jìn)行文本位置定位;再通過RoIRotate 操作將圖像中定位得到的文本區(qū)域特征轉(zhuǎn)換為文本識(shí)別分支所需輸入格式,文本識(shí)別分支輸出最終銘牌文本信息。
圖1 文本提取方法整體框架
為確保電力設(shè)備銘牌圖像中的文本檢測和文本識(shí)別準(zhǔn)確性,需要提取足夠的深層語義信息和淺層表征信息。為此,使用了ResNet-50 作為共享特征提取模塊,其多層殘差設(shè)計(jì)和U 型網(wǎng)絡(luò)結(jié)構(gòu)借鑒了特征金字塔(FPN)的設(shè)計(jì),能夠提取多尺度的圖像特征,并避免了梯度爆炸的問題。最終得到的特征尺度分別是原圖尺寸下采樣4 倍、8 倍、16 倍和32 倍。
特征提取模塊的輸出數(shù)據(jù)通過1×1 卷積層進(jìn)行逐像素預(yù)測文本位置,輸出六個(gè)通道數(shù)據(jù),其中第一個(gè)通道為文本概率分類,剩下四個(gè)通道預(yù)測每個(gè)正樣本像素的文本邊框距離,第六個(gè)通道預(yù)測文本邊框的傾斜角度。使用位置感知非最大抑制(LNMS)操作去除重復(fù)文本框,最終得到文本概率和位置信息。
居民在人生的不同階段對于理財(cái)?shù)囊缶哂泻艽蟛町?,不同的人群風(fēng)險(xiǎn)偏好也有所不同,所以投資者需要的理財(cái)產(chǎn)品存在較大的差異,但是我國目前的理財(cái)產(chǎn)品卻存在較大的同質(zhì)性問題。要想開發(fā)更為廣闊的市場為更多的投資者服務(wù),就應(yīng)當(dāng)促進(jìn)理財(cái)產(chǎn)品的創(chuàng)新,吸引不同的投資者。在理財(cái)產(chǎn)品創(chuàng)新方面,應(yīng)當(dāng)根據(jù)不同的風(fēng)險(xiǎn)偏好、不同的個(gè)人財(cái)務(wù)狀況、不同的生命周期,對客戶需求進(jìn)行多種產(chǎn)品設(shè)計(jì)。
文本識(shí)別分支需要將橫向序列特征作為輸入,但變電設(shè)備銘牌圖片中的文本通常是不定向、矩形的,而檢測分支輸出的文本框也是如此。為此,使用RoIRotate 操作將檢測分支輸出的尺寸不固定且方向不定的文本區(qū)域轉(zhuǎn)換為高度固定、水平展開的特征區(qū)域,同時(shí)具有旋轉(zhuǎn)不變性,保留了文本區(qū)域原有的細(xì)節(jié)特征。該過程包括兩個(gè)主要步驟:提取仿射變換參數(shù)和通過雙線性插值對每個(gè)區(qū)域進(jìn)行仿射變換。
通過RoIRotate 操作轉(zhuǎn)換檢測分支預(yù)測的文本區(qū)域,使用文本識(shí)別分支提取共享特征信息進(jìn)行文本序列預(yù)測。文本識(shí)別分支包括VGG-like 序列卷積、僅沿高度軸縮放的池化、雙向LSTM、全連接層和CTC 解碼器,如圖2 所示。利用CNN 和LSTM 對序列信息進(jìn)行編碼,然后使用CTC 解碼器預(yù)測區(qū)域信息。
圖2 基于CRNN 結(jié)構(gòu)的文本識(shí)別分支
本文方法總訓(xùn)練損失為:
式中:LD為檢測分支的損失;LR為識(shí)別分支的損失;λ為平衡參數(shù),在預(yù)訓(xùn)練階段λ被設(shè)置為0.01,在微調(diào)階段λ被設(shè)置為0.1。
文本檢測分支損失函數(shù)表示為:
式中:Lcls為分類損耗,使用Dice 損失函數(shù)計(jì)算;λd為平衡參數(shù),在實(shí)驗(yàn)過程中設(shè)置為1;|·|為內(nèi)部像素個(gè)數(shù);和G*分別表示網(wǎng)絡(luò)的預(yù)測矩陣和文本標(biāo)簽值矩陣;為兩個(gè)矩陣之間重疊的像素個(gè)數(shù);LRT為矩形框損失,通過交并比IoU 損耗進(jìn)行計(jì)算;為預(yù)測的文本矩形框面積;Q*為標(biāo)簽框面積;Lα為旋轉(zhuǎn)角度損失;λg為平衡參數(shù),在實(shí)驗(yàn)過程中設(shè)置為20;α*為標(biāo)簽框的角度;為預(yù)測文本矩形的角度。
識(shí)別分支損失LR通過CTC loss 進(jìn)行計(jì)算,公式為:
式中:LR為識(shí)別損失函數(shù),由p(y*|x)的負(fù)對數(shù)似然函數(shù)構(gòu)成;N為文本預(yù)測區(qū)域的個(gè)數(shù);x為標(biāo)簽序列;y*為目標(biāo)標(biāo)簽序列;p(y*|x)為預(yù)測標(biāo)簽序列x為y*的條件概率。
本文針對變電設(shè)備銘牌的特點(diǎn),在訓(xùn)練的不同階段選擇了對應(yīng)的訓(xùn)練數(shù)據(jù)集。
360 萬中文數(shù)據(jù)集:包含5 990 個(gè)字符,使用新聞和文學(xué)文本生成364 407 張280×32 的隨機(jī)圖像。本文將字符庫數(shù)量擴(kuò)展到6 007 個(gè),旨在預(yù)訓(xùn)練文本識(shí)別模型,示例如圖3(a)所示。
圖3 訓(xùn)練數(shù)據(jù)集
ICDAR2017-RCTW-17[21]:ICDAR 是國際文本識(shí)別和識(shí)字競賽的簡稱。RCTW-17 是一個(gè)真實(shí)世界中文文本檢測和識(shí)別數(shù)據(jù)集,包含1.2 萬張帶有中文文本的圖像,涵蓋手寫、印刷、混合和變形文本,訓(xùn)練集8 034 張,測試集4 229 張。該數(shù)據(jù)集用于端到端的預(yù)訓(xùn)練模型,示例如圖3(b)所示。
合成銘牌數(shù)據(jù)集(SN):主要分為文字和背景兩個(gè)部分。文字部分采集電力銘牌上的真實(shí)標(biāo)簽構(gòu)成基礎(chǔ)語料庫,并進(jìn)行隨機(jī)組合擴(kuò)充,再進(jìn)行字體、大小隨機(jī)變化。隨機(jī)位置寫入背景圖像后,對合并后文本進(jìn)行噪音、模糊、透視、拉伸等隨機(jī)變化,共合成104 890張圖像。該數(shù)據(jù)集為端到端標(biāo)注,標(biāo)簽文件同時(shí)包含了文本坐標(biāo)和文本內(nèi)容。該數(shù)據(jù)集被用于端到端的預(yù)訓(xùn)練模型,示例如圖3(c)所示。
真實(shí)變電設(shè)備銘牌數(shù)據(jù)集(RSEN):包括786 張圖像,標(biāo)注格式與合成數(shù)據(jù)集相同;為避免過擬合,進(jìn)行了隨機(jī)圖像處理(噪聲、模糊、色調(diào)、旋轉(zhuǎn)、裁剪),并得到15 720張圖像。數(shù)據(jù)集按9 ∶1 分為訓(xùn)練集和測試集。該數(shù)據(jù)集被用于模型端到端的微調(diào)訓(xùn)練,示例如圖3(d)所示。
4.1.1 數(shù)據(jù)預(yù)處理
為了提高模型魯棒性,需要對電力設(shè)備銘牌圖像進(jìn)行預(yù)處理,這包括讀取標(biāo)簽和圖像數(shù)據(jù)、隨機(jī)增強(qiáng)(添加噪聲、模糊和顏色調(diào)整)以及隨機(jī)縮放、旋轉(zhuǎn)和裁剪等技術(shù)。具體而言,將原始銘牌圖像按比例(0.8、0.85、0.9、0.95、1.0、1.1、1.2)隨機(jī)縮放并旋轉(zhuǎn),最后裁剪尺寸為512×512,并縮放到所需大小。
4.1.2 訓(xùn)練細(xì)節(jié)
首先在360 萬中文數(shù)據(jù)集上預(yù)訓(xùn)練5 個(gè)epoch 的模型,再使用RCTW-17 中文場景數(shù)據(jù)集進(jìn)行7 個(gè)epoch 的端到端訓(xùn)練,然后使用合成銘牌數(shù)據(jù)集進(jìn)行5 個(gè)epoch 的最后預(yù)訓(xùn)練得到最終的預(yù)訓(xùn)練模型,最后在真實(shí)變電設(shè)備銘牌數(shù)據(jù)集上進(jìn)行微調(diào)直至收斂。訓(xùn)練過程中忽略一些模糊的文本區(qū)域和非重要的文本區(qū)域,將其標(biāo)記為“DO NOT CARE”,避免影響參數(shù)訓(xùn)練。預(yù)訓(xùn)練過程中360 萬中文數(shù)據(jù)集僅訓(xùn)練識(shí)別分支,而其余數(shù)據(jù)集訓(xùn)練過程中同時(shí)訓(xùn)練檢測和識(shí)別分支,即端到端訓(xùn)練。
本文預(yù)訓(xùn)練和微調(diào)階段實(shí)驗(yàn)的訓(xùn)練平臺(tái)操作系統(tǒng)為Ubuntu 20.04 LTS,采用Tensorflow 1.15.1版本的深度學(xué)習(xí)框架,CPU 為Intel(R) Xeon(R) Gold 6330 CPU @ 2.00 GHz,GPU 為NVIDIA GeForce RTX 3090。在該模型的訓(xùn)練過程中,使用Adam 優(yōu)化器進(jìn)行損失優(yōu)化,初始學(xué)習(xí)率設(shè)置為0.001,迭代中學(xué)習(xí)率呈指數(shù)下降,衰減指數(shù)設(shè)置為0.997。
4.2.1 評估指標(biāo)
在實(shí)驗(yàn)之前,需要引入一些指標(biāo)。檢測精度和查全率是衡量文本檢測算法性能的兩個(gè)標(biāo)準(zhǔn)指標(biāo),分別表示為:
式中:Precision 為檢測精度;Recall 為查全率;G為圖中實(shí)際有多少文本目標(biāo);P為模型檢測出多少文本目標(biāo);T為正確檢測的文本目標(biāo)個(gè)數(shù)。
此外,通過F-measure 評價(jià)檢測精度和查全率的貢獻(xiàn),F(xiàn)-measure 是這兩個(gè)指標(biāo)的總和平均值,表示為:
在文本識(shí)別任務(wù)中,評價(jià)對象為:整個(gè)圖片上所有被正確檢測到的文本區(qū)域。如果一個(gè)文本區(qū)域中的所有文本都被正確識(shí)別,則記錄陽性樣本;否則,記錄陰性樣品。指標(biāo)為
式中:R-Precision 為識(shí)別精度;K為陽性樣本總數(shù);F為陰性樣本總數(shù)。
4.2.2 實(shí)驗(yàn)分析
針對真實(shí)變電設(shè)備銘牌數(shù)據(jù)集的測試集中的測試結(jié)果表明,本文端到端的方法在變電設(shè)備銘牌的場景文本提取中性能獲得明顯提升。識(shí)別結(jié)果見表1 所列。
表1 真實(shí)銘牌數(shù)據(jù)集上不同方法的測試效果
本文端到端方法將文本檢測和文本識(shí)別合并為一個(gè)任務(wù),相比取消RoIRotate 操作的兩階段方法,F(xiàn)-measure 值提高了0.059 2,文本識(shí)別準(zhǔn)確率提高了1.09個(gè)百分點(diǎn)。文獻(xiàn)[10]的方法本質(zhì)上與兩階段方法相同,僅改進(jìn)了非極大抑制模塊,提高了長文本的檢測精度。與文獻(xiàn)[7]的方法相比,本文端到端方法的檢測精度更高,且聯(lián)合訓(xùn)練的文本識(shí)別分支的識(shí)別精度也更高。原因在于本文方法檢測文本更加精確,且使用多重中文場景預(yù)訓(xùn)練方案和大量真實(shí)銘牌數(shù)據(jù)進(jìn)行微調(diào),提高了模型魯棒性。
圖4 展示了本文方法的文本檢測結(jié)果,表2 展示了部分文本識(shí)別的結(jié)果??梢钥闯觯疚姆椒ú粌H檢測到了圖中絕大部分的關(guān)鍵文本信息,檢測文本區(qū)域包含短文本、長文本和傾斜文本,保證了檢測結(jié)果的精度,也使文本具有語義連續(xù)性。表2 中的識(shí)別結(jié)果,不僅包含中文、英文和特殊符號,還包含了設(shè)備臺(tái)賬所需的型號、電壓等級、設(shè)備容量、生產(chǎn)日期等關(guān)鍵信息。
表2 銘牌文本識(shí)別結(jié)果
圖4 文本檢測結(jié)果
本文設(shè)計(jì)了一種應(yīng)用于變電站巡檢設(shè)備的端到端的變電設(shè)備銘牌文本提取方法,將文本檢測和文本識(shí)別合并為一個(gè)單階段任務(wù),提高了訓(xùn)練效率和文本提取精度。本文通過使用合成銘牌數(shù)據(jù)集和真實(shí)變電設(shè)備銘牌數(shù)據(jù)集,設(shè)計(jì)了一套中文場景訓(xùn)練流程方案,為該領(lǐng)域提供了訓(xùn)練數(shù)據(jù)和對比參數(shù)。未來的研究將繼續(xù)擴(kuò)展數(shù)據(jù)集,增加鋼印文本標(biāo)注數(shù)據(jù),并改進(jìn)骨架網(wǎng)絡(luò)以縮減模型規(guī)模。