林紹福,李松靜,劉希亮+
(1.北京工業大學 信息學部軟件學院,北京 100124;2.北京工業大學 信息學部北京智慧城市研究院,北京 100124)
柱面電線桿標識牌由于圖像邊緣兩側存在不同程度的信息壓縮在直接進行標識牌字符識別時多出現邊緣部分漏檢、標識牌信息識別錯誤等問題。當前基于深度學習廣泛實用的圖像字符識別模型對算力和運行環境要求較高,難以滿足手持端和移動設備的加載,且模型應用在電線桿標識牌字符識別上,識別精度還較低,與實際應用差距較大。本文以柱面圖像矯正處理和模型輕量化改進為目標,基于深度學習構建適用于柱面電線桿標識牌識別的圖像文本檢測和字符識別模型。
針對柱面類型標識牌字符識別,當前研究主要集中在兩個方面:一是柱狀圖像矯正處理,二是圖像文本檢測識別。在柱面圖像矯正處理方面,曹陽[1]提出了一種曲面目標表面文本檢測與識別方法;Gao等[2]利用FCN-CRNN模型進行隧道缺陷檢測,引入柱面反投影變換降低了隧道缺陷的誤檢率。在圖像文本檢測識別方面,經典的目標檢測算法如Faster-RCNN[3]、FPN[4]和YOLO[5,6]等通過區域建議網絡、候選區域生成算法生成多個候選框,從其中選擇文本實例,Zhou等提出了端到端的文本檢測算法EAST[7],Deng等提出了一種基于實例分割的場景文本檢測算法Pi-xelLink[8],Wang等提出了一種對文本實例實現多級預測的漸進式尺度擴張網絡PSENet[9],Liao等提出了一種可微分二值化分割方法DBNet[10]。
字符識別算法主要有基于CTC的CRNN[11]方法和基于注意力機制(Attention)的CRNN[12]方法。
上述研究雖然在車牌識別、票據識別[13,14]等方面取得一定進展,但當前模型的卷積神經網絡計算耗時、效率低下,難以滿足實時、高效、快速計算的要求。為解決上述問題,本文首先對柱面電線桿標識牌在水平與垂直方向進行反投影矯正展平,其次針對手持端、邊緣設備快速高效檢測的需求,提出了一種輕量級可微二值化分割網絡的柱面電線桿標識字符序列識別算法Tiny-DBNet-CRNN,以期為柱面電線桿標識牌高效識別提供切實可行的解決方案。
柱面反投影是將柱面表面的某個特定的觀察區域投影到柱面的切平面上的過程。圓柱面投影的空間幾何圖如圖1所示,展示了柱面與其切平面的投影關系。

圖1 柱面-平面投影關系
柱面與其切平面在水平方向的投影關系幾何圖如圖2所示,柱面圖像寬為W,用下圖中弧線寬度表示,投影后平面圖像寬為W′,用下圖中投影直線表示,當柱面圖像向平面投影后,圖像寬度變大。以圓柱模型的中心點O為原點在水平方向和垂直方向建模,圓柱模型半徑為f,視場角為α,現平面圖像上任意一點P(x,y) 投影到柱面空間坐標為P′(x′,y′), 在柱面上對應的投影角度為θ,圓柱面與切平面相交于點N。

圖2 水平方向投影關系
為后續計算方便,在進行坐標計算時將坐標系轉換為圖像原始像素坐標系,以圖像左上角為原點,水平向右為x軸方向,垂直向下為y軸方向,水平方向的投影公式為
tanθ=x-W2f
(1)
W′=2·f×sinα2=2·f×sin(arctanW2f)
(2)
由式(1)和式(2)得投影后的柱面水平坐標
x′=f×sinθ+W′2
(3)
柱面與其切平面在垂直方向上的投影關系如圖3所示,設平面圖像高為H,投影到柱面空間圖像高度為H′。根據三角形相似關系,得到垂直方向的投影公式為

圖3 垂直方向投影關系
cosθ=y′-H′2y-H2
(4)
fcosθ=(x-W2)2+f2
(5)
由式(4)、式(5)得垂直方向上投影坐標為
y′=f·(y-H2)(x-W2)2+f2+H2
(6)
上述式(1)~式(3)、式(4)~式(6)分別表示了柱面-平面投影關系在水平和垂直方向的投影變換。根據上述坐標變換公式遍歷圖像中每個像素點坐標,空間投影后的平面圖像水平方向寬度會明顯增加,從而出現像素的缺損,對于在柱面圖像中無法找到對應的像素點的坐標,采用雙線性插值對缺損的圖像進行插值補全。以確定像素坐標點為中心,建立步長為1的正方形,運用相鄰的4個點在水平和垂直方向分別做一次線性插值,實現柱面圖像的矯正展平處理。
本文柱面矯正展平方法按照柱面-平面投影原理和三角形三角關系推導出計算公式,參數合理,將柱面圖像轉化為平面圖像的投影計算較為精準。像素點投影后利用雙線性插值補全缺失值,將柱面圖像展平為像素質量較好的平面圖像,為下一步標牌圖像文字檢測識別打下良好的基礎。
模型首先基于深度可分離卷積殘差塊和注意力機制構建輕量級特征提取單元,搭建特征提取網絡,對輸入圖像進行特征提取;然后將特征提取后生成的特征矩陣輸入到基于分割的可微二值化文本檢測網絡DBNet,對每一像素點屬于文本區域和非文本區域進行自適應的二值化處理,通過像素聚合的后處理方式將屬于同一文本的像素點聚合在一起得到檢測的文本實例邊界框;最后采用基于CRNN字符識別網絡對檢測結果進行端對端識別驗證。
2.1.1 輕量級特征提取單元
輕量級特征提取單元用于提取輸入圖像的重要特征,為后續網絡層提供信息輸入。特征提取單元結構圖如圖4所示,包含深度可分離卷積殘差塊和注意力機制兩部分。在卷積神經網絡中,網絡深度的加深導致了網絡退化、梯度爆炸等問題,隨著網絡層數增加,卷積計算的參數量和計算量也不斷增大。為解決這類問題本文采用深度可分離卷積代替傳統卷積并在卷積計算之間加入殘差連接,構建了深度可分離卷積殘差塊。輸入電線桿標識牌圖像先進行1x1的卷積升維,將更多地圖像信息傳遞到下一步的深度可分離卷積,由于深度可分離卷積的計算優勢,既保證了較多圖像維度的卷積計算,又避免了大量的參數運算過程,最后將卷積后的結果采用1×1卷積降到與輸入相同維度,以便輸入與輸出連接防止訓練過擬合。注意力機制添加在深度可分離計算后的一個分支,生成權重矩陣作用于卷積計算后的矩陣,對圖像特征進行重要程度標記,輸出一個特征提取單元計算后的特征矩陣。

圖4 特征提取單元結構
傳統卷積和深度可分離卷積的卷積過程分別如圖5(a)、圖5(b)所示。深度可分離卷積作為一種可分解的卷積結構,由一個深度卷積和一個點卷積代替傳統卷積。深度卷積用于圖像空間濾波,不同的是它的卷積核通道數為1,卷積核個數等于輸入特征矩陣通道數,收集每個通道的空間特征;點卷積對上一步輸出做1×1的普通卷積,收集每個點的信息。

圖5 普通卷積與深度可分離卷積的卷積過程
假設輸入的特征圖大小為DK×DK,卷積核大小為DK,輸入、輸出特征矩陣深度分別為M、N,使用深度可分離卷積和普通卷積的參數量比值為
DK·DK·M·DF·DF+M·N·DF·DFDF·DF·M·N·DK·DK=1N+1DK2
(7)
如果設定卷積核大小為3×3,采用深度可分離的卷積的計算量將比普通卷積減少約9倍,從而大大降低模型的參數量和計算量。
在神經網絡可以收斂的前提下,隨著網絡層數增加,網絡的表現先是逐漸增加至飽和然后迅速下降[15]。當無法確定加深的當前層是否為最優的網絡時,加入帶有恒等連接的殘差結構,使網絡保持最優收斂情況。
2.1.2 注意力機制
電線桿標識牌的文字與背景在顏色和特征上有明顯區別,引入注意力機制在通道維度上對原始特征進行重新標定,通過學習獲取每個通道的重要程度,然后依照這一結果提升有用的特征并抑制對當前任務用處不大的特征,允許網絡根據特征權重重新排列,這樣加強了電線桿標識牌圖像中文字的特征信息,從而提升字符識別的正確率。如上圖4所示,注意力機制模塊連接在2.1.1殘差塊的深度可分離卷積后,具體操作步驟為:
(1)全局平均池化操作。X為殘差塊中深度可分離卷積輸出特征矩陣,大小為W×H×C,矩陣元素U(i,j), 在X的各個通道維度進行特征壓縮為一個實數,使其具有全局感受野。Z表示全局平均池化操作后的矩陣,第c個通道的平均池化操作公式為
Zc=1W×H∑Wi=1∑Hj=1Uc(i,j)
(8)
(2)生成每個通道的權重矩陣S。對矩陣Z進行全連接操作獲取每個通道的權重矩陣,其中操作包括:參數矩陣為W1的全連接層1、Relu激活函數、參數矩陣為W2的全連接層2、sigmoid激活函數。計算權重矩陣操作公式為
S=sigmoid[W2·Relu(W1·Z)]
(9)
(3)將生成的權重矩陣S與殘差塊輸出的特征矩陣F在通道維度上相乘,對原始特征進行重新標定。
綜上所述,深度可分離卷積減少了卷積計算量和卷積參數,殘差結構設計在神經網絡加深的情況下能夠保持最優的表現能力;注意力機制用在電線桿標識牌特征提取上,對標牌不同信息賦予不同重要程度,這樣特征提取網絡對圖像特征具有較好的表現力,更有利于分割標識牌文本。
2.1.3 電線桿標識牌特征提取網絡
電線桿標識牌特征提取網絡拓撲結構如圖6所示,網絡由3×3卷積、BN層、6個輕量級特征提取單元順次連接構成,其中3×3普通卷積提取標牌圖像低層全局特征;BN層將卷積歸一化處理提升模型收斂速度;6個輕量級特征提取單元提取標識牌圖像高層局部特征,圖6(a)~圖6(g)為各層對應的特征提取可視化結果。

圖6 特征提取網絡結構及各層熱力
為了更好地描述自然場景中不同形狀的文本,本文采用基于圖像分割的文本檢測網絡DBNet(differentiable binarization network),在像素水平上進行文本和非文本的二值化處理。電線桿標識牌經過特征提取網絡提取特征后連接DBNet的二值化模塊,獲取電線桿標識牌中的文本檢測框。DBNet二值化模塊流程如圖7所示,二值化模塊在特征矩陣基礎上做兩種操作:一是對特征矩陣逐像素計算每個點屬于文本和非文本的概率,得到標識牌圖像的概率圖P;二是根據特征矩陣學習每個像素點劃分文本和非文本的閾值,得到閾值圖T,最后在對應元素上,按照閾值圖對概率圖進行自適應的二值化計算。該過程實現的關鍵是DBNet突破了傳統固定閾值分割式(10),公式中t表示某個固定閾值,當概率矩陣元素Pij大于t時,劃分為1表示文本特征,其它情況劃分為0表示非文本特征,Bij表示二值矩陣。DBNet模型將二值化計算設計為可微分的操作式(11),該方法利用概率矩陣與閾值矩陣的值進行文本和非文本的自適應劃分,加入網絡一起訓練,能通過網絡學習得到閾值,其中B^ij表示自適應閾值矩陣,得到閾值矩陣后再按照對應像素閾值劃分文本和非文本

圖7 DBNet文本檢測網絡結構
Bij={1Pij≥t0others
(10)
B^ij=11+e-k(Pij-Tij)
(11)
其中,Pij表示概率圖中的概率值,Tij表示閾值圖中的值,k為常數因子。
上述基于分割的字符檢測方法用網絡學習的方式訓練更適合每個像素點的閾值,按照這一閾值對電線桿標識牌文本和背景的劃分更加精確。
CRNN的結構如圖8所示,將上一步驟檢測到的電線桿標識牌文本框序列輸入到基于CRNN的字符識別模型中提取標識牌中的字符信息,輸出電線桿標識牌信息。

圖8 CRNN的結構
模型先通過上文構建的輕量級特征提取網絡提取圖像特征,獲取對應原圖的每一個區域序列特征。再經過RNN層在卷積特征的基礎上繼續提取字符序列特征,將CNN層輸出的特征序列X1,X2,X3,…Xt輸入到BiLSTM中,對序列的前向信息和后向信息進行關聯預測,輸出每個序列字符元素預測值yt。這樣訓練時每張樣本圖片都需要標記出每個字符在圖片中的位置,再通過CNN感受野對齊到特征圖的每一列獲取該列輸出對應的標簽才能進行訓練,在實際情況中標記這種對齊樣本非常困難,工作量大,另外由于圖像文本字符數量不同,字體樣式不同,字符大小不同,導致每列輸出并不一定與每個字符對齊。CRNN模型的CTC層建立了序列合并與對齊機制,提出了不需要對齊的Loss計算方法進行損失計算,并將輸出的結果轉錄翻譯。
假設任務的總字典集為L,在本模型中定義為L′,L′=L∪{blank}∪{電力特殊字符}, 其中L為常用的中英文字典集,blank表示空白占位符,標記當前時間片為空字符,電力特殊字符為包括:Ⅰ、Ⅱ、Ⅲ、KV、-、#、/、+。
模型輸出的文本字符串結果是由多分類輸出單個字符再進行轉錄形成的,在訓練中一個標簽存在一條或者多路徑,所以定義如式(12)的損失函數使得輸出字符到標注序列轉化的概率最大化
p(l|x)=∑π∈B-1(l)p(π|x)
(12)
式(13)表示所有輸入x路徑映射到標注序列的條件概率之和,其中x為輸入序列,l為標簽序列,π∈B-1(l) 是輸出x到輸出標注序列的所有路徑,表示為
p(π|x)=∏t=Tt=1ytπt
(13)
其中,y表示t時刻對應的字符輸出,從t=1到T時刻累乘形成的路徑π。
預測輸出的字符中間有較多重復和空白標簽,明顯多于實際標簽中的字符數,在翻譯時合并重復字符,消除空字符處理后得到最后結果。本文通過在訓練集中增加電線桿標識牌常見字符,構建基于CRNN電線桿標識牌字符識別模型,使得輸出結果更加精準。
本文所采用的數據集包括兩種:一種是自制柱面電線桿標識牌數據集,共500張,主要來源于實地拍攝、網絡爬取和供電部門。另一種是公開數據集ICDAR2015,主要是自然街景圖像數據,用以訓練文本檢測和字符識別模型,包括文本訓練集1000張,測試集500張,字符識別訓練集4468個,測試集2077個。表1匯總了數據集相關信息。

表1 實驗數據集
模型按照柱面圖像矯正預處理、文本檢測、字符識別的順序展開,輸入柱面電線桿標識牌數據,輸出電線桿標識牌中的文本信息。由于電線桿標識牌的來源不同,受自然環境、拍攝角度影響,數據樣本存在格式不統一、光照不均、模糊等問題,為了改善圖像數據的質量,加快模型收斂速度,對標識牌數據圖像進行了對比增強、隨機旋轉、灰度處理等預處理。
3.3.1 柱面矯正展平效果分析
根據上文中柱面反投影矯正論述,在一張空白平面圖像上按照上述投影公式在水平方向和垂直方向上分別做坐標投影變換,再將對應坐標點的像素值進行賦值。為了統一公式計算時的W和H,實驗時將圖像大小統一設置為300×300,柱面模型半徑設為150像素。通過反投影展平矯正,柱面電線桿標識牌處理結果如圖9所示,從圖中可以看出展平后圖像邊緣信息更加明顯。在相同參數下,圖9(b)、圖9(c)、分別是按照本文方法矯正、文獻[2]方法矯正和傳統投影公式矯正的效果,從結果發現文獻[2]和傳統方法在計算投影坐標時將曲線近似為直線,存在較大誤差,出現矯正過剩的問題,將直接影響后續計算。

圖9 柱面反投影矯正對比
柱面電線桿標識牌矯正展平前后經Tiny_DBNet_CRNN模型識別的結果如圖10所示,若柱面電線桿標識牌直接檢測識別,圖像緣兩側的文本檢測不完整,導致一半的字符識別結果錯誤(圖10(a))。矯正預處理后再用Tiny_DBNet_CRNN識別的結果(圖10(b))。與直接識別相比,矯正后能完整檢測并輸出標牌“220 KV客還II線”、“防城港供電局”、“供電服務熱線95598”這些邊緣信息。

圖10 柱面電線桿標識牌矯正前后字符檢測和識別結果
總體上,500張柱面電線桿標識牌展平矯正后再識別,有442張標牌圖像文本能準確、完整輸出,字符識別正確率為88.40%。若圖像按照像素點矯正后未進行缺失像素的雙線性插值算法補全,字符特征會變得較為模糊進而影響最后的圖像字符識別,此時的字符識別正確率為80.20%。而直接將柱面電線桿標識牌輸入到Tiny_DBNet_CRNN字符識別模型中識別正確率僅48.10%,說明矯正后的電線桿標識牌識別正確率提升40.3%,其中雙線性插值的補全方法識別正確率的提升貢獻了8.20%。可見,正是由于合理的柱面矯正展平方法,將柱面電線桿標識牌邊緣壓縮的文本化曲為直,將柱面圖像轉化為平面圖像,使圖像特征獲取更準確、完整,從而極大地提升了柱面電線桿標牌文本識別的正確率。
雖然上述流程方法對柱面電線桿標識牌識別取得了較好的效果,但仍存在一些錯例,除了柱面反投影矯正算法影響之外,柱狀圖像展平矯正效果還受原圖質量和柱狀模型在整個圖像中的成像位置影響,原圖質量較差時再經過預處理過程多出現圖像失真的現象。
3.3.2 Tiny_DBNet_CRNN模型精度分析
為了評估模型性能,選用DBNet原模型特征提取網絡ResNet_18[15]、ResNet_50[15]與本文提出的輕量級特征提取網絡作對比分析,在精度上選用準確率(Precision)和召回率(Recall)作為評價指標,在效率上選用每秒內處理圖像的幀數FPS和Pytorch框架計算的參數量作為評價指標,Tiny_DBNet_CRNN在測試集上的測試結果見表2。

表2 模型測試結果
從表中分析出本文提出的Tiny_DBNet_CRNN在準確率下降非常小的情況下,加快了原DBNet模型的檢測速度,縮小了模型參數規模。輕量級特征提取網絡使用深度可分離卷積提取圖像特征,在卷積核的維度上降低參數量;同時為了彌補卷積過程帶來的計算損失,又能較好地從一張圖像中分離出文本區域,在模型中加入了注意力機制,在特征提取的層次上加重文本的表現力。
在ICDAR2015數據集下,與基于ResNet_50的模型相比,用輕量級的特征提取網絡作為特征提取網絡,在準確率下降0.60%的微小損失下,每秒內處理圖像的幀數由12增大到50,檢測速度約提升3倍,參數規模上總體下降45.15%,模型提升效果顯著。在柱面電線桿標識牌數據集下,與ResNet_18_DBNet_CRNN相比,Tiny_DBNet_CRNN在精度、召回率、檢測速度和模型參數上均較大程度優于原模型。
柱面電線桿標識牌數據集相比于ICDAR2015數據集文本行數量較少,且標識牌形狀較為規范工整,應用Tiny_DBNet_CRNN模型表現效果更好。Tiny_DBNet_CRNN在柱面電線桿標識牌數據的識別上精確率為92.00%,基本達到業務使用的精度。綜合在兩種不同數據集下,用兩種特征提取網絡與本文構建的網絡進行訓練與測試實驗,用模型之間性能指標結果驗證了本文通過模型輕量化改進,電線桿標識牌識別在速度和精度均有所提升。用實際數據驗證了在現實場景中模型的落地實用性,具有一定的實用價值和現實意義。
為了進一步探究本文提出的輕量級Tiny_DBNet_CRNN模型對電線桿標識牌識別的效果,用ResNet_18_DBNet_CRNN、ResNet_50_DBNet_CRNN在電線桿標識牌數據集上驗證,選用標識牌字符識別正確率(Accuracy)作為評價指標,表示電線桿標識牌字符正確輸出占總樣本的比例。
模型識別正確率曲線如圖11所示。從圖中可以發現,隨著模型訓練迭代次數的增加,對電線桿標識牌文本的識別正確率均呈現上升趨勢。對比來看,本文模型在訓練迭代30個epoch后正確率高于原模型且正確率穩定在95.11%以上。模型中加入的注意力機制使文本特征在整個標識牌圖像中更加突出,更易于從圖像中分割出來,這對模型識別精度的提升發揮重要作用,以滿足電線桿標識牌識別精度的要求。

圖11 Tiny_DBNet_CRNN模型準確率
3.3.3 Tiny_DBNet_CRNN模型效率分析
從表2的分析結果可以看出,模型主要通過減少參數量和計算量,提升每秒內處理的數據量,進而提升檢測速度。在柱面電線桿標識牌數據集上測試文本圖像單處理和批批處理耗時數據,以NVIDIA GeForce RTX 2080 Ti、CUDA11、Ubuntu、Pytorch1.5實驗環境,在Tiny-DBNet模型中,用60張平均含有4個文本框的柱面電線桿標識牌測試,處理一張圖像數據平均耗時1.2 s,包括柱面圖圖像矯正預處理、特征提取像素二值化分類和聚合后處理工作。批處理50張、100張、150張、200張圖像分別耗時1.82 min、2.30 min、3.50 min、5.00 min,模型經過兩階段的像素處理,在批處理工作中還需要采用多批處理的相關技術繼續改進提升檢測時間。實驗驗證了模型適用于實際場景電線桿標識牌信息提取工作的實時拍攝輸出和后臺批量處理輸出兩種工作方式的可行性。
為了進一步探究本文提出的輕量級特征提取網絡對圖像特征提取的表現以及模型訓練的收斂情況,在ICDAR2015數據集下,采用文本檢測模型的分類損失和字符識別模型的回歸損失的和作為Tiny_DBNet_CRNN模型損失,輸出訓練過程的損失函數值。
訓練過程中的損失曲線如圖12所示。從圖中可以看出,隨著迭代次數的增加,損失函數值均呈現下降趨勢。對比來看,本文提出的輕量級特征提取網絡更容易訓練,在相同的訓練次數下表現出更小的損失;且模型收斂速度較快,在迭代43次后,先于ResNet_50、ResNet_18網絡趨于穩定,說明本文提出的特征提取網絡更容易訓練,對圖像特征具有更強的表現力。

圖12 不同特征提取網絡下訓練損失
本文提出一種用于柱面電線桿標識牌字符識別的Tiny_DBNet_CRNN模型,針對柱面電線桿標識牌這種特殊的研究對象采用反投影算法進行矯正預處理,使得邊緣信息更加完整,顯著提升了字符識別正確率。在此基礎上構建了基于分割的輕量級可微二值化文本檢測模型,在準確率下降0.60%的微小損失下,檢測速度約提升3倍,參數規模總體下降45.15%。在整個柱面電線桿標識牌樣本上,采用CRNN模型驗證電線桿標識牌字符識別正確率達到95.11%。本模型輕量、高效、易訓練,收斂速度快,為柱面電線桿標識牌信息高效識別提供了可行解決方案。