日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]tesseract OCR Engine overview字符识别学习

發布時間:2024/8/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]tesseract OCR Engine overview字符识别学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://blog.csdn.net/viewcode/article/details/7790065

?

正文:

原文:?An Overview of the Tesseract OCR Engine?

下載地址http://code.google.com/p/tesseract-ocr/wiki/Documentation

?

Tesseract的識別步驟大致如下:

1. 連通區域分析;

2. 檢測出字符區域區域(輪廓外形),以及子輪廓;

3. 由字符輪廓,得出文本行,以及通過空格識別出單詞,通過字符單元分割出單個字符,而對百分號的文本(Proportional text)通過fuzzy空格來分割為單詞;

4. 每個單詞進行分析,采用自適應分類器,分類器有學習能力,先分析的且滿足條件的字母也作為訓練樣本,所以后面的字符(比如頁尾)的字符識別更精確;此時,頁首的字符識別比較吃虧,所以tesseract會對整頁的識別不太好的字符,再次進行識別。

5.最后,識別含糊不清的空格,及用其他方法,如由筆畫高度(x-height),識別小寫字母的文本。

?

small-cap:小寫字母?

?

利用第四個步驟的特性,對單個字符識別,選用能識別的比較好的字符放在頁首,將待識別的字符放在頁尾,是否能提高識別率?待測試...

-------------------

1. line and word finding

a. 假定文本區域能大致確定,將跨行大寫字母及縱向粘連一起的字符過濾掉,可以利用字符的高度信息,選取所有字符的中值高度

b. 對字符的x坐標排序,利用坐標擬合直線,擬合方法:中位數最小方差擬合(least median of squares fit)

c. 進一步,擬合文本行的形狀,利用四次多項式,將文本行看成螺線形,采用最小方差擬合

d. 檢測出等距文本(fixed pitch text),對粘連的文本進行分割(chopping)

e. 對非等距字體如百分號,斜體等問題,利用中線、基準線之間的空白大小,來分割字符

Drop-caps: 段落的首個字母,大寫且跨越兩行。

vertical touching character:縱向粘連一起的字符。

Proportional text:含百分號的文本

2. word recognition

a. 分割粘連的字符,將凹進去的輪廓點作為備選分割點,分割后,進行識別,如果都失敗,就認為字符破損不全,修補字符

b. 對破碎的字符,利用A*算法搜索最優的字符組合,直到達到滿意的識別結果

?

3.?Static Character Classifier

特征

a. 拓撲特征:與字體及大小無關,但問題是(引用文章看不到)?

b.?將字符近似為多邊形作為特征:對破碎不連通的字符無效

c. 突破性方案:訓練階段的特征與識別的特征可以不盡相同。在訓練階段,將近似多邊形作為特征,而在識別階段,抽取字符的輪廓特征并歸一化,然后將訓練集中的原型特征再與之,進行多對一的方式匹配

The features extracted from the unknown:待識別字符的特征,3維數據(x, y坐標,角度),每個字符一般有50-100個特征

the prototype features:原型特征(訓練集中的字符特征),4維數據(x, y坐標,角度,長度)一般有10-20個特征

?

分類,分為兩個步驟:

a. 粗分,多個特征,將每個特征相近的字符列舉出來

b. 細分,對相近的字符,用特征距離進行細分

?

訓練數據

94個字符,8種大小,4種字體(正常,粗體,斜體,斜粗體),每種20個樣本,共60160個樣本。

? ??

4. 語法分析

訓練集中有最常用的高頻詞,字典中的常用詞,常用數字,常用大寫、小寫。

將分割出的、待識別的詞與這些詞進行比較計算,算法采用加權最小距離。

問題:不同的分割,會識別出不同的結果。兩種結果都有可能,原因在于分割的不確定。用兩個指標進行量化,一個是confidence,將未知字符到原型的歸一化距離為指標;第二是將未知字符的輪廓長度(歸一化后的)作為指標。

?

5.?Adaptive Classifier 自適應分類器

由于靜態分類器涉及到多種字體(generalizing to any kind of font),其區分相近字符、字符與非字符的能力被削弱。此時,由于每頁文檔內的字符的個數有限,利用靜態分類器的結果可以訓練出對字體更敏感的自適應分類器,可以提高分類能力。

tesseract不用模板分類器,但使用相同的特征和分類作為靜態分類器(uses the same features and classifier as the static?classifier. 不解?)。靜態與自適應的區別,除了訓練集外,還有自適應分類器會將一行字符的基線(baseline)/x-高度(小寫字母x的高度) 歸一化。 歸一化后,很容易區分字母大小寫及噪聲;而靜態分類器僅利用字符歸一化的一階矩確定位置,二階矩確定字符大小。

將字符的距 歸一化最大的好處是 去除 高寬比(?aspect ratio?)和字體筆畫寬度(stroke width)的影響,且使上標、下標的區分簡單。但需要額外的分類特征來區分字母大小寫。

(兩種歸一化:基線/x行高的歸一化,單個字符距的歸一化)

tesseract還有學習能力,一般來說,整頁的文章的識別率要比單個字符的識別率要高,而且速度要比單個字符識別(累加時間)要好。

?

----------------------

在tesseract源碼里,tesseract默認選取的特征是 bmp,分類器是Convolutional Neural Net classifier,即可演化的神經網絡分類器(每一個結果都作為神經網絡的輸入,能提供反饋)。\tesseract_src\cube\conv_net_classifier.h 是分類器的描述。

不僅如此,tesseract還提供了Hybrid Neural Net Char Classifier分類器,使用Hybrid特征數據。

\tesseract_src\cube\classifier_factory.cpp

\tesseract_src\ccmain\cube_reco_context.cpp

里包含了tesseract分類器的實現。

?

文章比較拗口,英語功底不夠,后面慢慢理解修正。

轉載于:https://www.cnblogs.com/Crysaty/p/6094602.html

總結

以上是生活随笔為你收集整理的[转]tesseract OCR Engine overview字符识别学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。