[騰訊數平精準推薦 | OCR 技術之檢測篇](https://zhuanlan.zhihu.com/p/34579102)
騰訊數平精準推薦主要做實時精準推薦,海量大數據分析挖掘,自研的基于深度在線點擊率預估算法及全流程實時推薦系統,效果很好。
可以借助于廣告圖片中的文本識別加深對廣告的理解。
OCR指的是對圖像進行分析處理,獲得里面的文字。可以在場景圖像文字識別、文檔圖像識別、卡證識別、票據識別里面應用。
所謂場景文字識別,指的是不需要對特殊場景進行定制,可以識別任意場景圖片的文字。相比于傳統OCR,場景圖片的文本檢測與識別面臨著背景干擾,文字模糊與退化,不可預測的光照,字體多樣性、垂直文本,傾斜文本等
主要步驟為:
* 對文字區域定位,也就是找到詞或者文本行的邊界框
* 對文字進行識別
## 文本檢測技術
由于光照的多變性以及字體的不可預測性,準確定位文字的位置比較麻煩。傳統的檢測方法主要有基于連通域以及基于滑動窗口,2014年之后,基于深度學習的方法逐漸成為主流。
### 基于連通域的方法
文字一般是連續出現的,也就是說圖像中的文字可以看做一個連通域。
首先可以將圖片所有的連通域都提取出來,這些連通域既有文字連通域,又有背景連通域。
那么下面就需要根據分類器或者啟發式規則判斷提取連通域到底文字的還是背景 的

### 基于滑動窗口
如果把圖片里面的文字看作特殊的目標,那么可以使用目標檢測的方法來定位文字的位置。
* 首先從每一個滑動窗口提取若干特征
* 然后將提取的特征送入分類器來判定當前的滑動窗口是否包含文字
* 最后需要通過二值化來精確定位場景文本的位置

### 基于深度學習
基于深度學習的文本檢測方法利用更多的數據去擬合更復雜的模型。
最廣泛的是基于Region Proposal 的方法,或者說基于圖像分隔的方法。
## 數平精準推薦文本檢測技術
### 基于 Rotation-RPN 的文本檢測方法
在基于深度卷積網絡的物體檢測框架中,每一層卷積相當于一層濾波器,多層濾波器的串聯可以使最有效的特征被傳遞到最后,再根據文字目標與物體目標的差異,針對性地改進檢測任務的實現機制,能夠獲得良好的文本檢測效果
經典的 Faster RCNN 框架是針對通用物體檢測而設計的,但在文本檢測這一比較特殊的應用中,則有較多不太一樣的地方
Faster RCNN 中 Anchor 的設置并不適合文本檢測任務,而是針對物體檢測任務來設計的,需要調節;
另外,Anchor 為正矩形,而文字存在傾斜畸變等,如果用正矩形檢測,得到的文本檢測結果無法滿足后續對文字進行識別的要求。
數平團隊研發了一種用于任意方向文本的端到端文本檢測方法

主要包括三部分:基礎卷積網絡、Rotation-RPN 網絡、Rotation-ROI-Pooling
* 圖像中的文字并非都是水平的,所以需要把角度信息融入到檢測框架中。
* 尺度問題:設定了不同尺寸的Propssal,融合不同尺度卷積特征,用于檢測不同尺度的文本;
* 旋轉感興趣區域(RRoI)池化層,可以將任意方向、任意寬高比投影到特定大小的特征圖,
* 傳統的非極大值抑制(NMS)只能處理軸對齊的候選框
### 基于聯結文本建議網絡的文本檢測方法
與一般物體檢測不同的是,文本是一個 Sequence(字符、字符的一部分、多字符組成的一個 Sequence)
通過在卷積網絡的特征圖上提取 Anchors,并計算每個 Anchor 的得分, 并在計算得分的過程中,綜合利用上下文信息、每行的文本序列特性,采用 RNN 進行建模以判斷文字的得分

我們先檢測文本區域,再找出文本行,獲得了相比傳統檢測方法更好的結果。
通過 CNN 提取深度特征,并結合 RNN 進行序列學習,能夠大幅提高檢測精度,尤其對于長文本(水平及具有一定傾斜角度的長文本)的檢測。
### 基于全卷積網絡的文本檢測
基于全卷積網絡(Fully Convolutional Network,FCN):同時使用分割(Segmentation)和邊界框回歸(Bounding Box Regression)的方式對場景文字進行檢測,直接產生單詞或文本行級別的預測(旋轉矩形或任意四邊形),通過非極大值抑制產生最終結果。

文本檢測網絡產生兩種輸出:
* Score Map
* 文本邊界框的回歸結果(回歸目標為矩形時是 5 自由度的坐標和角度、回歸任意四邊形時是 8 自由度的坐標)。
其中,分數圖的像素值在 [0,1],代表了在同樣的位置預測的幾何尺寸的置信度, 分數超過預定義閾值的幾何形狀被認為是有效的結果預測,最后通過非極大值抵制產生最終文本檢測結果。