• 微信号
  • 微信号
您当前的位置:首页 > 学海无涯 > 数据引擎>提高Tesseract文字识别率的三种方法

提高Tesseract文字识别率的三种方法

孤峰 孤峰家 2023-07-14 133人阅读

有各种原因会导致Tesseract文字识别率不高。这里介绍了一些基本操作,能够帮助你显着提高识别精度。

但是如果你要识别的图像是一个并不常用的字体,或者是一个新的语言,那么就必须要训练才行。

方法一 图像预处理

Tesseract在执行OCR之前已经在内部先进行了各种图像处理操作(使用Leptonica库)。通常情况下,这样操作就已经足够了,但是OCR的识别场景复杂,不可避免的会碰到识别准确度不够的情况。

那么你可以试试以下这些办法:

缩放 Rescaling

Tesseract最适合DPI至少为300DPI的图像,因此调整图像的大小可能是有帮助的。

二值化Binarisation

具体可以参考图像处理工具I**geMagick - 灰度化和二值化

去噪 Noise Removal

噪声是图像中亮度或颜色的随机变化,会使图像的文本更难以识别。在二值化步骤中,Tesseract无法去除某些类型的噪声,这会导致准确率下降。

可以参考I**geMagick给图像去噪来给图像进行去噪处理。

偏移校正 Rotation / Deskewing

如果页面过于倾斜,Tesseract的行分割质量会显着降低,严重影响OCR的质量。为了解决这个问题,旋转页面图像使文本行是水平的。

边框处理 Borders

扫描的页面通常有黑色的边框,这些字符可能作为额外的字符被错误地提取出来。这些可以通过程序或者软件来做,非常简单

经过软件处理后:

如果您的OCR只是文本区域没有任何边框,tesseract可能会有问题。你可以通过如下命令,来增加10x10像素的白色边框:convert 427-1.jpg -bordercolor White -border 10x10 427-1b.jpg

透明与Alpha通道 Transparency / Alpha channel

阿尔法通道)是指一张图片的透明和半透明度。

举例来说一个使用每个像素16比特存储的位图,对于图形中的每一个像素而言,可能以5个比特表示红色,5个比特表示绿色,5个比特表示蓝色,较后一个比特是阿尔法。在这种情况下,它要么表示透明要么不是,因为阿尔法比特只有0或1两种不同表示的可能性。

当使用32个比特存储的位图,每8个比特表示红绿蓝,和阿尔法通道。在这种情况下,就不光可以表示透明还是不透明,阿尔法通道还可以表示256级的半透明度,因为阿尔法通道有8个比特可以有256种不同的数据表示可能性。

Tesseract期望在处理图像之前从图像中删除alpha通道。这可以通过I**geMagick命令来实现convert input.png -alpha off output.png

方法二 页面分割

默认情况下,Tesseract在分割图像时需要一页文本。如果你只是试图OCR一个小区域尝试不同的分割模式,使用-p**参数。 0 Orientation and script detection (OSD) only.

1 Auto**tic page segmentation with OSD.

2 Auto**tic page segmentation, but no OSD, or OCR.

3 Fully auto**tic page segmentation, but no OSD. (Default)

4 Assume a single column of text of variable sizes.

5 Assume a single uniform block of vertically aligned text.

6 Assume a single uniform block of text.

7 Treat the i**ge as a single text line.

8 Treat the i**ge as a single word.

9 Treat the i**ge as a single word in a circle.

10 Treat the i**ge as a single character.

11 Sparse text. Find as much text as possible in no particular order.

12 Sparse text with OSD.

13 Raw line. Treat the i**ge as a single text line, bypassing hacks that are Tesseract-specific.

方法三 字典、单词列表和模式

默认情况下,Tesseract被优化为能够识别句子中的单词中。如果您试图识别其他东西,比如收据、价目表或代码,那么会有些困难。

如果您的大部分文本不是字典中的单词,那么禁用Tesseract使用的字典可以提高一定的识别能力。

当然Tesseract还可以将单词添加到帮助识别的单词列表中,或者添加常见的字符模式。

如果您知道您只会遇到某一些字符,比如只有数字,那么您可以使用tessedit char白名单配置变量。

转载:感谢您阅览,转载请注明文章出处“来源从小爱孤峰知识网:一个分享知识和生活随笔记录的知识小站”。

链接:提高Tesseract文字识别率的三种方法http://www.gufeng7.com/engines/558.html

联系:如果侵犯了你的权益请来信告知我们删除。邮箱:119882116@qq.com

标签: