
點擊上方「藍字」關注咱們算法
背景介紹微信
文本檢測網絡
1.1 CTPN 的思路app
1.2 CTPN 的框架框架
(1)使用 VGG16 做爲 base net 提取深度特徵,獲得 conv5_3(VGG 第 5 個 block 的第三個卷積層)的特徵做爲特徵圖,大小是 C×H×W。ide
(2)在上述的特徵圖上使用大小爲 3×3 的滑動窗進行滑動,每一個窗口都能獲得一個長度爲 3×3×C 的特徵向量,輸出 9C×H×W 的特徵圖。其中每一個滑動窗口中心都會預測 k 個 anchor 的偏移值(anchor 可理解爲上文提到文本小片,寬度固定爲 16)。學習
(3)將上一步獲得的特徵輸入到 256 的 BLSTM 中,獲得長度爲 H×W×256 的輸出。flex
(4)將 BLSTM 的結果輸入到 512 的 FC(Fully Connected layer,全鏈接層),獲得 512×H×W 的結果。優化
(5)將 FC 特徵輸入到三個分類或者回歸層中。三個結果的含義:編碼
2k vertical coordinate(迴歸):k 個 anchor 的 y 座標/高度偏移值;
2k 個 score(分類):k 個 anchor 爲文字/非文字的分數;
k 個 side-refinement(迴歸):每一個 anchor 的水平偏移值,用於精修文本行的兩個端點。
(6)使用 NMS(非極大值抑制算法)來濾除多餘的 anchor。
(7)使用基於圖的文本行構造算法,將獲得細長矩形合併成文本行。
2.1 PixelLink 的思路
2.2 PixelLink 的框架
第一部分:網絡結構
(1)PixelLink 的主幹網絡基於 CNN,採用 VGG16 做爲特徵提取器,將最後兩個全鏈接層改爲卷積層。
(2)提取不一樣層的特徵圖,採用自頂向下的方法進行融合,融合操做包括先向上採樣,而後再進行 Add 操做。特徵融合的方式基於 FPN(feature pyramid network,金字塔特徵網絡),即卷積層的尺寸依次減半,但卷積核的數量依次增倍。
(3)輸入到 2 個分類層中進行預測:
文本/非文本預測,輸出 1x2=2 通道(文本/非文本);
鏈接預測,輸出 8x2=16 通道(8 個鄰域方向是否有鏈接)。
第二部分:實例分割並提取文本
(1)對於 Pixel(像素)、Link(鏈接)的預測結果,經過設定兩個不一樣的閾值獲得 pixel positive 集合和 link positive 集合。
(2)根據 link positive 將 pixel positive 進行鏈接,獲得 CCs(conected compoents,連通域)集合,集合中的每一個元素表明的就是文本實例。鏈接的規則採用的是 Disjoint set data structure(並查集)的方法。
(3)經過對上一步獲得的 CCs(連通域)集合使用 OpenCV 的 minAreaRect (最小外接矩形)提取不一樣大小的文本的外接矩形框。
(4)使用 disjoint-set(並查集)方法造成文本框。
(5)利用長度、寬度、面積、長寬比等信息,根據必定的閾值過濾上一步的文本框,去除噪聲。
2.3 總結
(1)CTPN:因爲加入 BLSTM,對水平文字檢測效果很是好;因爲框架限制,在其它方向的檢測效果相對較差。採用邊界框迴歸的方法,訓練速度較慢。
(2)PixelLink:放棄邊框迴歸,所有轉化爲分類任務,經過實例分割生成邊界框。訓練速度更快,效果更好。
文本識別
1.1 CRNN 的思路
1.2 CRNN 的框架
(1)卷積層:將圖像輸入到 CNN 卷積層,獲得特徵圖。
(2)循環層:在上一步獲得的特徵圖上按照必定的寬度從左到右生成特徵序列,輸入到循環層。循環層由一個 BLSTM 循環神經網絡構成,預測每一個特徵序列對應的字符結果。
(3)轉錄層:利用 CTC 模型,去掉上一步預測的結果中的空字符、重複字符並進行整合,解決字符對齊問題,最後獲得輸出結果。
總結
參考書籍/文章:
1.綜述部分:
《深度實踐OCR——基於深度學習的文字識別》,劉樹春,賀盼,馬建奇,王佳軍等著
https://zhuanlan.zhihu.com/p/52335619
2.CTPN:
https://arxiv.org/pdf/1609.03605.pdf(論文原文:Detecting Text in Natural Image with Connectionist Text Proposal Network)
https://my.oschina.net/u/876354/blog/3047851
https://zhuanlan.zhihu.com/p/34757009
https://www.jianshu.com/p/109231be4a24
3.PixelLink
https://arxiv.org/pdf/1801.01315.pdf(論文原文:PixelLink: Detecting Scene Text via Instance Segmentation)
https://my.oschina.net/u/876354/blog/3056318
https://zhuanlan.zhihu.com/p/38171172
https://blog.csdn.net/qq_14845119/article/details/80953555
4.CRNN
https://arxiv.org/pdf/1507.05717v1.pdf(論文原文:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
https://zhuanlan.zhihu.com/p/43534801
https://blog.csdn.net/imPlock/article/details/93143874



猜你喜歡
本文分享自微信公衆號 - 金科優源匯(jkyyh2020)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。