大話文字檢測經典模型:PixelLink

文字檢測是AI的一項重要應用,在以前的文章中已經介紹過了幾種基於深度學習的文字檢測模型:CTPN(詳見文章:大話文字檢測經典模型CTPN)、SegLink(詳見文章:大話文字檢測經典模型SegLink)、EAST(詳見文章:大話文字檢測經典模型EAST),這些模型主要依賴於深度學習,可應用於天然場景中進行文字檢測,其主要的實現步驟是判斷是否是文本,而且給出文本框的位置和角度,以下圖:算法

從上圖能夠看出,CTPN、SegLink、EAST等文字檢測模型至少須要執行兩個預測:經過分類判斷是文本/非文本,經過迴歸肯定邊界框的位置和角度。迴歸的耗時比分類要多得多,並且準確率也是一個挑戰。那麼有沒有一種方法是隻須要利用「分類」,就能實現對文本/非文本的判斷,並同時給出文本框的位置和角度呢?微信

答案是「有的」,這就是今天要介紹的另外一個文字檢測的經典模型:PixelLink(像素鏈接)網絡

 

一、PixelLink總體框架框架

PixelLink的總體框架以下圖:分佈式

從模型的名稱PixelLink(像素鏈接)能夠看出,該模型主要有兩個關鍵部分:Pixel(像素)、Link(鏈接)。函數

PixelLink主要是基於CNN網絡,作某個像素(pixel)的文本/非文本的分類預測,以及該像素的8個鄰域方向是否存在鏈接(link)的分類預測(即上圖中虛線框內的八個熱圖,表明八個方向的鏈接預測)。而後基於OpenCV的minAreaRect(最小外接矩形)這種基於連通域的操做,獲取不一樣大小的文本連通域,再進行噪聲濾除操做,最後經過「並查集」(disjoint-set data structure)並出最終的文本邊界框。oop

 

二、PixelLink網絡結構學習

PixelLink的網絡結構以下圖所示:大數據

 

PixelLink網絡結構的骨幹(backbone)採用VGG16做爲特徵提取器,將最後的全鏈接層fc六、fc7替換爲卷積層,特徵融合和像素預測的方式基於FPN思想(feature pyramid network,金字塔特徵網絡),即卷積層的尺寸依次減半,但卷積核的數量依次增倍,這種思想跟EAST模型的網絡結構很像(詳見文章:大話文字檢測經典模型EAST)。人工智能

該模型結構有兩個獨立的頭,一個用於文本/非文本預測(Text/non-text Prediction),另外一個用於鏈接預測(Link Prediction),這二者都使用了Softmax,輸出1x2=2通道(文本/非文本的分類)和8x2=16通道(8個鄰域方向是否有鏈接的分類)。

在論文中做者給出了兩種網絡結構:PixelLink+VGG16 2s和PixelLink+VGG16 4s 。其中conv2_2的feature map(特徵圖)大小爲原圖1/2,而conv3_3的feature map(特徵圖)大小爲原圖1/4,若是最後的輸出部分是從conv2_2中匯聚出來,則爲PixelLink+VGG16 2s,若是是從conv3_3中匯聚出來,則爲PixelLink+VGG16 4s。

 

三、PixelLink實現過程

(1)Pixel定義

Pixel(像素)分爲正像素(positive)、負像素(negative)。全部落在文本區域內的像素標記爲正像素(positive),文本區域之外的像素標記爲負像素(negative),多個文本交疊區域也標記爲負像素(negative)。

(2)Link定義

Link是由兩個Pixel雙向決定的,對於一個給定的像素以及其臨近的八個像素點,若是:

兩個像素都是正像素(positive),則它們之間的Link爲正鏈接(positive)

若是一個像素是正像素,另外一個是負像素,則它們之間的Link也爲正鏈接(positive)

若是兩個像素都是負像素,則它們之間的Link爲負鏈接(negative)

(3)實例分割

對於Pixel(像素)、Link(鏈接)的預測結果,經過設定兩個不一樣的閾值獲得pixel positive集合和link positive集合(如超過指定閾值,則判爲positive,不然爲negative),使用正鏈接將正像素分組在一塊兒,產生CCs(conected compoents,連通域)集合,集合中的每一個元素表明的就是文本實例,每一個CC就表示檢測到的文本實例,這就實現了文本的實例分割,以下圖:

(4)提取文本框

經過對CC(連通域)集合使用OpenCV的連通域方法minAreaRect得到最終的連通域,此時每一個連通域都有本身的最小外接矩形,最後使用disjoint-set(並查集)方法造成最終的文本框,並查集主要用於將具備某種關聯關係的集合進行合併的操做方法,以下圖對集合的合併處理:

從這一步能夠看出,文本邊界框是直接從實例分割得到的,並非經過位置迴歸得到的,這是跟其它檢測方法的區別。另外,對文本的方向沒有限制,也便可實現多角度的檢測。

(5)去除噪聲

因爲使用基於連通域的方法進行文本像素匯聚,該方法對噪聲比較敏感,最終會產生一些比較小的錯誤連通域,所以,經過對長度、寬度、面積、長寬比等信息,根據必定的閾值進行去除處理。具體方法是,選擇訓練數據集中排在99%位的做爲閾值,例如在IC15數據集中99%的文本實例短邊≥10像素,99%的文本域面積≥300像素,所以,將短邊小於10像素或面積小於300像素的看成錯誤連通域進行去除。

 

四、PixelLink檢測效果

基於IC15數據集的檢測效果,以下表所示:

能夠看出,PixelLink在召回率(R)、準確率(P)、F分值(F)都要比EAST、SegLink、CTPN等方法的效果要好

 

PixelLink的檢測效果,以下圖所示,支持多角度的文本檢測:

五、總結

(1)PixelLink採用純分割的思路,徹底沒有利用目標檢測的方法,放棄了採用邊界框迴歸的方法,而是進行實例分割,再直接生成邊界框。PixelLink所有轉化爲分類任務,這樣作的優點是訓練更容易學習,訓練速度更快,效果更好。

(2)PixelLink方法,只需對feature map(特徵圖)上的像素以及它相鄰的像素進行預測,即每一個神經元只負責檢測本身及其鄰域內的狀態,這就不須要大的感覺野就能把這些信息學到,對感覺野的要求少,所以也就更加容易學習,減小迭代次數。但也致使不能檢測字與字之間相隔太遠的文本(由於太遠了Link不到)。

(3)不須要採用預訓練模型,直接使用經過xavier(一種頗有效的神經網絡初始化方法)隨機初始化的VGG網絡,在訓練過程當中也不須要太多的數據,迭代次數也比較少。

(4)該方法適合於進行端到端的文字檢測,直接輸入圖片,而後獲得檢測結果。

 

歡迎關注本人的微信公衆號「大數據與人工智能Lab」(BigdataAILab),獲取更多信息

 

推薦相關閱讀

一、AI 實戰系列

二、大話深度學習系列

三、圖解 AI 系列

四、AI 雜談

五、大數據超詳細系列

相關文章
相關標籤/搜索