大話文本檢測經典模型:SegLink

在天然場景中,例如燈箱廣告牌、產品包裝盒、商標等,要檢測出其中的文字會面臨着各類複雜的狀況,例如角度傾斜、變形等狀況,這時就須要使用基於深度學習的方法進行文字檢測。在以前的文章中,介紹了基於卷積神經網絡和循環神經網絡的CTPN文本檢測方法(見文章:大話文本檢測經典模型 CTPN),該方法能在天然場景下較好地實現對文字的檢測,但在CTPN中給出的文本檢測效果是基於水平方向的,對於非水平的文本檢測效果並很差,而在天然場景中,不少的文本信息都是帶有必定的旋轉角度的,例如用手機拍街道上的指示牌,以下圖。若是文本檢測的結果只有水平方向的,沒有帶角度信息,那麼下圖指示牌檢測出來的就是紅色框結果,而其實綠色框纔是理想的檢測目標,可見檢測的結果偏差太大。算法

 

那要怎樣才能實現對各類角度的靈活檢測呢?一個最直接的思路就是讓模型不只能學習和輸出邊框的位置(x, y, w, h),還要能輸出一個文本框的旋轉角度參數θ。本文要介紹的文本檢測模型SegLink,即是採用了這個思路,也即SegLink檢測模型能檢測有旋轉角度的文本,以下圖:網絡

1、SegLink模型的主要思想架構

SegLink模型的檢測過程主要以下:分佈式

一、首先是檢測生成一個一個的segment(切片),如上圖黃色框,這些segment(切片)是文本行(或單詞)的一部分,多是一個字符,或者是一個單詞,或者是幾個字符函數

二、經過link(連接)將屬於同一個文本行(或者單詞)的segment(切片)鏈接起來,如上圖綠色線條。link(連接)是在兩個有重疊segment的中心點進行相連,以下圖oop

三、經過合併算法,將這些segment(切片)、link(連接)合併成一個完整的文本行,得出完整文本行的檢測框位置和旋轉角度。學習

 

其中,segment(切片)、link(連接)是SegLink模型的創新之處,該模型不但學習了segment的位置信息,也學習了segment之間的link關係,以表示是否屬於同一文本行(或者單詞)。大數據

 

2、SegLink模型的網絡結構人工智能

SegLink模型的網絡結構以下:spa

該模型以VGG16做爲網絡的主要骨幹,將其中的全鏈接層(fc6, fc7)替換成卷積層(conv6, conv7),後面再接上4個卷積層(conv8, conv9, conv10, conv11),其中,將conv4_3,conv7,conv8_2,conv9_2,conv10_2,conv11這6個層的feature map(特徵圖)拿出來作卷積獲得segments(切片)和links(連接)。這6個層的feature map(特徵圖)尺寸是不一樣的,每一層的尺寸只有前一層的一半,從這6個不一樣尺寸的層上獲得segment和link,就能夠實現對不一樣尺寸文本行的檢測了(大的feature map擅長檢測小物體,小的feature map擅長檢測大物體)。

一、segment檢測

整個架構採起了SSD的思路,在segment(切片)檢測上,與SSD模型檢測過程相似,經過「套框」的方式,對結果進行迴歸,每一個feature map(特徵圖)通過卷積後輸出的通道數爲7,其中兩個表示segment是否爲文字的置信度值爲(0, 1),剩下的五個爲segment相對於對應位置的default box的五個偏移量。每一個segment表示爲:

二、link檢測

在segment與segment的link(連接)方面,主要存在兩種狀況,一種是層內連接檢測、另外一種是跨層連接檢測。以下圖:

其中,層內連接檢測表示同一特徵層,每一個segment與8鄰域內的segment的鏈接情況,每一個link有兩個分數:正分、負分,正分表示兩者屬於同一個文本(應該鏈接);負分表示兩者屬於不一樣文本(應該斷開鏈接)。而跨層連接檢測,主要是爲了解決同一文本的segment在不一樣層被檢測到,形成重複檢測、冗餘的問題,在相鄰兩層的feature map上,後面那層的segment的鄰居除了是本層的鄰居外,在前一層也有它的鄰居,但後一層卻不是前一層的鄰居,在後面的合併算法中會將這種冗餘消除掉。

三、合併算法

合併算法的思想以下:

  • 將同一行的segment取出來
  • 對這些segment的中心點做最小二乘法線性迴歸,獲得一條直線
  • 每一個segment的中心點往這條直線作垂直投影
  • 從全部投影點中取出距離最遠的兩個點,記爲(xp,yp)、(xq,yq)
  • 那麼最終合併的文本框,(1)中心點位置爲( (xp+xq)/2 , (yp+yq)/2 ),(2)寬度爲兩個最遠的點(xp,yp)、(xq,yq)的距離加上所在segment寬度的一半(Wp/2 + Wq/2),(3)高度爲全部segment的高度平均值

 

以下圖所示,中間橙色直線表示最小二乘法迴歸後的直線,紅點表示segment的中心點,黃點表示紅點在直線上的垂直投影,綠色邊框就是通過以上合併算法處理後的完整本文框。

 

3、小結

SegLink增長了角度的檢測,對於各類角度的文本檢測具備很強的魯棒性,而CTPN主要用於檢測水平的文本行,以下圖所示:

但該模型也存在不足之處,例如不能檢測間隔很大的文本行,由於相鄰segment之間主要是經過link來鏈接,文本相距太遠時就會效果很差。另外,不能檢測形變或者曲線文本,這是由於最後在作合併算法時採用的是線性迴歸的方式,只能擬合直線,沒法擬合曲線,但也能夠經過修改合併算法,來實現對變形、曲線文本的檢測。

 

牆裂建議

2017年,Baoguang Shi 等人發表了關於SegLink的經典論文《 Detecting Oriented Text in Natural Images by Linking Segments 》,在論文中詳細介紹了SegLink的技術原理,建議閱讀該論文以進一步瞭解該模型。

 

關注本人公衆號「大數據與人工智能Lab」(BigdataAILab),而後回覆「論文」關鍵字可在線閱讀經典論文的內容

 

推薦相關閱讀

相關文章
相關標籤/搜索