董引娣,趙曉祎
1.重慶城市管理職業(yè)學(xué)院 信息工程學(xué)院,重慶 401331
2.中國人民解放軍后勤工程學(xué)院 訓(xùn)練部,重慶 401331
場景文字定位與識別是非常有價值的研究方向,可幫助視障人士進(jìn)行語言翻譯和寫作,同時可用于大型圖像和視頻數(shù)據(jù)庫文本內(nèi)容自動索引(例如谷歌街景、Flickr等)。不同于傳統(tǒng)印刷文檔的OCR(optical character recognition),現(xiàn)有場景文本識別方法在識別精度上無法滿足應(yīng)用需要,最近的ICDAR 2015大賽獲獎算法也只能達(dá)到70%的識別精度,并且要求場景文本不存在透視變形或明顯噪聲[1]。
文本定位過程在算法中占有非常大的計算復(fù)雜度,因為對應(yīng)于大小為N像素的圖像會產(chǎn)生2N個子集。現(xiàn)有算法一般采用兩種處理方式:
(1)借鑒其他對象的檢測問題,利用滑動窗口方法對個別字符或整個詞進(jìn)行定位。這種方法已得到成功應(yīng)用,例如文獻(xiàn)[2]提出基于樹結(jié)構(gòu)模型的端到端場景文本識別;文獻(xiàn)[3]提出集成多個字符建議的魯棒場景文本提取方法;文獻(xiàn)[4]提出基于窗口特征識別的魯棒的自然場景圖像文本檢測方法等。這類方法的優(yōu)點(diǎn)是對噪聲和模糊性具有很強(qiáng)的魯棒性,因為對于窗口興趣區(qū)域的特征進(jìn)行了充分的開發(fā)利用[5]。主要缺點(diǎn)是需要評估的矩形數(shù)量迅速增長時,須找到具有不同規(guī)模、方向、旋轉(zhuǎn)和扭曲的文本,導(dǎo)致定位精度降低。
(2)使用圖像的局部屬性(如顏色、強(qiáng)度或筆劃寬度)將單個字符定位為連接組件的方法。這種方法逐漸得到流行,例如文獻(xiàn)[6]提出基于強(qiáng)度跟蹤的多方位場景文本檢測,設(shè)計了動態(tài)規(guī)劃檢測方法的統(tǒng)一框架;文獻(xiàn)[7]提出利用智能手機(jī)處理的自適應(yīng)場景文本圖像二值化顏色檢測方法;文獻(xiàn)[8]提出基于筆劃寬度的實時無詞典場景文本定位與識別方法。這類方法的復(fù)雜性不依賴于所有字符尺度的文本參數(shù),在OCR階段可檢測到字符分割的連通分量。最大缺點(diǎn)是依賴于字符是連接組件的假設(shè),噪聲的單像素改變可能會導(dǎo)致連接組件的大小、形狀或其他屬性不發(fā)生變化,從而可能影響其分類。
本文提出了終端到終端的實時文本定位和識別方法,它不依賴于任何先驗知識即可實現(xiàn)文本檢測,這與詞匯為基礎(chǔ)的方法存在明顯的不同。本文方法屬于第二種算法類別,因為它首先檢測單個字符,然后建立更復(fù)雜的字符結(jié)構(gòu),例如字和文本線。最后,通過實驗仿真對算法性能進(jìn)行了測試和分析。
近期,大多數(shù)文本局部化方法都使用連接組件方法。這些方法在個體特征檢測方法上有所不同,它們可以基于邊緣檢測、特征能量計算或極值區(qū)域檢測。雖然這些方法都非常注重個性檢測,但最終分割的決策僅取決于局部特征。這種方法對噪聲和模糊圖像很敏感,因為它依賴于成功檢測到的邊緣,并且只為每個字符提供一個分割,這對OCR模塊來說可能不是最好的。現(xiàn)有大多數(shù)方法只注重文本識別,文字位置通過人工進(jìn)行設(shè)定,只有少數(shù)的端到端文本定位和識別方法能夠處理嘈雜的數(shù)據(jù),但它們的通用性受到詞匯字典的限制。本文提出文本線局部極值區(qū)域兩階段場景文本序列識別方法,所要解決的便是文本的自動定位和處理方法的通用性問題。
對于一組給定的訓(xùn)練圖像S={(Ii,Bi)}ni=1,其中Ii為圖像,Bi是圖像Ii中用于指定字符的位置和范圍的一組邊界框。文本檢測算法應(yīng)該能夠捕捉到字符的本質(zhì)子結(jié)構(gòu),并且區(qū)別于局部背景,具有相互對立關(guān)系。由于S僅提供字符級注釋,需要對其字符原型進(jìn)行自動識別[9-10]。
給定“發(fā)現(xiàn)”圖像集D和“自然詞語”圖像集N,算法目標(biāo)是在D中發(fā)現(xiàn)歧視其他集群的有代表性補(bǔ)丁集群及圖像集N中可視詞語。該算法輸出是具有最高排名的補(bǔ)丁集群K和分類集C。每個集群Kj對應(yīng)分類器Cj可檢測到在新圖像下與聚類Kj相似的補(bǔ)丁。本文提出端到端的實時文本定位和識別方法,不依賴于任何先驗檢測知識。該方法首先檢測單個字符,然后建立更復(fù)雜的結(jié)構(gòu)模型。通過將字符檢測問題轉(zhuǎn)換成一組有效的順序極值區(qū)域(extremal regions,ER)選擇問題,實現(xiàn)實時的檢測能力,算法框架見圖1所示。
Fig.1 Algorithm framework圖1 算法框架
在第一階段,利用特征計算對每個ER字符概率進(jìn)行計算,這部分算法計算復(fù)雜度較低,然后選取具有局部最大概率的特征用于第二階段,并采用復(fù)雜度更加昂貴的算法細(xì)化特征計算。利用高效聚類算法將ER處理成文本線,然后利用字符區(qū)域的標(biāo)簽以及OCR分類器合成字體。最后,在上下文中的每個字符的文本線已知的情況下,可實現(xiàn)最有可能的字符序列的快速選取,實現(xiàn)算法效率提升。
考慮圖像映射I:D?N2→V,對于彩色圖像,V為[0,255]3。圖像I的信道是映射C:D→S,其中S是完全有序集合,fc:V→S是一個完全有序集的像素值投影。令A(yù)表示鄰接區(qū)域A?D×D。本文考慮4像素情形,具有坐標(biāo)(x±1,y)和(x,y±1)的像素是像素(x,y)的鄰接矩陣。圖像I的區(qū)域R是D的連續(xù)子集[11]:
外邊界?R相鄰但不屬于R像素集:
極值區(qū)域是其外邊界像素具有嚴(yán)格高于該區(qū)域本身值的區(qū)域:
其中,θ表示極值區(qū)域的閾值。考慮RGB和HSI顏色空間和附加強(qiáng)度梯度通道(?),其中每個像素通過其鄰居之間的最大強(qiáng)度差近似進(jìn)行“梯度”像素分配。
在圖像中,有些字符是由較小元素或多個聯(lián)合字符組成的單個元素構(gòu)成的。采用高斯金字塔分解對圖像進(jìn)行預(yù)處理,如果字符包含多個元素,這些元素融合在一起成為單一區(qū)域,則在每級金字塔只有具有一定間隔的字符筆劃寬度被放大。
ER快速分類關(guān)鍵是分類器特征的區(qū)域描述符獲取[12]。在閾值θ上極值區(qū)域r可構(gòu)成聯(lián)合區(qū)域,或在閾值θ-1上的更多極值區(qū)域。使用特殊描述符,并利用ER之間存在的包含關(guān)系,以增量計算方式進(jìn)行描述。令Rθ-1表示閾值θ-1上極值區(qū)域集合,在閾值θ上極值區(qū)域r∈Rθ可利用閾值θ-1上區(qū)域像素及像素值θ聯(lián)合構(gòu)成:
假設(shè)閾值u∈Rθ-1上所有極值區(qū)域描述符為?(u)。為計算區(qū)域r∈Rθ描述符?(r),需對區(qū)域u∈Rθ-1描述符和像素{p∈D:C(p)=θ}融合,形成區(qū)域r:
其中,符號⊕表示合并區(qū)域描述符;ψ(p)表示給定像素p描述符初始化函數(shù)。這樣的描述符ψ(p)和⊕存在增量計算過程,如圖2所示。
可通過簡單地依次增加閾值θ從0到255,實現(xiàn)對所有極值區(qū)域描述符的計算,在閾值θ中添加像素的計算描述符ψ,在閾值θ-1中重用區(qū)域?描述符。此外,假定單個像素ψ(p)描述符計算及組合操作⊕具有固定時間復(fù)雜度,由此產(chǎn)生的對于N個像素的圖像所有極值區(qū)域描述符的計算復(fù)雜度為O(N),每個像素只計算一次?(p),那么組合函數(shù)可在最多N次計算過程中完成評估,因為極值區(qū)域數(shù)目上限為圖像中的像素數(shù)。本文使用以下增量計算描述符:
(1)面積參數(shù)a,即像素數(shù),其初始化函數(shù)是一個常數(shù)函數(shù)ψ(p)=1,組合運(yùn)算⊕表示加法操作(+)。
(2)邊界框(xmin,ymin,xmax,ymax),表示區(qū)域右上角和左下角。坐標(biāo)為(x,y)像素p的初始化函數(shù)為(x,y,x+1,y+1),組合操作⊕為(min,min,max,max)。該區(qū)域?qū)挾圈睾透叨萮可計算為xmax-xmin和ymax-ymin。
(3)周長參數(shù)p,區(qū)域邊界長度見圖2(a)。在像素p中當(dāng)閾值添加時,初始函數(shù)ψ(p)確定周長的變化:
式中,ψ(p)的計算復(fù)雜度為O(1),因為每個像素最多有4個鄰居像素。
(4)歐拉數(shù)η。歐拉數(shù)是一個二元圖像的拓?fù)涮卣鳎溆嬎阈问綖椋浩渲?,C1、C2和C3分別表示圖像中二進(jìn)制像素數(shù)。初始化函數(shù)值ψ(p)可通過對給定閾值C(p)像素p由0到1變化所確定:
在本文方法中,每個信道分別進(jìn)行高斯金字塔處理,然后檢測ER。為減少高誤報率和高冗余的ER檢測器,順序分類只對獨(dú)特ER對應(yīng)的字符進(jìn)行選擇。
步驟1閾值從0逐漸增加到255,對極值區(qū)域r的描述符增量計算復(fù)雜度為O(1),這些描述符作為分類器的特征,用于對類的條件概率p(character|r)的計算,只選擇具有最大概率的極值區(qū)域進(jìn)行第二步計算,如圖3所示。
Fig.3 Conditional probability computation of a class圖3 類的條件概率計算
采用AdaBoost分類器順序分類,采用的字符特征有:縱橫比ω/h、緊性、孔數(shù)(1-η)、水平通道特征,作用是在水平投影中估計字符筆劃數(shù)。只對c的固定大小子集采樣,獲得固定復(fù)雜度計算過程。利用Logistic修正,對分類器輸出進(jìn)行概率函數(shù)p(character|r)校準(zhǔn)。通過實驗,設(shè)置參數(shù)pmin=0.2,Δmin=0.1。
步驟2通過步驟1篩選的極值區(qū)域進(jìn)行字符和非字符類別劃分,但對這些特征進(jìn)行操作的計算復(fù)雜度也很高。本文采用支持向量機(jī)(support vector machine,SVM)和RBF(radial basis function)核函數(shù)進(jìn)行操作。該步驟中利用步驟1所有特征,并增加如下特征:開孔面積比ah/a,其中ah表示區(qū)域孔的像素數(shù);凸殼比率ac/a,其中ac表示區(qū)域凸包的面積;外邊界拐點(diǎn)數(shù)κ,表示區(qū)域邊界周圍像素之間的凹凸角變化次數(shù)。
令R表示在前一階段中檢測到的所有通道和尺度區(qū)域(字符候選)集。搜索所有序列空間,及其對應(yīng)的子字符序列。利用底線估計和附加的外形限制進(jìn)行集群個體距離測量。基于窮舉算法進(jìn)行初始文本線候選,如算法1所示。
算法1初始文本線候選
輸入:區(qū)域集R。
輸出:三元組集T。
算法1中,對r1∈R進(jìn)行窮舉操作,利用其鄰居r2∈N(r1)和r3∈N(r2)。r2∈N(r1)指相距K=5以內(nèi)的r2與r1,該距離表示兩區(qū)域質(zhì)心距離。通過限制集合r2∈N(r1)到區(qū)域r2方式,按照自左到右方向強(qiáng)制執(zhí)行文本,其質(zhì)心在r1質(zhì)心右邊,即cx(r2)>cx(r1),其中cx(r)表示該區(qū)域r的質(zhì)心x的坐標(biāo)。
在窮舉搜索中,區(qū)域?qū)?r1,r2)和(r2,r3)及(r1,r2,r3)可利用約束v進(jìn)行修剪,目的是降低窮舉操作復(fù)雜度。在本文方法中,二進(jìn)制約束v使用高度比和區(qū)域距離寬度歸一化值作為特征,而三元約束v′采用文本行高度和區(qū)域質(zhì)心角度歸一化距離底線作為特征。實驗中,AdaBoost分類器事先利用ICDAR 2013訓(xùn)練集進(jìn)行訓(xùn)練。
算法2構(gòu)建文本行,每個三元組變成長度為3的文本行,利用最小二乘法估計初始基線方向b。橫框中包含所有的行文本區(qū)域計算,并保存坐標(biāo)(左)、(右)和(高)。查找行l(wèi)和l′的最小距離dist(l,l′)。兩部分區(qū)域合并,基于合并文本行區(qū)域集可實現(xiàn)對新底線方向和包圍盒坐標(biāo)更新。最小相互距離dist(l,l′)定義如下:
算法2文本線構(gòu)建
輸入:三元組集T。
輸出:文本線集L。
令表示所有文本行區(qū)域的集合,即:
每個候選區(qū)域r∈利用Unicode碼對最近鄰分類器進(jìn)行標(biāo)記。區(qū)域r標(biāo)簽集r∈定義為:
其中,l(t)表示訓(xùn)練樣本t的標(biāo)簽;NK(f(r))表示字符特征空間f中區(qū)域r的K近鄰;是標(biāo)簽l的最大距離;A是支持Unicode字符集。
首先將區(qū)域歸一化到固定大小為35×35像素的矩陣,保留該區(qū)域的質(zhì)心和縱橫比。訓(xùn)練集由白色背景上的黑色字母圖像組成,共有5 580個訓(xùn)練樣本。最近鄰分類器NK由近似最近鄰分類器實現(xiàn),K設(shè)定為11。為計算每個類別估計的值,每個特征表示為訓(xùn)練集的交叉驗證乘以β的公差因子,這里選取β=2.5。
考慮將字表示為字符序列,在文本線中給定區(qū)域r1和r2,如果r1和r2是相同文本行一部分,r1為r2前身,即字符序列中與r1相關(guān)聯(lián)的字符緊接在與r2相關(guān)聯(lián)字符之前??梢胗邢蜻B接圖G對其進(jìn)行表達(dá),從而使節(jié)點(diǎn)對應(yīng)于標(biāo)記區(qū)域:
其中,rl表示具有標(biāo)簽l∈A的區(qū)域r。沒有由字符分類器分配任何標(biāo)簽的區(qū)域不是文本行圖的一部分。每個節(jié)點(diǎn)rl和邊具有關(guān)聯(lián)的權(quán)值s(rl)和,計算形式分別為:
其中,權(quán)重α1、α2、α3、α4可由訓(xùn)練階段確定。
字符識別置信度ω(rl)表示通過分類器區(qū)域r具有字符標(biāo)簽l的概率。利用標(biāo)簽為l的訓(xùn)練集對K近鄰模板進(jìn)行計算,獲得字符特征空間中的距離和,并利用最近模板的距離進(jìn)行歸一化:
閾值重疊區(qū)間τ(r1,r2)是區(qū)域r1和r2間隔的交集;轉(zhuǎn)移概率λ(l1,l2)表示給定語言模型中,標(biāo)簽l1跟隨l2的估計概率。本文算法最后一步,為每個節(jié)點(diǎn)和邊緣分配分?jǐn)?shù),實現(xiàn)有向圖構(gòu)造。該過程中與每個文本行關(guān)聯(lián)的單詞序列作為算法的最終輸出。則本文算法計算復(fù)雜度為O(pN),其中p為所采用的通道數(shù),N為圖像的像素數(shù)。
硬件設(shè)置:CPU-AMD 7650K 3.30 GHz,內(nèi)存為8 GB ddr4-2400k,系統(tǒng)為Win10旗艦版。參數(shù)設(shè)置:極值區(qū)域的閾值θ∈[0,255]逐漸增加,pmin=0.2,Δmin=0.1,間距K=5,公差因子β=2.5,歸一化區(qū)域的固定大小35×35像素,其余參數(shù)b、、、在算法開始節(jié)點(diǎn)進(jìn)行自動估計,見算法2。
對比算法選取文獻(xiàn)[13-16],其中文獻(xiàn)[13]是一種考慮紋理特征和圖像矩的自然場景文本識別算法;文獻(xiàn)[14]利用邊界聚類、筆劃分割和字符串片段分類實現(xiàn)對場景圖像中的文本局部化操作;文獻(xiàn)[15]是基于文本嵌入式分割的場景文本有效圖切割識別算法;文獻(xiàn)[16]也是一種局部化操作的場景文本識別算法。測試對象選取USTB-SV1K數(shù)據(jù)庫,其場景文本具有多方向特征,如圖4所示。
該數(shù)據(jù)庫是具有500幅圖像的多方向場景文本數(shù)據(jù)庫。圖片平均尺寸是1 600×1 200像素。場景圖像采集通過瀏覽器直接在亞馬遜網(wǎng)站上復(fù)制,并通過人工注釋,特定圖像與特定文本,例如企業(yè)標(biāo)志和名稱只能處于水平方向。評價指標(biāo)為:識別精度(precision)、召回率(recall)、F-score以及計算時間。前3項指標(biāo)定義如下:
Fig.4 USTB-SV1K database multi-direction features(partial images)圖4 USTB-SV1K數(shù)據(jù)庫多方向特征(部分圖像)
式中,TP表示正確劃分為正例個數(shù);FP表示錯誤劃分為正例個數(shù);FN表示錯誤劃分為負(fù)例個數(shù)。實驗結(jié)果如表1所示。
Table 1 Comparison of experimental data表1 實驗對比數(shù)據(jù)
根據(jù)表1數(shù)據(jù),在recall指標(biāo)上,幾種對比算法性能相差不大,均分布在0.61~0.63之間。在precision指標(biāo)上,本文算法精度為0.72,相對于選取的幾種算法,具有較為明顯的優(yōu)勢,對比算法識別精度分布在0.61~0.67之間。而在計算時間上,本文算法計算時間為5.2 s,在上述幾種算法中,計算時間是最少的。對比算法中,文獻(xiàn)[14]和文獻(xiàn)[16]也都采用了局部化操作方法,因此其計算時間也相對較少,分別為6.3s和6.5s。
圖5所示為文獻(xiàn)[13-16]以及本文算法的場景文本識別效果,實驗對象選自USTB-SV1K數(shù)據(jù)庫。從圖5結(jié)果可知,從分割效果上看,本文算法要明顯優(yōu)于選取的文獻(xiàn)[13-16]對比算法。文獻(xiàn)[13]算法和文獻(xiàn)[14]算法在HOWARD字符識別上效果不理想,存在較大區(qū)域的黑化現(xiàn)象。文獻(xiàn)[16]算法在REDBACK、HOWARD和LITTER字符上的識別效果不好,存在白化現(xiàn)象。文獻(xiàn)[15]算法在上述實驗對象上的識別效果總體還可以,但是噪聲問題比較嚴(yán)重,識別圖像不夠清晰。上述實驗結(jié)果驗證了本文算法的性能優(yōu)勢。
Fig.5 Image localization segmentation effect圖5 圖像局部化分割效果
本文提出了一種基于文本線局部極值區(qū)域兩階段場景文本序列識別方法,采用兩個階段進(jìn)行場景文本的識別,將第一階段的最大概率的局部特征作為第二階段的輸入,然后利用文本線處理方式和順序分類算法實現(xiàn)場景文本的有效識別。實驗結(jié)果驗證了算法性能優(yōu)勢。今后研究主要集中在以下三點(diǎn):(1)采用更復(fù)雜和數(shù)量更大的數(shù)據(jù)庫對算法性能進(jìn)行測試;(2)對應(yīng)用系統(tǒng)開發(fā)進(jìn)行研究,并考慮建立與真實字符系統(tǒng)的接口;(3)對算法性能進(jìn)行優(yōu)化,實現(xiàn)更佳的識別性能和更快速的計算。