【转载】OCR简介
轉載學習:https://www.jianshu.com/p/921c1da740b5
OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。
從整體上來說,OCR一般分為兩個大步驟:圖像處理以及文字識別。
一、圖像處理
識別文字前,我們要對原始圖片進行預處理,以便后續的特征提取和學習。這個過程通常包含:
灰度化、二值化、降噪、傾斜矯正、文字切分等子步驟。
每一個步驟都涉及了不同的算法。
我們以下面這張原始圖片為例,進行每個步驟的講解。
原始圖片?
1、灰度化
灰度化(gray processing),在RGB模型中,如果R=G=B時,則彩色表示一種灰度顏色,其中R=G=B的值叫灰度值,因此,灰度圖像每個像素只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。
說通俗一點,就是將一張彩色圖片變為黑白圖片。
灰度化灰度化一般有分量法、最大值法、平均值法、加權平均法四種方法對彩色圖像進行灰度化。
?
2、二值化
一幅圖像包括目標物體、背景還有噪聲,要想從多值的數字圖像中直接提取出目標物體,最常用的方法就是設定一個閾值T,用T將圖像的數據分成兩部分:大于T的像素群和小于T的像素群。
這是研究灰度變換的最特殊的方法,稱為圖像的二值化(binaryzation)。
二值化的黑白圖片不包含灰色,只有純白和純黑兩種顏色。
二值化二值化里最重要的就是閾值的選取,一般分為固定閾值和自適應閾值。 比較常用的二值化方法則有:雙峰法、P參數法、迭代法和OTSU法等。
?
3、圖像降噪
現實中的數字圖像在數字化和傳輸過程中常受到成像設備與外部環境噪聲干擾等影響,稱為含噪圖像或噪聲圖像。
減少數字圖像中噪聲的過程稱為圖像降噪(Image Denoising)。
圖像中噪聲的來源有許多種,這些噪聲來源于圖像采集、傳輸、壓縮等各個方面。噪聲的種類也各不相同,比如椒鹽噪聲,高斯噪聲等,針對不同的噪聲有不同的處理算法。
在上一步得到的圖像中可以看到很多零星的小黑點,這就是圖像中的噪聲,會極大干擾到我們程序對于圖片的切割和識別,因此我們需要降噪處理。降噪在這個階段非常重要,降噪算法的好壞對特征提取的影響很大。
圖像降噪圖像降噪的方法一般有均值濾波器、自適應維納濾波器、中值濾波器、形態學噪聲濾除器、小波去噪等。
?
4、傾斜矯正
對于用戶而言,拍照的時候不可能絕對的水平,所以,我們需要通過程序將圖像做旋轉處理,來找一個認為最可能水平的位置,這樣切出來的圖,才有可能是最好的一個效果。
傾斜矯正最常用的方法是霍夫變換,其原理是將圖片進行膨脹處理,將斷續的文字連成一條直線,便于直線檢測。計算出直線的角度后就可以利用旋轉算法,將傾斜圖片矯正到水平位置。
?
5、文字切分
對于一段多行文本來講,文字切分包含了行切分與字符切分兩個步驟,傾斜矯正是文字切分的前提。
我們將傾斜矯正后的文字投影到 Y軸,并將所有值累加,這樣就能得到一個在y軸上的直方圖。
圖片在Y軸的投影直方圖?
直方圖的谷底就是背景,峰值則是前景(文字)所在的區域。于是我們就將每行文字的位置給識別出來了。
行切分?
字符切分和行切分類似,只是這次我們要將每行文字投影到 X軸。
但要注意的是,同一行的兩個字符往往挨的比較緊,有些時候會出現垂直方向上的重疊,投影的時候將他們認為是一個字符,從而造成切割的時候出錯(多出現在英文字符);也有些時候同一個字符的左右結構在X軸的投影存在一個小間隙,切割的時候誤把一個字符切分為兩個字符(多出現在中文字符)。
所以相較于行切分,字符切分更難。
對于這種情況,我們可以預先設定一個字符寬度的期望值,切出的字符如果投影超出期望值太大,則認為是兩個字符;
如果遠遠小于這個期望值,則忽略這個間隙,把間隙左右的“字符”合成一個字符來識別。
字符切分?
?
二、文字識別
預處理完畢后,就到了文字識別的階段。這個階段會涉及一些人工智能方面的知識,比較抽象,沒法用圖片表達。
?
1、特征提取和降維
特征是用來識別文字的關鍵信息,每個不同的文字都能通過特征來和其他文字進行區分。對于數字和英文字母來說,這個特征提取是比較容易的,總共就 10 + 26 x 2 = 52 個字符,而且都是小字符集。對于漢字來說,特征提取的難度就比較大了,因為首先漢字是大字符集;其次國標中光是最常用的第一級漢字就有3755個;最后漢字結構復雜,形近字多,特征維度就比較大。
在確定了使用何種特征后,還有可能要進行特征降維,這種情況下,如果特征的維數太高,分類器的效率會受到很大的影響,為了提高識別速率,往往就要進行降維,這個過程也很重要,既要降低特征維數,又得使得減少維數后的特征向量還保留了足夠的信息量(以區分不同的文字)。
?
2、分類器設計、訓練
對一個文字圖像,提取出特征,丟給分類器,分類器就對其進行分類,告訴你這個特征該識別成哪個文字。
分類器的設計就是我們的任務。分類器的設計方法一般有:模板匹配法、判別函數法、神經網絡分類法、基于規則推理法等,這里不展開敘述。在進行實際識別前,往往還要對分類器進行訓練,這是一個監督學習的過程。成熟的分類器也有很多,有 SVM,CNN 等。
?
3、后處理
其實就是對于分類器的分類結果進行優化,這一般就要涉及自然語言理解的范疇了。
首先是形近字的處理:舉個例子,“分”和“兮”形近,但是如果遇到“分數”這個詞語,就不應該識別為“兮數”,因為“分數”才是一個正常詞語。這需要通過語言模型來進行糾正。
其次是對于文字排版的處理:比如一些書籍是分左右兩欄的,同一行的左右兩欄不屬于同一句話,不存在任何語法上的聯系。如果按照行切割,就會把左行的末尾和右行的開頭連在一起,這是我們不希望看到的,這樣的情況需要進行特殊處理。
?
三、應用場景
?
1、數字原生類
淘寶商品圖是最具有代表性的數字原生類文字圖。?
特點:
- 最復雜多樣:各種字體、背景、排列、組合等(MTWI挑戰賽-最大的OCR競賽)。?
- 最有價值:商品信息載體?
- 圖片量最大:千億圖片,每日不停更新。
?
2、文檔類
文檔類OCR需求非常廣,涉及各種公務場景。?
特點:
- 100%識別率:人的輸入準確率為98%,探索AI知識的極限;
- 產品易用性:完善的功能,貼近業務需求;
- 商業應用:文檔類商業成熟。?
?
3、拍照表單類:
拍照表單類OCR價值非常大,非常有挑戰性。?
特點:
- 場景&數據:數據具有隱私性,典型應用場景沉淀技術能力;
- 產品通用性:專家知識+模板=文本理解,一套方案解決上百種類型。
- 商業價值:和行業場景深度接入,AI能力改善行業數據流程。(提供定制的拍照表格識別和結構化云服務)?
4、自然場景類:
OCR學術研究的重點方向。?
特點:
- 數據:無具體數據類型定義,比如街拍數據;
- 技術難點:不確定性,復雜環境干擾本質難點是定位和識別;
- 商業價值:市場潛力巨大,如:車牌識別、攝像監控、自動駕駛。(技術能力領先,行業落地中)
?
【轉載學習,別無他用】
總結
- 上一篇: 【求推荐】优化SAP使用效率的RPA工具
- 下一篇: 【学习笔记】node.js基础介绍