張高明,仝明磊
(上海電力大學電子與信息工程學院,上海 201306)
文字檢測的任務是定位圖像中的文字區域,與傳統的對印刷文檔進行文字檢測不同,印刷文檔中的文字往往排列整齊、背景簡單,文字與非文字區域存在明顯差異,而自然場景圖像中的文字常表現為多樣的形式,如傾斜、彎曲排列,字間距較大,寬高比存在顯著差異等,且自然場景圖像中背景復雜,極易對文字的檢測產生干擾,這些因素均給自然場景文字檢測帶來了巨大的挑戰。
盡管當前對自然場景中水平或傾斜文字進行檢測的研究已經取得了極大的突破,不斷出現新的算法在水平和傾斜文字檢測數據集上刷新記錄,但由于自然場景中的文本常表現為多種形式,如大寬高比、彎曲排列等,精確地檢測自然場景中任意形式的文字仍然是一個挑戰。目前,針對自然場景中任意形狀文字檢測問題的方法主要分為自底向上和自頂向下2種。
自底向上方法。自底向上方法將自然場景中任意形狀文字檢測問題轉換為語義分割問題,如TextSnak[1]、PSENet[2]等,通過對特征圖進行像素級的分類得到圖片中的文字區域。基于自底向上方法的模型通常擁有較簡單的網絡結構,具有速度較快等優點,但也存在以下問題:①由于自然場景中許多文字字段排列緊湊、間隔較小,僅通過語義分割檢測文字區域難以將緊鄰的不同文本實例分割開;②與印刷文檔中簡單的背景區域不同,自然場景的背景中常充斥著許多復雜的紋理,直接對圖片進行文字、非文字的分類極易出現錯誤,準確率較低。
自頂向下方法。與自底向上方法不同,自頂向下方法將任意形狀文字檢測問題轉換為實例分割問題,如SPCNet[3]、ABCNet[4]等,通過首先不考慮文字形狀,確定候選矩形區域得到圖片中文字的粗略位置,再對得到的候選區域分別進行語義分割,判斷其中每個元素是否屬于文字區域,最后得到文字實例的精確位置。自頂向下方法通過先后進行2輪檢測,既解決了自底向上方法難以將緊湊的文字實例分隔開的問題,又達到了提高文字檢測準確率的目的。但同樣存在下述問題:①由于自頂向下方法常基于Faster RCNN、Mask RCNN[5]等二階段目標檢測模型,不僅計算量大,速度較慢,不能滿足實時應用的要求,并且由于其檢測結果與候選區域的設置緊密相關,若沒有合理尺寸的候選區域,則文字檢測準確率也將顯著降低;②上述基于自底向上方法與自頂向下方法的模型最終均輸出圖像分割結果,基于圖像分割的目標檢測方法在模型完成預測之后,往往還需進行復雜的圖像后處理以得到最終結果,導致速度進一步降低。以TextSnake為例,模型輸出圖像分割結果后,還要通過將一系列不同半徑的圓盤覆蓋在文字區域內,刪除過小區域,連接圓盤區域,以得到最終文字檢測結果。
針對以上問題,本文提出一種基于埃爾米特曲線的任意形狀文字檢測方法,在自頂向下方法基礎上直接預測文字區域4個角點坐標以及對應位置處的斜率,即可根據埃爾米特曲線方程進行插值,準確表示圖像中文字的位置信息。
埃爾米特曲線文字檢測模型在常規目標檢測網絡FCOS[6]的基礎上,實現了anchor free的一階段的自頂向下文字檢測方法,達到了簡化網絡結構、減少模型超參數的目的。
本文提出基于埃爾米特曲線檢測任意形狀文字的方法,對于任一線段,只需知道2個端點處坐標B0、B1及對應斜率K0、K1,即可根據埃爾米特曲線方程得到該曲線的參數化表示,如圖1所示。

圖1 埃爾米特曲線
C(t)的定義如下:

其中,B0、K0對應t=0,B1、K1對應t=1,代入C(t)及其導數,可求得參數a、b、c、d。通過對t在[0,1]內均勻取k個點即可畫出該曲線,如圖1所示。
本文提出的埃爾米特曲線網絡將基于自頂向下方法中文字檢測結果由分割結果更改為回歸結果,不僅省略了過去自頂向下方法得到檢測結果后,還需對分割圖進行復雜的后處理才可得到文字區域的過程,加快文字檢測速度,并且對于每一個文字實例,僅用4個坐標點處的信息(xi,yi,ki)即可準確表示任意形狀的文字,解決了過去為應對任意形狀文字檢測問題大幅增加輸出維度導致收斂困難的問題。使用k個點繪制長邊得到的文字檢測結果如圖2所示。

圖2 使用k個插值擬合長邊得到的文字檢測結果
模型輸出包含2個分類任務,其中一個分類任務部分得到文本、非文本分類結果,另一分類任務部分得到該像素點為質心的概率,考慮到樣本中正例遠小于負例,為應對類別不均衡的分類問題,本文對分類任務采用Focal Loss作為損失函數,定義如下:

為驗證本文方法的有效性,實驗采用了SynthText、CTW-1500這2個自然場景文字檢測常用數據集。SynthText是一個包含80萬張圖像約有800萬個文字實例的大型數據集,其中每幅圖像都是通過在自然圖像中插入不定量隨機大小、顏色、形狀的文字組成,在本實驗中用于模型的預訓練;CTW-1500中有1 500張圖像,數據集中包含大量彎曲形狀的文字。
實驗操作過程中的程序版本為Python3.6.7,TensorFlow使用版本為1.13,使用容量為12 GB的顯卡在CentOS系統中進行訓練以及在CTW-1500數據集中進行測試。測試結果如表1所示。

表1 CTW-1500數據集結果對比
本文方法在CTW-1500數據集上進行測試,F-measure分別為80.6,超越了表1中近2年大多數文字檢測算法,取得了較好的結果。相較于CENet、ATTR等自底向上方法,本文采用自頂向下的思想,在不同數據集中都達到了較高的精確率。
本文提出一種基于埃爾米特曲線的任意形狀文字檢測網絡,在自頂向下思想的基礎上改變輸出形式,通過預測每個文字實例4個角點的坐標和斜率,再聯合埃爾米特曲線直接得到文字的位置信息,避免了傳統自頂向下方法得到圖像分割結果后還需進行復雜后處理的過程,有效簡化了模型結構。經過數據對比,本文提出的方法在CTW-1500等包含任意形狀文字實例的數據集中均取得了較好的實驗效果,驗證了方法的可行性和有效性。