R2CNN 算法笔记
論文:R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection
論文鏈接:https://arxiv.org/abs/1706.09579
這篇文章提出了R2CNN(Rotational Region CNN)算法解決旋轉文本的檢測。
Figure2是R2CNN算法的整體結構,主要是在Faster RCNN算法的基礎上做了一些修改:1、ROI Pooling時的尺寸除了7*7外,還有兩種長寬不一致的尺寸:3*11和11*3,這種設置的用意也非常明顯,就是為了解決水平和豎直長文本的檢測。然后對于提取到的ROI特征做cancat操作進行融合作為后續預測支路的輸入。2、預測輸出有3個支路,第一個支路是有無文本的二分類,這個和目標檢測算法中的目標分類類似。第二個支路是水平框(axis-aligned box)的預測,這個和目標檢測算法中的框預測一樣。第三個支路時傾斜框(inclined box)的預測,這部分是這篇文章的亮點,而且該支路后面跟一個NMS進行處理得到最后結果。至于RPN網絡部分輸出的ROI則和常規目標檢測中RPN網絡輸出的ROI一樣,都是水平方向。另外這篇文章其實還增加了一些小尺寸的anchor提升對小文本的檢測效果。所以R2CNN算法最后既有常規的水平預測框輸出,也有傾斜框輸出,這兩種框都是基于RPN網絡輸出的ROI得到的,雖然傾斜框支路也能預測水平框,但是作者認為第二個支路的存在對最后結果幫助較大。
因此R2CNN算法整體上的處理流程可以用Figure1所示。(a)是輸入圖像。(b)是RPN網絡得到的ROI,這些ROI區域都是常規的水平框。(c)是R2CNN算法預測得到的水平預測框(第二個支路)和傾斜預測框(第三個支路)的結果。(d)是經過傾斜框的NMS算法后得到的最終輸出結果。
Figure3是關于這篇文章用的傾斜框定義。框其實表示方式非常多,比如可以用Figure3(a)所示的4個點坐標來表示一個任意形狀的四邊形,這種表示方式其實就覆蓋了水平框和傾斜框,而且框的形狀不僅限于矩形,而是延伸至四邊形。但這篇文章不采用任意形狀的四邊形預測方式,而認為傾斜矩形框足夠覆蓋待檢測的文本,因此這篇文章所提到的傾斜框是指傾斜的矩形框,為了描述簡單,后續都用傾斜框代替傾斜的矩形框。傾斜框的定義也有好幾種,比如可以用水平框+旋轉角度來表示一個傾斜框,這種表示方式在旋轉目標檢測算法中也比較常見,比如east算法。但是這篇文章認為訓練旋轉角度時在有些角度情況下模型不是很穩定,主要是因為一些特殊的相似角度在表示上有可能差別較大,比如90度和-90度,所以考慮采用Figure3(b)(c)這種用兩個相鄰點坐標和高來定義一個傾斜框。
Figure4是關于傾斜框的NMS算法。(a)是R2CNN算法的水平框和傾斜框預測結果合并在一張圖上的結果。(b)是采用水平框的NMS算法處理(a)中的預測框后得到的結果,可以看到有部分正確的文本框被剔除掉(紅色虛線)。(c)是采用傾斜框的NMS算法處理(a)中的預測框后得到的結果,可以看到結果比較好。基于傾斜框的NMS算法和傳統的基于水平矩形框的NMS算法差別不大,只不過計算對象換成兩個傾斜框,這個操作還是比較重要的。
損失函數方面從Figure2的網絡結構圖也可以看出一共包含3個部分:1、有無文本的二分類損失Lcls。2、水平框的回歸損失Lreg(vi,vi*)。3、傾斜框的回歸損失Lreg(ui,ui*)。后面兩部分都是采用目標檢測中常用的smooth L1損失函數,所以損失函數方面沒有太大的改動。
實驗結果:
Table1是在IDCAR 2015數據集上不同參數配置時R2CNN測試結果。
Table2是R2CNN算法和其他算法在IDCAR2015數據集上的對比結果。
Table3是R2CNN算法和其他算法在IDCAR2013數據集上的對比結果。
總結
以上是生活随笔為你收集整理的R2CNN 算法笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 线程安全的单例模式
- 下一篇: linux Swap交换分区概念