OCR系列——总体概述
最近參加了百度Paddle的動手學OCR課程,特此做一個學習總結。
1. 簡介
OCR(Optical Character Recognition,光學字符識別)是計算機視覺重要方向,傳統的OCR一般面向掃描文檔類對象,現在的OCR是指場景文字識別(Scene Text Recogntion,STR)主要面向自然場景。
2. 前沿算法
2.1 文本檢測
文本檢測是定位出輸入圖像中的文字區域。可以將文本檢測作為目標檢測中的一個特定場景,基于通用目標檢測算法進行改進適配,如TextBoxes基于SSD算法,CTPN是基于Faster RCNN算法。同時,由于文件檢測任務在文本的特殊性,衍生了許多專用的算法,例如,EAST、PSENet,DBNet等。
目前較為流行的文本檢測算法可以大致分為基于回歸和基于分割的兩大類文本檢測算法,也有一些算法將二者相結合。基于回歸的算法借鑒通用物體檢測算法,通過設定anchor回歸檢測框,或者直接做像素回歸,這類方法對規則形狀文本檢測效果較好,但是對不規則形狀的文本檢測效果會相對差一些,比如CTPN對水平文本的檢測效果較好,但對傾斜、彎曲文本的檢測效果較差,SegLink對長文本比較好,但對分布稀疏的文本效果較差;基于分割的算法引入了Mask-RCNN,這類算法在各種場景、對各種形狀文本的檢測效果都可以達到一個更高的水平,但缺點就是后處理一般會比較復雜,因此常常存在速度問題,并且無法解決重疊文本的檢測問題。
2.2 文本識別
文本識別是識別出圖像中的文字內容,一般輸入是來自文本檢測得到的文本框截出的圖像文字區域。文本識別一般可以根據識別文本形狀分為規則文本識別和不規則文本識別。規則文本主要指印刷字體、掃描文本等,文本大致處在水平線位置;不規則文本往往不在水平位置,存在彎曲、遮擋、模糊等問題。不規則文本場景具有很大的挑戰性,也是目前文本識別領域的主要研究方向。
- (1960s-2015):過分割+單字識別
連通域分析 ,尋找潛在的文字切分位置---->切分片段組合+集束搜索
- (2016-2021)文本行識別時代
單個模型識別整個文本行--->基于CTC解碼/分割/注意力額編碼-解碼結構/并行注意力解碼(四種方法)
規則文本識別的算法根據解碼方式的不同可以大致分為基于CTC和Sequence2Sequence兩種,將網絡學習到的序列特征 轉化為 最終的識別結果 的處理方式不同。基于CTC的算法以經典的CRNN為代表。
不規則文本的識別算法相比更為豐富,如STAR-Net等方法通過加入TPS等矯正模塊,將不規則文本矯正為規則的矩形后再進行識別;RARE等基于Attention的方法增強了對序列之間各部分相關性的關注;基于分割的方法將文本行的各字符作為獨立個體,相比與對整個文本行做矯正后識別,識別分割出的單個字符更加容易;此外,隨著近年來Transfomer的快速發展和在各類任務中的有效性驗證,也出現了一批基于Transformer的文本識別算法,這類方法利用transformer結構解決CNN在長依賴建模上的局限性問題,也取得了不錯的效果。
2.3 文檔結構化識別
有一些應用場景是獲取結構化信息,例如身份證、發票的信息抽取,表格的結構化識別等,可以采用OCR結果+后處理的方案。常用場景有
- 版面分析
版面分析(Layout Analysis)主要是對文檔圖像進行內容分類,類別一般可分為純文本、標題、表格、圖片等。
- 表格識別
表格識別(Table Recognition)的任務就是將文檔里的表格信息進行識別和轉換到excel文件中。
- 關鍵信息抽取
關鍵信息提取(Key Information Extraction,KIE)是Document VQA中的一個重要任務,主要從圖像中提取所需要的關鍵信息,如從身份證中提取出姓名和公民身份號碼信息,這類信息的種類往往在特定任務下是固定的,但是在不同任務間是不同的。
關鍵信息提取通常分為兩個子任務進行研究:
- SER: 語義實體識別 (Semantic Entity Recognition),對每一個檢測到的文本進行分類,如將其分為姓名,身份證。如下圖中的黑色框和紅色框。
- RE: 關系抽取 (Relation Extraction),對每一個檢測到的文本進行分類,如將其分為問題和的答案。然后對每一個問題找到對應的答案。如下圖中的紅色框和黑色框分別代表問題和答案,黃色線代表問題和答案之間的對應關系。
3. 細節
3.1. 語種和標注
英文:識別單個字符,共有36個字符
中文:識別單個漢字,有6623個常用漢字
單詞校正字典:將識別的結果進行遍歷,未在字典中發現,則返回較相近的結果。
3.2. 常見數據集
(1)合成數據集:Synth90k & Synth Text
(2)自然場景數據集:水平文本
(3)自然場景數據集:不規則文本
?4. 面臨的挑戰
- 算法層:?
- 應用層
5. 結論
該章節只是初步了解OCR的常見任務、數據集和面臨的問題,具體細節在后續博客中更新
總結
以上是生活随笔為你收集整理的OCR系列——总体概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络学习小记录53——TF2搭建孪生
- 下一篇: bind1nd\bind2nd