R、tesseract和预处理图像中的OCR表

R、tesseract和预处理图像中的OCR表,r,ocr,tesseract,R,Ocr,Tesseract,我正在尝试使用R中的tesseract从旧书中提取表格。以下是一个示例: 起初图像质量很差,识别率很差。然而,我设法用gimp增加了它:重缩放、灰度、颜色自动阈值、高斯模糊和/或锐化过滤器。 我还尝试了Fred的imageMagick脚本——textcleaner——并使用imageMagick成功地删除了黑线。 这就是我在R所做的: library(tesseract) library(magick) img <- image_read('img.png') img_data <

我正在尝试使用R中的tesseract从旧书中提取表格。以下是一个示例:

起初图像质量很差,识别率很差。然而,我设法用gimp增加了它:重缩放、灰度、颜色自动阈值、高斯模糊和/或锐化过滤器。 我还尝试了Fred的imageMagick脚本——textcleaner——并使用imageMagick成功地删除了黑线。 这就是我在R所做的:

library(tesseract)
library(magick)

img <- image_read('img.png')
img_data <- ocr(img, engine = tesseract('eng', options = list(tessedit_char_whitelist = '0123456789.-',
                                                            tessedit_pageseg_mode = 'auto',
                                                            textord_tabfind_find_tables = '1',
                                                            textord_tablefind_recognize_tables = '1')))
cat(img_data)
库(tesseract)
图书馆(magick)

img我参与了一个项目,该项目使用Tesseract从视频帧中读取数据字段,并从中创建索引电子表格。我发现效果很好的是裁剪每个文本字段(使用ffmpeg)输出每个图像、处理(使用ImageMagick,使用您提到的类似技术)、OCR,然后我让Python(类似的事情可以在R中完成)根据OCR结果创建一个电子表格。这种方法的好处是Tesseract只需处理小的单行文本图像,在我的例子中,这似乎可以改善结果(使用
-psm 7
选项)。缺点是它的处理相当密集。也许为页面的每一行创建一个图像会有所帮助

我发现培训Tesseract使用新字体/语言对我的成绩有很大帮助。这可能是乏味和耗时的,但它显著改善了我的结果,有时从0%正确到100%正确。帮助我理解这个过程。我只是跟着他们的脚步走,果然奏效了。根据我在创建训练图像方面的经验,裁剪出单个角色非常有帮助,每个角色至少有十几个,可以创建一个好的训练样本。并尝试为每个字符提供相似数量的样本;看起来,如果你在一个角色中做了很多次,Tesseract会更频繁地(错误地)给这个角色一个结果