參考:
https://zhuanlan.zhihu.com/p/37363942
https://zhuanlan.zhihu.com/p/34757009
https://zhuanlan.zhihu.com/p/31426458 【 Faster RCNN 非常詳盡】
對於理解RNN/LSTM首先推薦閱讀以下2篇文章,里面有詳細的公式推導:
簡介
文章基本信息
論文題目:Detecting Text in Natural Image with Connectionist Text Proposal Network,簡稱CTPN.該文章是ECCV2016喬宇老師的文章
論文地址:https://arxiv.org/pdf/1609.03605.pdf
代碼實現:https://github.com/tianzhi0549/CTPN(作者的caffe實現),
https://github.com/eragonruan/text-detection-ctpn(其他人tensorflow實現)
作者提供的caffe實現沒有訓練代碼,不過訓練代碼可以參考faster-rcnn的訓練代碼
文本檢測概述
文本檢測可以看成特殊的目標檢測,但它有別於通用目標檢測.在通用目標檢測中,每個目標都有定義好的邊界框,檢測出的bbox與當前目標的groundtruth重疊率大於0.5就表示該檢測結果正確.
文本檢測中正確檢出需要覆蓋整個文本長度,且評判的標准不同於通用目標檢測,具體的評判方法參見(ICDAR 2017 RobustReading Competition).所以通用的目標檢測方法並不適用文本檢測。
原始CTPN只檢測橫向排列的文字。CTPN結構與Faster R-CNN基本類似,但是加入了LSTM層。假設輸入
Images:
- 首先VGG提取特征,獲得大小為
的conv5 feature map。 - 之后在conv5上做
的滑動窗口,即每個點都結合周圍
區域特征獲得一個長度為
的特征向量。輸出
的feature map,該特征顯然只有CNN學習到的空間特征。 - 再將這個的feature map每一行都作為一個
的數據流,輸入Bi-directional LSTM(雙向LSTM),學習每一行的sequence feature。經過reshape后最終輸出
特征,既包含空間特征,也包含了LSTM學習到的序列特征。 - 再經過“FC”卷積層,變為
的特征 - 最后經過類似Faster R-CNN的RPN網絡,獲得text proposals,如圖2-b。

圖2 CTPN網絡結構
-
更具體的網絡結構,請使用netscope查看CTPN的deploy.prototxt網絡配置文件。
接下來,文章圍繞下面三個問題展開:
- 為何使用BLSTM
- 如何通過FC層輸出產生圖2-b中的Text proposals
- 如何通過Text proposals確定最終的文本位置,即文本線構造算法
回答這三個問題,基本原理就了解了。感謝作者,寫的很詳細。
詳見知乎:https://zhuanlan.zhihu.com/p/34757009
