論文閱讀筆記三:R2CNN:Rotational Region CNN for Orientation Robust Scene Text Detection(CVPR2017)


      進行文本的檢測的學習,開始使用的是ctpn網絡,由於ctpn只能檢測水平的文字,而對場景圖片中傾斜的文本無法進行很好的檢測,故將網絡換為RRCNN(全稱如題)。小白一枚,這里就將RRCNN的論文拿來拜讀一下,也記錄一下自己閱讀過程中的收獲。

原英文論文網址:https://arxiv.org/abs/1706.09579

 

     在這篇論文中,作者提出了Rotational Region CNN(旋轉區域CNN?),據作者說可以檢測場景圖片中任意角度的文本。這個網絡是在Faster R-CNN的基礎上搭建的。整個過程大體分為三部分,首先是作者使用RPN(Region Prposal Network)區域提議網絡生成包圍不同方向文本的軸對齊邊界框。然后作者根據不同池化大小和連接特征提取出池化特征來同時預測文本/非文本的評分,軸對齊框和傾斜的最小區域框。最后,使用傾斜的非最大抑制(NMS)來獲得結果。作者認為場景文本面臨的挑戰有:場景文本有不同的大小,寬高比,字體樣式,光照,透視失真以及方向等。其中,方向信息對文本識別很重要,因此不同於普通的物體檢測,除了預測出軸對齊框邊界外還需要檢測文本的方向。

    傳統的文本檢測方法:基於滑窗或者是連接組件。目前是基於深度學習的方法,基於滑窗的方法是將多尺度窗口密集地移動通過圖像,然后將候選框分為文本/非文本,連接組件基於生成字符候選。傳統的文本檢測方法是基於自下而上的策略(字符檢測,文本行的構建以及文本行的分類)。

    本文文本檢測的流程:input images------>(RPN)產生包圍文本的框(proposals)----------->分類proposals通過不同池化大小的池化特征以增強軸對齊框及傾斜最小區域框。------->用傾斜NMS后期處理檢測候選框以獲得最終的檢測結果。

(上圖為過程圖截取自論文)

    前面作者提到過R2CNN是基於Faster-RCNN進行搭建的,那這里作者將Fast R-CNN修改為文本區域分類,強化和框位置坐標的預測,作者添加了一個小的anchor用於檢測小場景文本。並用傾斜的NMS來檢測候選框進行后處理。

    作者認為方向任意的文本檢測可以看作是一個多任務問題。解決方法的矛頭要指向預測是否為文本的一個分數值,還有軸對齊框以及由RPN生成的proposals傾斜最小區域框的預測這三大魔頭。。(⊙o⊙)?

    為了覆蓋更多的文本字符,作者對每一個proposal 用三種尺寸(7*7,11*3,3*11)的池化層進行ROIpoolings,提取的特征用於接下來的檢測。

    目標檢測有依賴於RPN的(R-CNN,SPPnet,Fast R-CNN,Raster CNN R-FCN)也有直接估計候選對象的(SSD,YOLO)。

   作者在Faster R-CNN中提出RPN,用於直接從卷積feature map 中生成高質量的proposals ,然后被改進用於Fast R-CNN進行分類。

   作者在本文中提到了目前文本檢測的深度學習的方法有:TextBoxes是一個具有單個深度神經網絡的end to end 的快速場景文本檢測器。DeepText通過Inception-RPN生成單詞的proposals,然后文本檢測網絡對每個單詞proposals 進行評分。FCRN(全卷機回歸網絡)利用合成圖像訓練場景文本檢測模型,上述這些方法都是生成軸對齊框不能解決文本的方向問題。CTPN是檢測固定寬度的垂直盒子,然后使用BLSTM捕獲順序信息,然后連接垂直盒子以獲得最終檢測框。CTPN擅長檢測水平方向的文本,貌似相比RRCNN略有遜色啊,>o<..基於完全卷積網絡用於文本檢測的方法的過程為:一,文本塊FCN的文本檢測,二,基於MSER的多向文本行候選的生成,三,文本行候選的分類,RRPN(基於Faster R-CNN的旋轉區域提議網絡)與RPN遙相呼應,也被提出來檢測任意方向的場景文本。RPN生成具有文本方向的傾斜proposals ,下面的分類和回歸是基於這個傾斜proposals的。

另外,SegLink提出通過檢測段落和連接來檢測具有特定方向的文本,變態的是,SegLink貌似適用於任意長度的文本行。

EAST目標是在自然場景中產生快速准確的文本檢測。DMPNet 設計用於檢測四邊形更緊密的文本。深度直接回歸被用於多方向的場景文本檢測。本文作者覺得RPN已經可以了,不需要生成傾斜的proposals(古語:殺雞焉用宰牛刀?)

接下來前方高能,首先放圖冷靜一下,(恬不知恥的說明:圖片從論文上摳的)

 

    作者認為傾斜的框可以覆蓋大部分文本區域,故將任意方向的場景文本檢測任務近似為檢測作者的方法中傾斜的最小區域矩形。

接下來的問題是傾斜的矩形該如何表示呢?常人首先能想到的就是角度了,但隨后就被作者否定了,是因為角度目標在某些特殊點中是不穩定的。。。作者還舉了個栗子--旋轉90度的矩形和-90度的矩形是極其相似的。很顯然的是他們的角度天壤之別,直接后果是使網絡很難學習和檢測 垂直文本。作者機智的提出了用順時針方向的前兩個點的坐標和邊界框的高度來表示傾斜的矩形。大體是下面圖(來源我就不說了。。)那個樣子的。

RPN大體如上,接下來就嘮嘮RRCNN吧,作者采用了兩階段的物體檢測策略,包括proposals 及其分類。RRCNN基於faster R-CNN。

首先RPN生成文本proposals,包含面向任意文本的軸對齊邊界框。然后對每個proposal,對卷積的feature map 執行不同尺寸大小(7*7,11*3,3*11)的池化操作,並將特征級聯從能用於接下來的分類與回歸。通過連接的特征和全連接層,可以預測文本/非文本的分數,軸對齊框和傾斜最小區域框,最后,對傾斜的框進行NMS處理從而得到檢測結果。

前面也提到了作者是用RPN生成的軸對齊框,這個框可以包圍任意方向文本,那它可行的原因是什么呢?作者從產生的軸對齊框中的文本方面進行了分析,框內的文本要么處於水平方向的,要么處於垂直方向的,要不然就是處於對角線方向。面對小場景文字,作者在RPN中利用較小的anchor比例來處理,采用兩種策略一個是將anchor比例改為小尺寸,並增加anchor的規模和使用,采用小尺寸的anchor有助於場景文本檢測。作者在RPN的 anchor縱橫比,正負樣本的定義等設置的和faster R-CNN相同。

faster R-CNN在每個RPN proposal 上通過大小為7*7的池化層在對應的feature map 上進行ROIpooling。接下來遇到一個很明顯的問題那就是

一些文本的寬度比他們的高度是大得多的,作者嘗試使用三種不同大小的ROIpooling來捕捉更多的文本特征。將這些feature 連接在一起以便進一步的檢測。作者增加了11*3和3*11尺寸的pooling,其中,3* 11的可以捕捉更多水平方向的特征,而11*3的相對應的可以捕捉更多垂直方向的文本特征。

下面給出的是一些類似於評價標准的東西,文本/非文本分數的回歸,軸對齊框及傾斜最小區域框的回歸。在RPN之后,將其生成的proposal 分為文本/非文本,增強包含任意方向的軸對齊框並預測傾斜邊界框。每個傾斜的框都有個相關的軸對齊的框,這里作者認為相對於傾斜框,軸對齊框相當於額外約束可以提高性能,事實如此。

下面說說NMS,NMS(非最大抑制)廣泛用於通過當前目標檢測的方法對檢測候選框進行后處理。在估計軸對齊邊界框和傾斜邊界框是,可以在軸對齊框上執行常規NMS,也可以在傾斜邊界框上執行傾斜NMS。在傾斜的計算下,IOU的計算被修改為兩個傾斜邊界的IOU。

Loss函數:

 作者說了,RPN的training loss 和faster R-CNN的相同。只介紹RRCNN有RPN生成的軸對齊框的損失函數。定義為文本/非文本的分類loss和框回歸loss.回歸loss包含兩個部分,包含任意方向的文本的軸對齊框,和傾斜最小區域框。形式如下,暈。。。。

文本標記為1,背景標記為0,p={p0,p1}代表由softmax 計算出的文本和背景類別的概率。Lcls(p,t)=-logpt是真實類別的對數損失。v=(vx,vy,vw,vh),是包含中心點坐標及其寬度和高度的真正軸對齊邊界框回歸的目標元組,v*為對應的標簽,u,u*依次對應傾斜的框。Lreg如下:

RRCNN的理論介紹就到此結束,下面給出一位中科院大佬的github項目進行實踐分析學習。

GitHub網址:https://github.com/yangxue0827/R2CNN_FPN_Tensorflow

2018-04-2516:28:54


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM