【问题标题】:Pre-process methods to apply before extracting texts from images in distorted,blurred images using pytesseract/tesseract在使用 pytesseract/tesseract 从扭曲、模糊的图像中提取文本之前应用的预处理方法
【发布时间】:2020-11-16 08:16:31
【问题描述】:

我正在编写一个脚本来从问题图像中提取文本,如下所示,使用tesseract。但我说的是每天 1000-10000 张图像,因此手动应用这些方法是不可行的。是否有可能我可以对所有图像应用一些一般性的东西?

这张图片是为了展示图片的质量,而不是手写

所以这张图片有一些噪点、模糊等等。我已经用过otsu thresholdingclosing。对于我可以对每张图像安全地使用的预处理功能,还应该有哪些其他方法,这样它就不会损害高质量的图像,而是改善低质量的图像

换句话说,我可以对每张图片使用sharpening kernel 吗?如果是,应该是什么平均(最小安全)过滤器大小/值,这样它才不会损害高质量的图像

sharpen_kernel_choice1 = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
sharpen_kernel_choise2 = np.array[[0,-1,0], [-1,9,-1], [0,-1,0]]

我也在考虑使用Wiener Filter,例如,它可以对图像进行去模糊处理,

psf = np.ones((5, 5)) / 25 # what should be a safe kernel size
img = convolve2d(img, psf, 'same')
img += 0.1 * img.std() * np.random.standard_normal(img.shape) # what should be this value?
deconvolved_img = restoration.unsupervised_wiener(img, psf)

【问题讨论】:

标签: opencv image-processing deep-learning computer-vision scikit-image


【解决方案1】:

您想使用edge preserving 过滤器,例如各向异性扩散。我知道的唯一python实现可以在medpy找到。

medpy.filter.smoothing.anisotropic_diffusion(gray_image, option = 3)

我尝试了您的图像,发现由于边缘增强,不清晰的蒙版效果更好。对于曝光修改,你应该使用本地过滤器,Ziri 提到的 CLAHE 是我能想到的最好和最容易使用的。

from skimage.exposure import equalize_adapthist
from skimage.filters import threshold_otsu, unsharp_mask

img = unsharp_mask(image)
equalize_adapthist(img) > threshold_otsu(equalize_adapthist(img))

Tesseract 项目还提供了一个专用于Image Preprocessing 的页面。

【讨论】:

  • 感谢您的回答,但真正的问题是我想知道是否有通用方法。如果我每天必须从 10 张图像中提取,我会手动调整图像,但我每天要查看大约 1000-10000 张图像。那么有没有一种通用的方法呢?
  • 是的,有一些教程,基本上都是通过 Tesseract 的图像预处理页面上提到的步骤。这就是你通常会做的事情。但我不确定 Tesseract 自己在多大程度上做到了。如果您的数据与特定主题相关联,那么针对此问题训练网络也是有益的。此外,tesserocr 似乎是 Tesseract 的最新 python 包装器。最后但并非最不重要的是,存在一个手写数学表达式的开源项目:github.com/falvaro/seshat
  • 我认为这些对我不起作用。我认为我应该使用 De Noising GAN 或 Auto Encoder,以便充分利用 ML。这只是我拥有的图像类型之一。几乎每张图片都是不同的,所以我认为我需要为 Autoencoder 训练大约 2-3Lkhs 的图片。
  • 既然你提到了它,我只是偶然发现了一个用于去噪和超分辨率的工具,也许这值得一看。它也可以很好地使几乎不可读的字母易于阅读,也许它也适用于手写字母。 github.com/tamarott/SinGAN
  • 谢谢芽!会这样做,我想。有人建议过 GAN 部分。
猜你喜欢
  • 2021-07-07
  • 1970-01-01
  • 2020-06-15
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多