您當前的位置:首頁 > 體育

OCR文字識別技術總結(三)

作者:由 GoAI 發表于 體育時間:2022-04-09

導讀:在本系列前兩章內容中,主要介紹OCR的概念、發展及主流OCR技術介紹,本章將繼續介紹深度學習在OCR方法的應用。首先回顧第一章的內容,文中提到OCR識別過程,大部分識別流程包括文字檢測和文字識別部分,本章將對文字檢測部分進行詳細闡述。

本系列目錄:

1️⃣OCR系列第一章:OCR文字識別技術總結(一)

2️⃣OCR系列第二章:OCR文字識別技術總結(二)

3️⃣OCR系列第三章:OCR文字識別技術總結(三)

4️⃣OCR系列第四章:OCR文字識別技術總結(四)

5️⃣OCR系列第五章:OCR文字識別技術總結(五)

OCR文字識別方法發展

OCR文字識別技術總結(三)

1。文字檢測概念介紹

文字檢測任務是找出影象或影片中的文字位置。不同於目標檢測任務,目標檢測不僅要解決定位問題,還要解決目標分類問題。

文字在影象中的表現形式可以視為一種‘目標‘,通用的目標檢測的方法也適用於文字檢測,從任務本身上來看:

目標檢測:給定影象或者影片,找出目標的位置(box),並給出目標的類別;

OCR文字識別技術總結(三)

文字檢測:給定輸入影象或影片,找出文字區域,可以是單字元位置或者整個文字行位置;

OCR文字識別技術總結(三)

目標檢測和文字檢測同屬於“定位”問題。但是文字檢測無需對目標分類,並且文字形狀複雜多樣。

當前所說的文字檢測一般是自然場景文字檢測,其難點在於:

自然場景中文字具有多樣性:文字檢測受到文字顏色、大小、字型、形狀、方向、語言、以及文字長度的影響;

複雜的背景和干擾;文字檢測受到影象失真,模糊,低解析度,陰影,亮度等因素的影響;

文字密集甚至重疊會影響文字的檢測;

文字存在區域性一致性,文字行的一小部分,也可視為是獨立的文字;

文字檢測方法介紹

近些年來基於深度學習的文字檢測演算法層出不窮,這些方法大致可以分為兩類:

基於迴歸的文字檢測方法

基於分割的文字檢測方法

本節篩選了2017-2021年的常用文字檢測方法,按照如上兩類方法分類如下表格所示:

OCR文字識別技術總結(三)

圖4 文字檢測演算法

2。1 基於迴歸的文字檢測

基於迴歸文字檢測方法和目標檢測演算法的方法相似,文字檢測方法只有兩個類別,影象中的文字視為待檢測的目標,其餘部分視為背景。

2。1。1 水平文字檢測

早期基於深度學習的文字檢測演算法是從目標檢測的方法改進而來,支援水平文字檢測。比如Textbox演算法基於SSD演算法改進而來,CTPN根據二階段目標檢測Fast-RCNN演算法改進而來。 在TextBoxes[1]演算法根據一階段目標檢測器SSD調整,將預設文字框更改為適應文字方向和寬高比的規格的四邊形,提供了一種端對端訓練的文字檢測方法,並且無需複雜的後處理。

採用更大長寬比的預選框

卷積核從3x3變成了1x5,更適合長文字檢測

採用多尺度輸入

OCR文字識別技術總結(三)

圖5 textbox框架圖

CTPN[3]基於Fast-RCNN演算法,擴充套件RPN模組並且設計了基於CRNN的模組讓整個網路從卷積特徵中檢測到文字序列,二階段的方法透過ROI Pooling獲得了更準確的特徵定位。但是TextBoxes和CTPN只支援檢測橫向文字。

OCR文字識別技術總結(三)

圖6 CTPN框架圖

2。1。2 任意角度文字檢測

TextBoxes++[2]在TextBoxes基礎上進行改進,支援檢測任意角度的文字。從結構上來說,不同於TextBoxes,TextBoxes++針對多角度文字進行檢測,首先修改預選框的寬高比,調整寬高比aspect ratio為1、2、3、5、1/2、1/3、1/5。其次是將1∗51

51∗5的卷積核改為3∗53

53∗5,更好的學習傾斜文字的特徵;最後,TextBoxes++的輸出旋轉框的表示資訊。

OCR文字識別技術總結(三)

圖7 TextBoxes++框架圖

EAST[4]針對傾斜文字的定位問題,提出了two-stage的文字檢測方法,包含 FCN特徵提取和NMS部分。EAST提出了一種新的文字檢測pipline結構,可以端對端訓練並且支援檢測任意朝向的文字,並且具有結構簡單,效能高的特點。FCN支援輸出傾斜的矩形框和水平框,可以自由選擇輸出格式。

如果輸出檢測形狀為RBox,則輸出Box旋轉角度以及AABB文字形狀資訊,AABB表示到文字框上下左右邊的偏移。RBox可以旋轉矩形的文字。

如果輸出檢測框為四點框,則輸出的最後一個維度為8個數字,表示從四邊形的四個角頂點的位置偏移。該輸出方式可以預測不規則四邊形的文字。

考慮到FCN輸出的文字框是比較冗餘的,比如一個文字區域的鄰近的畫素生成的框重合度較高,但不是同一個文字生成的檢測框,重合度都很小,因此EAST提出先按行合併預測框,最後再把剩下的四邊形用原始的NMS篩選。

OCR文字識別技術總結(三)

圖8 EAST框架圖

MOST[15]提出TFAM模組動態的調整粗粒度的檢測結果的感受野,另外提出PA-NMS根據位置資訊合併可靠的檢測預測結果。此外,訓練中還提出 Instance-wise IoU 損失函式,用於平衡訓練,以處理不同尺度的文字例項。該方法可以和EAST方法結合,在檢測極端長寬比和不同尺度的文字有更好的檢測效果和效能。

OCR文字識別技術總結(三)

圖9 MOST框架圖

2。1。3 彎曲文字檢測

利用迴歸的方法解決彎曲文字的檢測問題,一個簡單的思路是用多點座標描述彎曲文字的邊界多邊形,然後直接預測多邊形的頂點座標。 CTD[6]提出了直接預測彎曲文字14個頂點的邊界多邊形,網路中利用Bi-LSTM[13]層以細化頂點的預測座標,實現了基於迴歸方法的彎曲文字檢測。

OCR文字識別技術總結(三)

圖10 CTD框架圖

LOMO[19]針對長文字和彎曲文字問題,提出迭代的最佳化文字定位特徵獲取更精細的文字定位,該方法包括三個部分,座標迴歸模組DR,迭代最佳化模組IRM以及任意形狀表達模組SEM。分別用於生成文字大致區域,迭代最佳化文字定位特徵,預測文字區域、文字中心線以及文字邊界。迭代的最佳化文字特徵可以更好的解決長文字定位問題以及獲得更精確的文字區域定位。

OCR文字識別技術總結(三)

圖11 LOMO框架圖

Contournet[18]基於提出對文字輪廓點建模獲取彎曲文字檢測框,該方法首先使用Adaptive-RPN獲取文字區域的proposal特徵,然後設計了局部正交紋理感知LOTM模組學習水平與豎直方向的紋理特徵,並用輪廓點表示,最後,透過同時考慮兩個正交方向上的特徵響應,利用Point Re-Scoring演算法可以有效地濾除強單向或弱正交啟用的預測,最終文字輪廓可以用一組高質量的輪廓點表示出來。

OCR文字識別技術總結(三)

圖12 Contournet框架圖

PCR[14]提出漸進式的座標迴歸處理彎曲文字檢測問題,總體分為三個階段,首先大致檢測到文字區域,獲得文字框,另外透過所設計的Contour Localization Mechanism預測文字最小包圍框的角點座標,然後透過疊加多個CLM模組和RCLM模組預測得到彎曲文字。該方法利用文字輪廓資訊聚合得到豐富的文字輪廓特徵表示,不僅能抑制冗餘的噪聲點對座標迴歸的影響,還能更精確的定位文字區域。

OCR文字識別技術總結(三)

圖13 PCR框架圖

2。2 基於分割的文字檢測

基於迴歸的方法雖然在文字檢測上取得了很好的效果,但是對解決彎曲文字往往難以得到平滑的文字包圍曲線,並且模型較為複雜不具備效能優勢。於是研究者們提出了基於影象分割的文字分割方法,先從畫素層面做分類,判別每一個畫素點是否屬於一個文字目標,得到文字區域的機率圖,通過後處理方式得到文字分割區域的包圍曲線。

OCR文字識別技術總結(三)

圖14 文字分割演算法示意

圖 此類方法通常是基於分割的方法實現文字檢測,基於分割的方法對不規則形狀的文字檢測有著天然的優勢。基於分割的文字檢測方法主體思想為,透過分割方法得到影象中文字區域,再利用opencv,polygon等後處理得到文字區域的最小包圍曲線。 Pixellink[7]採用分割的方法解決文字檢測問題,分割物件為文字區域,將同屬於一個文字行(單詞)中的畫素連結在一起來分割文字,直接從分割結果中提取文字邊界框,無需位置迴歸就能達到基於迴歸的文字檢測的效果。但是基於分割的方法存在一個問題,對於位置相近的文字,文字分割區域容易出現“粘連“問題。Wu, Yue等人[8]提出分割文字的同時,學習文字的邊界位置,用於更好的區分文字區域。另外Tian等人[9]提出將同一文字的畫素對映到對映空間,在對映空間中令統一文字的映射向量距離相近,不同文字的映射向量距離變遠。

OCR文字識別技術總結(三)

圖15 PixelLink框架圖

MSR[20]針對文字檢測的多尺度問題,提出提取相同影象的多個scale的特徵,然後將這些特徵融合並上取樣到原圖尺寸,網路最後預測文字中心區域、文字中心區域每個點到最近的邊界點的x座標偏移和y座標偏移,最終可以得到文字區域的輪廓座標集合。

OCR文字識別技術總結(三)

圖16 MSR框架圖

針對基於分割的文字演算法難以區分相鄰文字的問題,PSENet[10]提出漸進式的尺度擴張網路學習文字分割區域,預測不同收縮比例的文字區域,並逐個擴大檢測到的文字區域,該方法本質上是邊界學習方法的變體,可以有效解決任意形狀相鄰文字的檢測問題。

OCR文字識別技術總結(三)

圖17 PSENet框架

圖 假設用了PSENet後處理用了3個不同尺度的kernel,如上圖s1,s2,s3所示。首先,從最小kernel s1開始,計算文字分割區域的連通域,得到(b),然後,對連通域沿著上下左右做尺度擴張,對於擴張區域屬於s2但不屬於s1的畫素,進行歸類,遇到衝突點時,採用“先到先得”原則,重複尺度擴張的操作,最終可以得到不同文字行的獨立的分割區域。 Seglink++[17]針對彎曲文字和密集文字問題,提出了一種文字塊單元之間的吸引關係和排斥關係的表徵,然後設計了一種最小生成樹演算法進行單元組合得到最終的文字檢測框,並提出instance-aware 損失函式使Seglink++方法可以端對端訓練。

OCR文字識別技術總結(三)

圖18 Seglink++框架

圖 雖然分割方法解決了彎曲文字的檢測問題,但是複雜的後處理邏輯以及預測速度也是需要最佳化的目標。 PAN[11]針對文字檢測預測速度慢的問題,從網路設計和後處理方面進行改進,提升演算法效能。首先,PAN使用了輕量級的ResNet18作為Backbone,另外設計了輕量級的特徵增強模組FPEM和特徵融合模組FFM增強Backbone提取的特徵。在後處理方面,採用畫素聚類方法,沿著預測的文字中心(kernel)四周合併與kernel的距離小於閾值d的畫素。PAN保證高精度的同時具有更快的預測速度。

OCR文字識別技術總結(三)

圖19 PAN框架圖

DBNet[12]針對基於分割的方法需要使用閾值進行二值化處理而導致後處理耗時的問題,提出了可學習閾值並巧妙地設計了一個近似於階躍函式的二值化函式,使得分割網路在訓練的時候能端對端的學習文字分割的閾值。自動調節閾值不僅帶來精度的提升,同時簡化了後處理,提高了文字檢測的效能。

OCR文字識別技術總結(三)

圖20 DB框架圖

FCENet[16]提出將文字包圍曲線用傅立葉變換的引數表示,由於傅立葉係數表示在理論上可以擬合任意的封閉曲線,透過設計合適的模型預測基於傅立葉變換的任意形狀文字包圍框表示,從而實現了自然場景文字檢測中對於高度彎曲文字例項的檢測精度的提升。

OCR文字識別技術總結(三)

圖21 FCENet框架圖

後續我會繼續完善此部分,希望大家互相交流指正。

本文參考文章:

https://

aistudio。baidu。com/aist

udio/projectdetail/3734901

標簽: 文字  檢測  分割  框架圖  方法