陳小順,王良君
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江212013)
視覺圖像是人們獲取外界信息的主要來源,文本則是對(duì)事物的一種凝練描述,人通過眼睛捕獲文本獲取信息,機(jī)器設(shè)備的眼睛則是冰冷的攝像頭。 如何讓機(jī)器設(shè)備從拍照獲取的圖像中準(zhǔn)確檢測識(shí)別文本信息逐漸為各界學(xué)者關(guān)注。
現(xiàn)代文本檢測方法多為基于深度學(xué)習(xí)的方法,主要分為基于候選框和基于像素分割的兩種形式。本文選擇基于像素分割的深度學(xué)習(xí)模型作為文本檢測識(shí)別的主要研究方向,能夠同時(shí)滿足對(duì)自然場景文本的精確檢測,又能保證后續(xù)設(shè)備功能(如語義分析等功能)的拓展。
PixelLink[1]算法訓(xùn)練FCN[2]預(yù)測兩種分類:文本與非文本像素、像素間連接關(guān)系。 數(shù)據(jù)集中的文本框內(nèi)像素整體作為文本像素,其他為非文本像素。與九宮格類似,每個(gè)像素的周圍有8 個(gè)相鄰的像素,對(duì)應(yīng)有8 種連接關(guān)系。 文本與非文本像素之間的值為負(fù),文本與文本像素之間的值為正,非文本像素之間的值為零。 將值為正的像素與相鄰8 個(gè)像素之間的連接關(guān)系連通成一片分區(qū),每個(gè)連通區(qū)則代表分割出的文本區(qū)。 最后通過OpenCV中的minAreaRect 方法直接得到文本區(qū)的最小外接矩形邊界框。
改進(jìn)后網(wǎng)絡(luò)模型如圖1 所示,通過Mask map 連接。在原有VGG16[3]網(wǎng)絡(luò)模型每個(gè)池化層后增加圖2 中SE Block[4]以獲取每個(gè)特征通道的權(quán)重,提升有用特征并抑制低效特征通道。
圖1 Mask map 生成
圖2 SE Block
與FCN 中方法相似,從Conv3、Conv4、Conv5、Fc7 層進(jìn)行上采樣UpSampled 與融合⊕,使用雙線性插值作為上采樣方法,使用加和操作作為融合方法,得到預(yù)測特征圖Mask map,過程如圖1 所示。 除Pool5 步長為1,其余池化層步長都為2。其中Fc7 與Conv5 大小一致,可不經(jīng)過上采樣直接相加。
模型中1×1 的卷積核共兩種,其中2 個(gè)1×1 的卷積核用于文本和非文本像素預(yù)測,16 個(gè)1×1 的卷積核用于像素連接關(guān)系預(yù)測。
圖2 為插入PixelLink 方法中的SE Block,輸入特征圖與計(jì)算后輸出尺度不變。
坐標(biāo)點(diǎn)可以看做是序列問題[5],對(duì)Mask map 圖中生成的矩形框區(qū)域進(jìn)行邊界框預(yù)測,每次預(yù)測一對(duì)坐標(biāo)點(diǎn),直至矩形框邊界。 有隱性約束條件,例如第4 個(gè)點(diǎn)必須在第2 個(gè)點(diǎn)的右邊,后續(xù)對(duì)特征圖Mask map 進(jìn)行基于RNN 的自適應(yīng)文本框預(yù)測,采用長短期記憶LSTM[6]模型處理隊(duì)列順序問題,最終完成對(duì)文本的精確定位。圖3 為文本框預(yù)測部分模型結(jié)構(gòu)。
圖3 文本框生成
1.3.1 公開數(shù)據(jù)集重新標(biāo)定
自然場景中的文本多用旋轉(zhuǎn)矩形框和四邊形框定位,坐標(biāo)通常以順時(shí)針方向標(biāo)注。 本文將坐標(biāo)點(diǎn)按照上下一對(duì)形式從左到右的順序排列,通過此方法將公開數(shù)據(jù)集的坐標(biāo)數(shù)據(jù)進(jìn)行重新編排。
1.3.2 損失函數(shù)定義
改進(jìn)后算法總體損失函數(shù)定義如下:
其中, 文本與非文本分類任務(wù)上的損失函數(shù)Lpixel和像素連接關(guān)系任務(wù)的損失函數(shù)Llink與原像素連接PixelLink 算法保持一致;邊界點(diǎn)回歸任務(wù)損失函數(shù)Lreg、停止/繼續(xù)標(biāo)簽分類任務(wù)損失函數(shù)Lcls為框點(diǎn)對(duì)預(yù)測中的損失函數(shù);λ1、λ2、λ3、λ4分 別 為 文 本 與 非 文 本 分 類 任 務(wù)、像 素 連接關(guān)系任務(wù)、邊界點(diǎn)回歸任務(wù)、停止/繼續(xù)標(biāo)簽分類任務(wù)的權(quán)重參數(shù),因像素連接關(guān)系預(yù)測任務(wù)、邊界點(diǎn)回歸任務(wù)、停止/繼續(xù)標(biāo)簽分類任務(wù)都是在第一個(gè)文本像素任務(wù)基礎(chǔ)上進(jìn)行計(jì)算的,所以像素分類任務(wù)比這3 種任務(wù)更重要,本實(shí)施例中λ1=2,λ2、λ3、λ4默認(rèn)設(shè)置為1。
1.3.3 訓(xùn)練方法與實(shí)驗(yàn)環(huán)境
與Pixellink 方法相似,使用xavier 參數(shù)[7]初始化方法,無需使用ImageNet 數(shù)據(jù)集[8]預(yù)訓(xùn)練。 算法在服務(wù)器中用兩張TeslaP4 顯卡進(jìn)行訓(xùn)練,使用Anaconda+PyCharm管理,環(huán)境及依賴:tensorflow-gpu==1.14,ujson,threadpool,opencv,matplotlib,Pillow,Cython,setproctitle,shapely,Python3.6。 初始100 次迭代中保持學(xué)習(xí)速率為10-3,后續(xù)迭代中保持10-2不變,在ICDAR2015 數(shù)據(jù)集上整體迭代約30 000 次后再將模型訓(xùn)練結(jié)果作為預(yù)訓(xùn)練值,在其他數(shù)據(jù)集上進(jìn)行訓(xùn)練。 其中batch_size 設(shè)定為4,處理器為Intel Xeon Sliver(2.1 GHz),機(jī)器內(nèi)存為40 GB。 每次迭代需要0.8 s 左右,總訓(xùn)練過程約為15 h。
本文主要評(píng)價(jià)方法為IOU 算法,表1 中R 為召回率,P 為精準(zhǔn)率,F(xiàn) 為綜合評(píng)價(jià),* 表示算法是基于分割的檢測方法,其他為基于候選框的檢測方法。 測試結(jié)果表明本文所改進(jìn)的方法在各個(gè)數(shù)據(jù)集上均超過原有方法。在對(duì)曲向文本的識(shí)別方法中領(lǐng)先,并且在水平文本和傾斜文本檢測中能夠接近基于候選框檢測方法的檢測精度。
為測試文本檢測方法在實(shí)際生活應(yīng)用中的檢測效果,使用OV5648USB 攝像頭模塊累計(jì)拍攝300 張不同場景下圖像作為測試圖像,原圖分辨率大小為:2 592×1 944。如圖4 所示,為突出顯示檢測結(jié)果,截取主要定位部分,圖像中的中文部分以中文詞語作為一條文本行,英文以短語作為一條文本行。 共計(jì)2 506 條文本,其中1 964 條中文文本(包含數(shù)字),542 條英文文本。
表1 公開數(shù)據(jù)集測試結(jié)果
圖4 自建數(shù)據(jù)集檢測結(jié)果
深色框?yàn)楦倪M(jìn)前方法的定位結(jié)果,淺色框?yàn)楦倪M(jìn)后的方法定位結(jié)果,右圖為對(duì)應(yīng)的像素分割后的檢測結(jié)果。 從特征圖中可以看出,本文方法對(duì)長條形的英文檢測敏感,能夠有效檢測出長條形的英文,對(duì)曲向的英文有著不錯(cuò)的識(shí)別能力。 在對(duì)圖像進(jìn)行檢時(shí),平均每張檢測速度為0.89 s,即FPS=1.12,R=72.9,P=70.0,F(xiàn)=71.4。
本文提出改進(jìn)的文本檢測方法在數(shù)據(jù)集表現(xiàn)上均超過原有方法,接近當(dāng)前領(lǐng)先的算法精度,能夠提高已有文本識(shí)別系統(tǒng)對(duì)自然場景下曲向文本與模糊文本的識(shí)別精度。 后續(xù)結(jié)合自然語言處理和語義分割任務(wù),又可以將所識(shí)別的文本內(nèi)容、文本背景內(nèi)容組合生成關(guān)于一張圖片中文本的具體描述內(nèi)容,使得使用者獲取更多的文本信息。