劉信良,王靜秋
(南京航空航天大學(xué) 機電學(xué)院,南京 210016)
數(shù)字圖像是由有限像素值組成的二維矩陣,包含豐富的語義信息,自動識別圖像中的目標,例如文字是當前研究的熱點問題.圖像文字識別技術(shù)是指利用計算機視覺等技術(shù)分離圖像中文字與背景區(qū)域,并且準確識別文字內(nèi)容的過程.該技術(shù)可將圖像中的文字轉(zhuǎn)化為可供計算機識別和處理的文本信息,減少人為參與,提高自動化程度.
圖像文字識別技術(shù)一般先分割圖像中的目標文字再識別其內(nèi)容,目標文字分割的效果影響文字內(nèi)容識別的準確度.林孜陽等[1]提出了一種結(jié)余連通域的目標文字分割算法,通過連通域閾值分析,將文本塊聯(lián)通,從而實現(xiàn)對難提取的文字分割.易小波[2]提出了一種圖像二值化分割處理的方法,通過對圖像特征的研究,選取適當?shù)拈撝祵D像進行二值化,從而達到分割的效果.鄭澤鴻等[3]提出將AP 聚類算法用于字符分割,根據(jù)類中心對特征點進行歸類得到分割結(jié)果.上述算法運行速度快、對特定場景分割準確度高,但需要人為設(shè)定大量參數(shù),且通用性較差、魯棒性不足,在實際應(yīng)用中仍然存在較多的局限性.
近些年,深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用到眾多領(lǐng)域,如圖像分類[4,5]、目標檢測[6,7]、目標追蹤[8]、圖像分割[9]等,取得了令人矚目的成績,逐漸成為研究的熱點.Zhang 等[10]提出一種串聯(lián)全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks,FCN)[11]的方法,先用FCN 模型粗分割出文字區(qū)域,再用另一FCN 分類器預(yù)測出每個文字區(qū)域的中心位置,以去除粗分割時錯誤區(qū)域.此方法在稀疏文本下表現(xiàn)較好,但無法解決復(fù)雜文本重疊情況.
本文針對圖像中文字逐點標注復(fù)雜費時的問題,設(shè)計一種簡單的數(shù)據(jù)標注與增廣方式,并且改進FCN 模型,結(jié)合大津法[12]及全連接條件隨機場[13],實現(xiàn)對較復(fù)雜圖像中目標文字的語義分割,為后續(xù)文字識別做準備.
語義分割是指自動分割并識別圖像中具有特定語義的目標物體的過程.如圖1所示,將人和自行車作為兩種語義類別,在圖像中自動分割出屬于這兩類的所有物體,并標定其類別,其余部分當作背景.圖像中目標文字分割也可以當作語義分割問題求解,將文字當作唯一的語義類別,其余當作背景,從而將文字從圖像中分割出來.
本文提出了一種基于全卷積神經(jīng)網(wǎng)絡(luò)的圖像文字語義分割的算法,并采用大津法和全連接條件隨機場進行修正處理.如圖2所示,首先利用FCN 模型對輸入圖像進行初步分割,再用大津法對其二值化處理,最后使用全連接條件隨機場修正,得到精細的語義分割結(jié)果.
FCN 模型是用于任意尺寸圖像輸入的語義分割模型,此模型包括圖像特征提取編碼和標記圖像解碼生成兩個部分.圖像特征提取編碼是對圖像高級語義特征抽象的過程,通過多層卷積和池化操作,刪除冗余信息,提取出圖像的本質(zhì)信息.標記圖像解碼生成是對語義特征重建的過程,通過上采樣操作恢復(fù)圖像的原始尺寸,并得到每個像素所屬的類別.
如圖3(a)所示,本算法中的FCN 特征提取基礎(chǔ)網(wǎng)絡(luò)為VGG16 網(wǎng)絡(luò)[14],利用13 個3×3 的卷積層和5 個最大池化層提取圖像中抽象的語義特征,通常這些特征是整張圖像的全局特征.同時,FCN 將VGG16 網(wǎng)絡(luò)的全連接層用1×1 卷積層替換,以解決全連接層神經(jīng)元個數(shù)必須固定的缺點,從而實現(xiàn)任意尺寸圖像輸入.由于圖像特征提取過程經(jīng)過了5 個最大池化,原始圖像被縮小了32 倍,故需要用反卷積進行上采樣,恢復(fù)成原始圖像的大小.如圖3(b)所示,第5 個池化層輸出的特征圖經(jīng)過反卷積擴大2 倍后與第4 個池化層輸出的特征圖結(jié)合,將其結(jié)果反卷積擴大2 倍后與第3 個池化層輸出的特征圖結(jié)合,最后反卷積擴大8 倍生成預(yù)測標簽圖像.通常特征提取中間步驟的特征圖包含著豐富的淺層特征,如邊緣、紋理等,將此淺層特征與最終提取的深層抽象特征結(jié)合可以更加準確地分割物體.

圖1 語義分割示例

圖2 算法流程圖

圖3 FCN 整體結(jié)構(gòu)
本文改進原有的FCN 模型,采用均方差損失函數(shù),定義為式(1),其中yi為預(yù)測的標簽值,y?i為真實的標簽值.采用此損失函數(shù)目的是利用回歸的方式,使得最終特征圖的目標值接近255,背景值接近0,通過前景背景較大的差異值準確分割出文字區(qū)域大體位置.

大津法能夠根據(jù)閾值將圖像分為目標和背景兩部分,通過計算目標和背景的類間方差,遍歷所有灰度值尋找最佳閾值使得類間方差最大.對于帶有文字的圖像,假設(shè)屬于文字的像素點數(shù)占整幅圖像的比例為ωo,平均灰度為μo;背景像素點數(shù)占整幅圖像的比例為ωb,平均灰度為μb.類間方差g如式(2)計算:

遍歷0~255 各灰度值,計算并尋找類間方差的極大值即為文字目標與背景分割的最佳閾值.
在本文中,對于一幅帶有文字的圖像,每個像素點i具有像素值Ii,對應(yīng)的類別標簽為xi,以每個像素作為節(jié)點,像素之間的關(guān)系作為邊,構(gòu)成了一個全連接條件隨機場.其吉布提能量可以表示為:

式中,ψu(xi)為一元勢能,來自大津法二值化的輸出,只與像素i自身相關(guān),表述了像素i與其所屬類別的差異度:

二元勢能ψp(xi,xj)表達式為:

式中,?1為外觀核,p表示位置信息,I表示顏色信息,σα為用于控制位置信息的尺度,σβ為用于控制顏色相似度的尺度,通常在邊界位置顏色有較明顯的變化,因此位于邊界兩側(cè)的像素不同類別的可能性較大;?2為平滑度核,σγ為控制位置信息的尺度,此項只與位置信息有關(guān),用于平滑去除一些孤立的小區(qū)域,通常這些區(qū)域不是文字區(qū)域.
本文提出的圖像文字語義分割算法融合了改進的FCN 模型、大津法和全連接條件隨機場,相比傳統(tǒng)數(shù)字圖像處理算法,此算法需要設(shè)定的參數(shù)少且能夠適用復(fù)雜場景的文字分割.
數(shù)據(jù)集圖像中的目標文字主要有兩種類型:光學(xué)字符(文字是由攝像設(shè)備輸入)和合成字符(通過軟件將字符合成到圖像上).原版FCN 模型的數(shù)據(jù)集需要逐點標注目標的輪廓并給出目標的類別,對于圖像集制作起來復(fù)雜、耗時,因此本文提出一種新的數(shù)據(jù)集制作方法:對原始數(shù)據(jù)集圖像用最小四邊形標記文字區(qū)域,即四邊形包圍區(qū)域設(shè)為目標,像素值為255,其余區(qū)域設(shè)為背景,像素值為0,如圖4(a)、圖4(b)所示;為擴充數(shù)據(jù)集,讓分割結(jié)果更加準確,制作模擬合成字符圖像,即準備一批無文字的背景圖像,將文字集隨機生成并合成到圖像中,文字的類型包含中文、英文和數(shù)字,顏色隨機生成,如圖4(c)、圖4(d)所示.數(shù)據(jù)集包含訓(xùn)練集,驗證集和測試集,其中訓(xùn)練集有10 000 張圖片,驗證集和測試集各有1000 張圖片.

圖4 數(shù)據(jù)集示例
本次實驗的FCN 模型是用Tensorflow[15]框架搭建,實驗平臺為個人電腦,硬件為:i7-8700k CPU,16 GB 內(nèi)存,RTX 2070 GPU.
訓(xùn)練時,所有圖像和標簽都被放縮為224×224,以32 張為一批送入模型中訓(xùn)練.應(yīng)用指數(shù)衰減的學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置為0.001,衰減系數(shù)設(shè)置為0.9.優(yōu)化策略采用隨機梯度下降,共訓(xùn)練了50 000 次,耗時約11 個小時,其損失函數(shù)值的趨勢如圖5所示,從圖中可以看出損失函數(shù)值隨著訓(xùn)練的進行不斷下降,最終穩(wěn)定在一定數(shù)值.
如圖6(a)、圖6(b)所示,將FCN 初步分割結(jié)果轉(zhuǎn)化為RGB 格式,亮色代表此區(qū)域為文字的概率值大,暗色代表此區(qū)域為背景的概率值大.從圖中可以看出,亮色區(qū)域與圖像中文字區(qū)域基本對應(yīng),越亮的部分代表著此區(qū)域是文字的概率越大;相反,暗色區(qū)域與圖像中的背景相對應(yīng).接著,用大津法對FCN 初步分割結(jié)果進行二值化處理,計算得到使得目標/背景的類間方差最大的閾值分別為107、91、93.如圖6(c),可以看出大津法大致將文字區(qū)域劃分出來,但是劃分結(jié)果較粗糙,存在錯誤標記區(qū)域.最后,使用全連接條件隨機場進行結(jié)果修正,如圖6(d)所示,可以看出經(jīng)過全連接條件隨機場后處理的圖像能夠提升分割的結(jié)果,將大津法處理后的粗糙結(jié)果細化,更正了誤識別區(qū)域,為后續(xù)文字內(nèi)容識別做好準備.然而,此算法仍存在一定漏檢和誤檢的問題,分別如圖6中第2 行與第3 行矩形框所示.

圖5 訓(xùn)練時損失函數(shù)曲線

圖6 實驗結(jié)果
圖7為本文提出的算法與“FCN+全連接條件隨機場”算法對比結(jié)果.“FCN+全連接條件隨機場”算法的結(jié)果記為對照組,即采用FCN 模型進行初步分割(采用交叉熵損失函數(shù)),再用全連接條件隨機場進行后處理.圖7(a)、圖7(b)分別為兩種算法的初步分割圖,相較本文算法,對照組初步分割的結(jié)果較粗糙,有較多孤立的小片區(qū)域,且文字區(qū)域不夠明顯.最終分割結(jié)果如圖7(c)、圖7(d),對照組能夠分割出文字,但是出現(xiàn)一些漏分割現(xiàn)象,如圖中矩形框所示,且精細程度不如本文提出的算法.

圖7 對比結(jié)果
由于驗證集和測試集的標簽類型如圖4(b)所示,無法使用傳統(tǒng)的圖像分割的評判標準,如像素準確度、分割交占比(IOU)等,本文提出一種新的評判標準,評判步驟如下:
(1)先用OpenCV 對文字分割結(jié)果用最小矩形框集合,如圖8(a)所示,矩形框內(nèi)部即為目標文字區(qū)域.

圖8 評價結(jié)果圖
(2)對真實標簽的每個文字區(qū)域(如圖8(b)),按照式(8)計算其對預(yù)測結(jié)果中每個文字區(qū)域的Ci,選取最大Cmax,并將取最大值時兩個文字區(qū)域的索引值記錄到集合I中.若Cmax≥60% 表示預(yù)測正確;若10%≤Cmax<60%預(yù)測錯誤;若Cmax<10%則表示漏檢;若預(yù)測結(jié)果中文字區(qū)域的索引值未出現(xiàn)在I中,則此區(qū)域為誤檢.

其中,Sp表示預(yù)測的文字區(qū)域,St表示真實文字區(qū)域.
(3)錯誤總數(shù)(Nerr)為預(yù)測錯誤個數(shù)(Ne)與漏檢個數(shù)(Nm)之和,準確率計算如下:

其中,Nc表示預(yù)測正確的總個數(shù),Na為驗證集/測試集文字區(qū)域的總個數(shù)
根據(jù)此項判斷標準,實驗結(jié)果如表1所示,可以看出整體的實驗效果較好,沒有出現(xiàn)過擬合的情況;同時,可以發(fā)現(xiàn)結(jié)果中誤檢數(shù)量較漏檢數(shù)量多,可知本次實驗提出的算法容易將類似文字的圖案(背景)識別為文字(目標).本文算法的速度為0.181 s/幅,即5.5 fps,運行速度較快.

表1 圖像目標文字分割準確率分析
本文提出了一種基于改進全卷積神經(jīng)網(wǎng)絡(luò)的圖像目標分割算法,此算法使用FCN 模型進行初步分割,再利用大津法進行二值化,最后使用全連接條件隨機場進行修正.此算法在準確度和速度上都取得了較好的效果,在測試集上可以達到85.7% 的準確度以及0.181 s/幅的速度.