申靜波 宋思宇 豁 雙 李井輝
(東北石油大學計算機與信息技術學院 黑龍江大慶 163318)
隨著科技的進步,圖像獲取更加方便快捷,圖像場景中的字符提取和識別已成為實際應用中的熱點問題[1]。號碼簿作為運動員的身份標識,通過號碼簿可進行人員安檢、分區檢錄、圖片推送等,并有利于賽事的自動化過程管控。實際賽事中,拍攝的圖像通常由多位攝影師以不同的角度、姿態和位置拍攝,這導致了圖像中運動員的比例、光照以及角度等存在差異[2]。此外,由于運動狀態下的身體擺動,使得號碼簿上的部分字符產生角度傾斜或字體扭曲變形[3]。圖像中號碼簿的多樣性和復雜性如圖1所示,因此,在馬拉松賽事中實現號碼簿檢測與識別的準確性是一項具有挑戰和困難的任務。

圖1 號碼簿的多樣性
基于傳統方法的號碼簿識別研究中,更多的是結合先驗知識及手工特征進行號碼簿的檢測與識別。Ben-Ami等[4]根據人臉檢測結果計算得到運動員候選區域,隨后結合筆畫寬度變換算法(Stroke Width Transform,SWT)生成并過濾得到號碼簿區域,最后經過預處理、字符分割操作后,利用光學字符識別(Optical Character Recognition,OCR)方法完成字符識別,該方法對于圖像中的人臉清晰度及軀干完整性要求較高,適用范圍較小。趙麗科等[1]提出利用可形變部件模型(Deformable Part Model,DPM)獲取運動員區域,通過號碼簿的固定顏色組合對圖像中號碼簿進行區域定位,并利用BP 神經網絡進行號碼文本的識別,當圖像中存在多種顏色組合的號碼簿時,不僅增大了計算量,還導致號碼簿的識別精度下降。傳統方法在一定程度上解決了號碼簿識別問題,但是在多目標的復雜場景中存在計算復雜度高、精度低等問題。基于深度學習的方法利用模型算法代替傳統手工方法,在圖像分類、目標檢測、圖像分割等多種圖像處理任務中取得突破性進展[5]。徐培等[3]利用水平及多方向檢測模型來獲取號碼簿區域,隨后將號碼文本送入到CRNN 進行字符特征提取和識別。Apap 等[2]采用基于改進UNet的圖像分割方法,用于號碼簿的區域分割,之后利用改進的CRNN模型進行特征提取和識別。Wang等[6]通過YOLOv3進行預處理篩選出運動員有效區域,之后利用CTPN獲取號碼簿區域,最后將號碼簿輸入CRNN完成號碼文本的識別。文獻[2][3][6]利用多角度的文本檢測方法,易受號碼簿自身以及相似文本背景的影響,直接采用文本檢測算法則會檢測到大量非目標的文本信息,從而導致算法的識別性能下降。以上基于深度學習的方法在單目標場景下具有較好的識別效果,但未解決多目標背景下傾斜形變號碼簿識別效率差的問題。
以RetinaNet[7]為基礎進行算法改進,針對多目標場景下傾斜扭曲號碼簿的漏檢問題,引入具有角度的旋轉檢測框用于匹配傾斜號碼簿。為了避免旋轉檢測框中角度回歸的困難,利用環形平滑標簽(Circular Smooth Label,CSL)[8]方法將角度回歸問題轉化為角度分類問題,進一步優化傾斜號碼簿的檢測精度。檢測階段得到的號碼簿角點坐標,通過裁剪送入到基于注意力機制的CRNN[9]完成對檢測到號碼簿的無字符分割識別任務[10]。實驗結果表明,相比于已有方法,本文方法在檢測與識別階段均有所提升,本文提出的復合型網絡的整體性能較優。
號碼簿檢測是后續識別的基礎,相比于一般目標檢測方法,號碼簿檢測對目標區域的精確度要求更高。RetinaNet較好地平衡了檢測的速度和精度[11],具有較優的檢測性能。通過對相關實驗的分析發現,在馬拉松場景中,針對復雜背景下的號碼牌,一方面要考慮目標框是否貼合號碼牌,另一方面要考慮目標框中是否引入過多背景或者其他目標信息,RetinaNet提供的水平檢測框顯然具有一定的局限性。因此,本文方法借鑒了RRPN網絡中旋轉框生成策略,并根據實際需求進行相應調整。
(一)旋轉矩形框設置。在原有水平檢測框的基礎上增加角度信息,通過5參數(x,y,w,h,θ)來表示旋轉矩形框,依次表示為候選框的中心坐標、寬、高以及矩形框的長邊h相對x軸的夾角。相比于傳統文本檢測方法采用的八元組(x1,y1,x2,y2,x3,y3,x4,y4)形式的旋轉框,這種五元組的方式不僅在模型訓練階段能高效地計算出正確且有效的數據,還有利于后續計算兩個旋轉框之間的角度差。
水平框之間的IOU 值是由兩個矩形框間的交集占總并集的比值所決定的,如圖2所示。而旋轉框的引入,使得兩個矩形框間的交集不再是規則化的圖像,這就需要一個更有效的方法來計算旋轉框的IOU。

圖2 兩種形式矩形框
旋轉框的IOU計算如下:①首先計算出兩個矩形框交點的坐標。②然后將交集部分的不規則形狀轉化為規則的圖形計算。從任意一點出發,與其余交點連接,將不規則圖形分解為多個三角形,并求出相應三角形的面積。③最后根據IOU的計算公式得出最終結果。具體計算如下:
(二)旋轉錨框設置。在傾斜號碼牌的檢測中,錨框的設計需要考慮號碼牌的旋轉角度。與傳統的水平矩形錨框不同,旋轉錨框是以傾斜矩形的形式進行設計,以覆蓋更多的旋轉目標。與傳統的錨框設計類似,根據號碼牌的大小和比例,設置不同大小和長寬比的錨框。考慮到拍攝距離等因素可能會導致圖像中號碼牌的大小存在差異,本文分別通過聚類和長寬比直方圖對錨框大小進行分析,如圖3所示。以上述兩種方法結果作為參考,最終將Anchor長寬比設置為1:1.5、1:2、2:3,尺度大小依舊保持為20、21/3、22/3。旋轉錨框的角度設置,需要根據實際目標的傾斜角度范圍進行調整,本文通過設置不同的旋轉角度間隔,來盡可能地匹配目標角度。在上述Anchor長寬比的基礎上增加了4個方向角度-π/6、-π/4、-π/3、-π/2。根據Anchor的生成規則,圖像特征圖上的每一點將生成36個不同角度不同大小的候選框。

圖3 錨框長寬比計算
為匹配多種形式的號碼牌并提高檢測精度,考慮旋轉錨框在[-π/2,π/2]范圍內的旋轉角度參數,在原有水平Anchor 的基礎上增加6個方向角度-π/12、-π/6、-π/4、-π/3、-5π/12、-π/2,以更好地匹配傾斜號碼文本。旋轉錨框在參數θ回歸過程中,易受角度周期限制進而產生邊界問題,可利用CSL方法將角度回歸問題轉化為分類問題,通過對窗口函數及窗口半徑的設置,使得目標區域定位更精確[12,13]。
上述檢測到的號碼簿區域,通過角點坐標裁剪得到的號碼文本圖像,可以通過基于分割字符或整詞識別方法[3]實現圖像中的字符或者字符序列的識別。號碼文本識別中,不同賽事字符文本的不規則排布、字體、顏色、尺度、光照等因素的變化顯著增加了識別的難度。此外,在拍攝角度及運動狀態的影響下號碼簿的扭曲形變,使得字符間發生不同程度的扭曲,號碼文本內部的形變問題,導致現有號碼文本識別算法識別率不高。本文基于整詞識別CRNN方法完成號碼文本識別任務,結合注意力機制及號碼文本特點對CRNN進行相應的改進。
(一)注意力機制。近年來,注意力機制(Attention Mechanism)被廣泛應用在圖像識別、機器翻譯、語音識別等各種深度學習任務中。文本識別方法中注意力機制能夠通過高亮字符所在位置的特征,有效彌補不規則文本和水平平直文本之間的特征差異[14],其中采用的是Bahdanau 注意力機制[15],計算流程如下圖4所示。解碼器經過當前位置t時,通過上一時刻的隱狀態St-1、目標序列yt-1以及編碼器每個位置輸出的隱狀態ci計算得到每個字符的隱狀態向量,此時St=g(St-1,yt-1,ct),αt,i為輸出序列在t時刻的隱狀態,具體計算表示為:

圖4 Bahdanau注意力機制
(二)基于注意力機制的CRNN 模型。針對分割字符識別方法的局限性,本文在整詞識別方法的基礎上提出基于注意力機制的CRNN識別方法。基于注意力機制的CRNN網絡由3部分組成:卷積層、循環層以及轉錄層。其中卷積層是對輸入圖像進行相應的特征提取,并轉化為循環層可處理的特征序列形式;循環層通過一個單層的門控循環(Gated Recurrent Unit,GRU)網絡[16]對特征序列中的每一層特征遞歸處理,將整個特征序列轉換為一個標簽分布;轉錄層結合注意力機制將循環層獲取的標簽進行字符串的去重整合等操作,最后轉化成識別結果。網絡特征提取階段的參數如下表1 所示,其中Maps 為圖像維度,Window為池化窗口,k表示卷積核,s表示步長,p表示為填充。

表1 CRNN網絡結構圖
(一)實驗環境及數據集。本文所有實驗均在同一實驗環境下完成,實驗平臺為Inter(R)Core(TM)CPUi7-9700K,8GB RAM,NVIDIA GeForce GTX 2080 Ti,操作系統為Ubantu16.04,采用CUDA10.0 加速,實驗環境為python3.6,Tensorflow 框架。號碼簿檢測與識別所需的實驗數據來源于真實馬拉松賽事。
1.號碼簿檢測數據集。本文的研究對象為馬拉松場景下的運動員圖像,目前公開的馬拉松運動員數據集較少,僅有的RBNR 數據集[2]不僅數據量少,而且與真實馬拉松場景下拍攝的圖片存在較大的差異。針對這一問題,本文在不同馬拉松網站上進行數據的收集工作,收集到的部分圖像如圖5所示。
為了保證運動員數據集的多樣性,收集的樣本數據中包含各種天氣狀況、賽道起始終點、不同場次、不同拍攝角度的運動員圖片;此外,號碼簿的樣式、字體顏色、字體大小也需要考慮在內。最終在收集的圖片中篩選出8000張圖片作為實驗所需的馬拉松運動員數據集——Mathon。在對圖片進行標注工作的同時,選取7000張圖片作為訓練集,1000張圖片作為測試集。
2.號碼簿識別數據集。號碼簿識別數據集主要由兩部分組成:真實數據和人工合成數據。真實數據由Mathon數據集裁剪得到;人工合成數據是利用數據合成工具將不同樣式號碼簿作為背景,通過模糊、傾斜、扭曲、仿射變換等方法,隨機生成文本圖片,如下圖6所示,圖6(a)為合成文本圖片,圖6(b)為真實場景裁剪得到的號碼簿。

圖6 號碼簿識別數據集
(二)號碼簿檢測實驗。對于傾斜的號碼簿而言,水平框檢測方法無法獲取號碼簿的精確位置,為進一步檢驗本文方法對于號碼牌的檢測性能,分別與EAST、R3Det 和R_yolov5 進行對比實驗,實驗結果如表2所示。
由上述結果可以看出,以EAST 為代表的文本檢測算法稍遜于本文算法,這是由于EAST算法在處理傾斜文本區域時,需要對四邊形進行旋轉和重新計算,從而導致復雜度增加。而本文提出的旋轉目標檢測算法可以通過旋轉錨框來更方便地處理旋轉目標。基于旋轉框的目標檢測算法中,R3Det算法主要應用于遙感圖像的目標檢測任務,針對長寬比值較大的目標具有較強的旋轉目標檢測能力和較高的檢測精度,對于該場景下的號碼牌檢測顯然具有一定的局限。而基于yolov5改進的旋轉目標檢測算法R_yolov5,對旋轉目標的處理方式不夠細致,對于旋轉角度過大的目標可能無法準確檢測。
(三)號碼簿識別實驗。在號碼簿識別階段,為了提高真實場景下號碼簿的識別準確度,在模型訓練中,先是對合成的文本圖像進行模型的預訓練,隨后利用真實號碼簿進行模型的微調。預訓練中,合成訓練集通過2個批次的迭代訓練后收斂至最優。訓練參數的設置為基于Adam優化算法進行端到端訓練,統一輸入圖像為100×32;batch_size 設置為64;真實數據訓練中,首先將真實號碼簿統一縮放為100×32尺寸大小,經過500次迭代后模型趨于收斂,其余的訓練參數均與上述方法一致。
號碼簿識別算法的評估準則,采用字符識別正確率(Character Recognition Accuracy)和平均編輯距離(Average Edit Distance,ADE)兩種方法來衡量。其中字符識別正確率指識別正確的圖像數量占總圖像數量的比例,正確識別字符比例越高越好。編輯距離是針對兩個字符串差異程度的量化,指一個字符串通過替換、刪除、插入字符的操作轉變為另一個字符串所需要的最少編輯次數。兩個字符串越接近,編輯距離越小。平均編輯距離則由編輯距離總和與圖片總數的比值決定。
1.基于注意力機制方法的驗證。為了評估本文方法的有效性,我們與原始CRNN模型進行了對比實驗。本文訓練數據采用的是區分大小字母+數字組合的字符類別模式,分別對本文模型與原始CRNN模型進行訓練,測試階段進行有字典的識別,實驗結果如表3所示。

表3 CRNN與本文方法對比實驗
從表中數據可以看出,本文方法無論在正確識別率還是平均編輯距離上都比基礎CRNN 模型的識別效果好。這是因為本文方法通過引入注意力機制來關注不同位置的輸入信息,從而提高預測的準確度。
2.不同檢測方法的識別結果對比。本文研究是針對馬拉松場景下的號碼簿檢測與識別,為了充分驗證本文方法的綜合性能,將YOLOv5、EAST 和本文檢測方法分別與基于注意力機制的CRNN 識別方法結合,進行號碼簿識別的對比實驗,測試過程中均采用有字典的測試方法。
上述表4為不同檢測方法的識別結果,可以看出以Yolov5為代表的常規目標檢測方法,由于水平檢測框的局限性,使得檢測到的目標區域存在大量背景信息,導致號碼簿的識別率嚴重下降。EAST 與本文算法利用水平和傾斜兩種形式的檢測框,來解決多角度的號碼簿檢測問題。由于EAST算法對于號碼簿尺度變化的魯棒性較差,最終導致識別效果下降。從正確識別率和平均編輯距離指標上看,相比較其余兩種方法,本文提出的算法性能較優。

表4 不同檢測方法的識別對比
針對馬拉松賽事中的號碼簿識別問題,本文通過構建一個基于深度學習的復合型網絡來實現馬拉松號碼簿的檢測與識別。號碼簿檢測階段,以RetinaNet作為基礎網絡,設置旋轉檢測框用于傾斜目標的匹配,結合CSL方法將旋轉檢測框的角度回歸問題轉化為角度分類問題,從而滿足目標區域精確定位的需求。號碼文本識別中,在原始CRNN的基礎上引入注意力機制方法,提高扭曲形變號碼文本的識別能力,進一步提升CRNN的性能。在自主創建的數據集Mathon上的實驗表明,本文提出的號碼簿檢測算法對于復雜背景、號碼簿尺度及傾斜扭曲等多種影響因素可較好地提取號碼簿區域,相比較其他方法,具有較好檢測性能。不同檢測方法的識別結果表明,本文方法的綜合識別性能較優。