電商場景海報文本智能檢測算法

2020-04-03     sandag

人工智慧技術已經廣泛應用於電商平台的眾多業務,融入人們的生活之中。以計算機視覺為代表的人工智慧技術更是在京東的搜索、推薦、廣告、風控、機器人配送等多個領域發揮重要的作用,本文主要集中介紹計算機視覺領域中深度學習算法在海報文本檢測任務中的技術概覽。

文本檢測是一種泛指對所有圖像文字檢測和識別的技術,包括傳統的OCR和複雜場景的STR:OCR(Optical Character Recognition)光學字符識別,是指對輸入的文本文檔圖像進行文字信息的檢測識別的傳統任務;STR(Scene Text Recognition)場景文字識別,特指檢測識別環境更為複雜的自然場景圖片中的文字信息。傳統文檔識別技術如今已經發展很成熟,而包括電商場景海報在內應用範圍更廣泛的自然場景里的文字識別技術,因為其文字展現形式的複雜性使得在自然場景圖像中進行文字識別的難度要遠遠高於傳統文檔中進行文字識別。

對於以電商海報為代表的場景文字識別任務,目前存在兩種解決方案:一種是兩階段的文字檢測+文字識別的模型;另一種則是在一個模型中完成文字檢測和文字識別工作的端到端的模型。下面將會對文字檢測,文字識別和端到端的方法三部分進行闡述。

文字檢測

文字檢測的目標是要檢測出圖片中文字所在的區域,屬於一種特殊的目標檢測任務,但是由於文本行的長度以及長寬比例範圍很大,並且文本行有橫向,豎向,彎曲,旋轉,扭曲等樣式相較於常規的物體更難檢測。

CTPN

CTPN的主幹網是一個全卷積網絡,接受任意尺寸的圖像為輸入,能夠直接在卷積層中定位文本行。

技術要點:

  • 使用VGG16網絡提取特徵,得到conv5的大小為N*W*H*C的特徵圖;
  • 在conv5的特徵圖上,使用3*3的窗口進行密集滑動,每次滑動得到一個3*3*C的特徵向量;
  • 然後將每一行的3*3*C作為雙向LSTM的輸入,學習每一行的序列特徵;
  • 隨後連接一個全連接FC層,最後接一個輸出層。

CTPN是基於Anchor的方法,每一個3*3*C的slide window預測k個(寬度在圖片中為16像素、高度為11~273像素)anchor,這些anchor在同一水平位置,有k個垂直高度值。輸出層輸出2k個垂直坐標向量(中心點y坐標和高度),2k個text/non-text score和k個anchor的side-refinement offset。

CTPN由於anchor的水平設定,僅對橫向分布的文字檢測效果較好,無法支持傾斜文本的檢測。

TextBoxes和TextBoxes++

TextBoxes系列算法的檢測方式啟發於一階段的目標檢測方法SSD:

TextBoxes

技術要點:

  • 主幹網絡是一個全卷積網絡,總共包含28層,前13層來自於VGG-16(conv_1到conv4_3),後接9個額外的卷積層(conv6,conv7,conv8_2,conv9_2,conv10_2,global);
  • 運用了空間金字塔的多重特徵層做輸出,這些特徵層被稱為text-box layers,為6個卷積層, 分別conv6,conv7,conv8_2,conv9_2,conv10_2和global;
  • 為了適應文本行檢測,在text-box layer使用的了不規則的1x5卷積核,而不是常規的3*3大小的卷積核。

文本更傾向於大的橫縱比,定義了1,2,3,5,7,10 六種default box。由於這些default box都是細長型的,會導致default box在水平方向密集在垂直方向上稀疏,為了解決這個問題,給每個default box加上垂直偏移(每個cell高度的一半),這樣default box的數量為12個。

由於TextBoxes僅是在SSD的基礎上對水平和垂直方向做了改良並未涉及default box的旋轉,因此僅適用於水平文本的檢測。

TextBoxes++

TextBoxes++是TextBoxes的擴展,TextBoxes++的總體網絡架構和TextBoxes類似,為了能夠檢測任意方向的文本主要對三個地方進行改進:

  • default box的縱橫比改為1,2,3,5,1/2,1/3,1/5;
  • 在text-box layer里,卷積核的大小由1x5改為3x5;
  • 適應傾斜文本輸出的兩種檢測框形式RBOX和QUAD。原始TextBoxes的輸出為文本目標得分text score(2-d)和Bbox offsets(4-d),而TextBoxes++的輸出為文本目標得分text score(2-d),和horizontal Bbox offsets(4-d)、Rotated Box(RBox)(5-d)或Quadrangle(QUAD)(8-d)。

SegLink

SegLink算法將檢測任務分成兩部分segment和links。其中Segment指的是能夠覆蓋一個單詞或者文本行的box;link連接兩個相鄰近的segment,表明它們屬於同一單詞或者文本行。

網絡架構借鑑SSD網絡架構,網絡能夠同時檢測segment和segment之間的link信息:

  • 網絡的後六個卷積層用於檢測不同尺度的box,segment box是RBOX形式;
  • Within-Layer Link Detection用於檢測同一特徵層中segment的連接;
  • Cross-layer Link Detection用於檢測兩個相鄰特徵層中的segment連接。

SegLink擅長處理多方向和任意長度的文本,對於長文本檢測效果也很好。

EAST

EAST是一個高效且準確的場景文字檢測算法,僅僅包括兩個步驟:利用全卷積網絡檢測文本行候選框;使用NMS算法過濾冗餘的候選框。網絡架構借鑑U-net的思想,包括三部分:特徵提取主幹,特徵合併分支和輸出層。

  • 輸出層輸出單通道的分數特徵圖和多通道的幾何特徵圖。
  • 特徵合併分支整合了不同尺度的特徵圖,可以檢測不同尺寸的文字
  • EAST通過輸出兩種幾何形狀,Rotated Box(RBox)和Quadrangle(QUAD)提供了文字的方向信息,可檢測不同方向的文字。

作者在EAST方法中改進了傳統的NMS算法,採用時間複雜度為O(n)的Locality-Aware NMS使結果的合併更加高效。EAST損失函數由分數特徵圖的損失函數和幾何形狀的特徵圖組成:前者使用類平衡交叉熵損失函數;後者採用IoU損失函數。

文字識別

文字識別部分主要存在如下圖的四種算法策略:CNN+softmax,CNN+RNN+CTC, CNN+RNN+Attention和CNN+stacked CNN+CTC。

CNN+softmax

假設輸入圖片為X,字符序列為S最大長度為N,要識別的字符序列為,S的長度為L且每個字符相互獨立,識別任務就可轉換為在訓練集上學習模型 , 在圖片上識別出序列S的機率計算公式為:

模型整體架構:對一個字符的識別先使用卷積網絡提取特徵,然後使用softmax分類器分類。使用卷積網絡提取特徵H,然後使用N+1個softmax分類器分別對每個字符進行分類,圖示如下:

該網絡架構簡單可以處理不定長的序列,但是由於缺乏識別文本特徵之間的上線文信息,僅適合簡單的文字識別,如字符和字母識別,且序列長度不宜過長。

CNN+RNN+CTC

CRNN加入了上下文的空間特徵信息,用CNN提取圖片特徵,將提取到的特徵轉換成特徵序列作為RNN的輸入,用於對卷積層輸出的特徵序列的每一幀進行預測;最後使用CTC算法將循環層的每幀預測轉化為標籤序列。

CRNN是一個端到端的模型,因為RNN可以處理任意長度的序列,僅僅需要固定輸入圖片的高度,寬度不定長。直接從序列標籤中學習,簡單實用被廣泛應用於組合各種檢測網絡進行文字識別。

CNN+RNN+attention

該方法在傳統識別網的基礎上引入注意力機制。識別流程大概分為以下步驟:CNN用於提取輸入圖片的特徵,然後將特徵序列作為Encoder-Decoder模型的輸入。Encoder部分通常選擇LSTM對特徵序列進行編碼,Decoder部分加入Attention機制進行解碼,輸出標籤序列。

CNN+stacked CNN+CTC

不論是CNN+RNN+CTC還是CNN+RNN+attention在場景文字識別方面,RNN架構必不可少,但是RNN的串行計算和梯度消失或者梯度爆炸關係使得RNN計算複雜和難以訓練。該框架針對上述問題進行改良,通過使用堆疊的卷積網絡去獲取序列之間的上下文依賴關係,並且為了增強前景文本的顯示和抑制背景噪聲的影響,作者在一個小的densely connected network中加入residual attention modules整個網絡架構分為三部分:Attention feature encoder, Convolutional sequence modeling和CTC:

電商場景海報文本智能檢測算法

  • Attention feature encoder是一個帶有residual attention 的densely connected network,用來提取特徵序列,特徵序列中的每一個向量都和輸入圖像中某個局部區域相對應;
  • Convolutional sequence modeling使用CNN獲取序列中的上下文關係,首先需要將上一步得到的特徵序列合併成一個2維的特徵圖,堆疊的卷積層生成hierarchical representation,能夠迅速擴大感受野的大小;
  • 最後使用CTC算法獲得最後的標籤序列。

端到端模型

傳統的文本檢測識別任務是先檢測後識別分為兩個任務,每個任務分別對應不同的算法,這樣任務之間缺乏特徵的耦合性並且大大增加了時耗。因此同時完成檢測和識別任務的端到端系統逐漸成為成為一種趨勢。

Towards End-to-End Text Spotting with Conventional Recurrent Neural Network

該模型以一張圖片作為輸入,同時輸出圖片文本的bbox和相應的文本標籤,整個網絡架構主要包括:Text Proposal Network(TPN), Region Feature Encoder(RFE),Text Detection Network(TDN)和Text Recognition Network(TRN)。

1. 利用VGG-16作為主幹網絡對圖像進行特徵提取;

2. Text Proposal Network(TPN)網絡會提取出一系列的文本區域候選框;

3. Region Feature Encoder(RFE)以VGG網絡提取的特徵圖Conv Feature和TPN提取得到的Text Proposals為輸入,依據文本相應的縱橫比重採樣文本區域,然後使用RNN將不同長度的特徵圖編碼成固定長度的向量;

4.隨後將固定長度的向量送入Text Detection Network(TDN)去計算textness scores 和 bbox offsets,將TDN網絡生成的Bbox轉化為固定長度的向量;

5. 最後Text Recognition Network(TRN)在檢測的bbox中識別出相應的文字標籤。

STN-OCR

STR-OCR訓練集僅僅需要圖片和圖片上文字的標籤信息,並不需要文字的區域信息。模型的檢測部分使用空間轉換檢測文本,包含三個組件:

  • Localization Network以圖片作為輸入,輸出N個二維的affine transformation matrices;
  • Grid Generator利用LR網絡輸出的affine transformation matrices輸出N個文本區域;
  • Image Sampling使用雙線性差值提取相應區域。

識別部分則在原圖像中檢測出N個區域,從圖片中提取這N個區域進行識別類似於CNN+softmax。

FOTS

FOTS整體架構包含四部分:卷積共享網絡(shared convolutions),文本檢測分支網絡(the text detection branch),RoIRotate變換(RoIRotate operation)和文本識別分支網絡(the text recognition branch)。

1. Share convolutions用卷積共享網絡提取圖片特徵圖。模型採用ResNet50作為共享主幹網分別得到1/4、1/8、1/16、1/32特徵圖,並利用FPN的方式進行特徵融合,最終得到的融合特徵圖是原圖尺寸的1/4。

2. The text detection branch是建立在共享卷積網的特徵圖之上的,對於特徵圖上的每一個特徵像素分別提供兩類預測,分類預測score值(即該點是檢測框內像素的機率)和回歸預測geometry坐標,該分支借鑑於EAST算法;

3. RoIRotate將有角度的文本塊,經過仿射變換,轉化為正常的軸對齊的文本矩形塊;

4. The text recognition branch類似於CRNN算法,將文本候選特徵輸入到RNN編碼器和CTC解碼器以進行文本識別。

總結與展望

時至今日以電商場景海報為代表的複雜場景文本檢測與識別技術依然存在巨大挑戰並體現在以下幾個方面:1.文字的多形態差異性,存在著語言、字體、傾斜、排版等各種各樣的形態;2.背景的複雜性,比如幾乎無法區分的元素(標誌、底紋等);3.干擾的多樣性,諸如噪聲、模糊、失真、低解析度、拉伸、遮擋等情況。這也要求算法工程師們針對業務需求設計更強大的模型來一一應對以上的困難與挑戰。

文章來源: https://twgreatdaily.com/MGbeQnEBnkjnB-0zOlSo.html