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

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

 

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

一、SegLink模型的主要思想

SegLink模型的檢測過程主要如下:

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

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

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

 

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

 

二、SegLink模型的網絡結構

SegLink模型的網絡結構如下:

該模型以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擅長檢測大物體)。

1、segment檢測

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

2、link檢測

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

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

3、合併算法

合併算法的思想如下:

  • 將同一行的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的中心點,黃點表示紅點在直線上的垂直投影,綠色邊框就是經過以上合併算法處理後的完整本文框。

 

三、小結

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

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

 

牆裂建議

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

 

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

 

推薦相關閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章