如何在“OCR”之前验证图像是否包含背景噪声

How to verify if the image contains noise in background before ‘OCR’ing

我有几种类型的图像需要从中提取文本。 我可以根据背景噪声手动将图像分为 3 类:

  1. 没有噪点的图像。
  2. 背景中有一些光噪点的图像。
  3. 背景噪音很大。

对于类别 1 的图像,我可以毫无问题地应用 OCR。 → 基本情况。

对于类别 2 图像和一些类别 3 图像,我可以通过应用以下方法设法提取文本:

对于OCR'ing任务,一种去除噪声的方法显然不适用于所有图像。那么,有什么方法可以对图像的背景噪声电平进行分类吗?

欢迎所有建议。 提前致谢。

你的样本不是很有说服力。所有图像都很容易二值化(阈值 25)。

根据 的评论,您可以尝试以下操作。下面的一些想法组合应该有所帮助。

图像嵌入和向量聚类

手动

在 imagenet 上使用 resnet 等预训练网络(可能效果不佳)或在 MNIST/EMNIST.

上训练的简单预训练网络

Extract and concat 一些层将权重向量展平到网络的末端。应用降维并应用最近 neighbor/approximate 最近邻算法来找到最接近的匹配项。设置簇数 3,因为您有 3 种类型的图像。

对于最近的邻居,从 KNN 开始。 github 中还有许多库可能会有所帮助,例如 faiss, annoy

更多可以从

https://github.com/topics/nearest-neighbor-search

https://github.com/topics/approximate-nearest-neighbor-search

如果以上结果不够好try finetuning 只训练了最后几层 MNIST/EMNIST 网络。

使用现有库

对于grouping/finding张相似图片查看,

https://github.com/jina-ai/jina

您应该能够在 github.

上使用标签 neural-searchimage-search 找到更多相似性聚类

https://github.com/topics/neural-search

https://github.com/topics/image-search

OCR

  • 尝试 easyocr,因为它对我来说比上次使用 ocr 的 tesserect 效果更好。
  • 运行首先在整个文档上查看是否符合要求。
  • 尽可能使用不太紧密的裁剪,而不是 some/large 在文本周围填充,附近没有其他文本。另一种方法是尝试在紧密裁剪的文本中向各个方向填充,看看它是否可以改善 ocr 结果。
  • 对于 tesserect,请查看 improving quality 文档中提到的工具是否有帮助。

分类

去噪

  • 在这里你也可以使用神经网络。训练一个denoising autoencoder with Category 1 images, corrupted type 1 images by adding noise that mimicks Category 2 and Category 3 images. This way the neural network will classify the 3 image categories without needing manually create dataset and in post processing you can use another neural network or image processing method to remove noise based on category type. Image from, https://keras.io/examples/vision/autoencoder/

  • 尝试 github 上的现有库或预训练网络以消除整个 document/cropped 区域中的噪声。查看 rembg 它是否适用于文本文档。