【问题标题】:How to split noise and text from the image for preprocessing of OCR如何从图像中分离噪声和文本以进行 OCR 预处理
【发布时间】:2017-12-01 21:09:08
【问题描述】:

我正在对电视镜头中的字幕应用 OCR。 (我正在使用带有 C++ 的 Tesseact 3.x)我正在尝试将文本和背景部分拆分为 OCR 的预处理。

这是原图:

还有,预处理图像:

OCR 结果为:Sicemn 克隆

如上图所示,字母周围还残留着一些“雾”,这会阻止 OCR 模块正常工作。

有什么方法可以通过编程识别那些“雾”来移除,或者做一些图像处理来从预处理图像中移除/减少它?

由于预处理逻辑经过大量优化以处理不同的图像,我宁愿找到一种方法来“清理”预处理图像,而不是修改预处理逻辑(因为优化此图片会影响其他图片)

非常欢迎任何建议。


更新

显然,sixela 的答案很棒,并且适用于大多数情况。 它不起作用的情况是背景也包括相似颜色的文本

无效案例示例:

结果示例:

看起来,高斯过滤器似乎在这类素材中造成了问题。 这意味着,不同的镜头可能需要不同的方法。

【问题讨论】:

  • 当背景发生变化时,标题可能在连续几帧中保持不变。您可以尝试在保持大致相同的像素与在 n 帧上发生变化的像素之间进行分区。它并不完美,但在许多情况下可能会有所帮助。
  • 嗨,阿德里安,感谢您的建议。是的,我已经尝试过使用 OpenCV 中的 absdiff 和 MOG 过滤器的方法。它效果不佳,因为在通常的镜头中,框架中的对象不会移动得那么快。假设如果字幕重叠在人身上,他们不会移动得那么快,但字幕只会出现 1-2 秒。如果是汽车追逐场景,它会工作..

标签: c++ image ocr tesseract


【解决方案1】:

通过使用形态学运算和阈值处理,我设法获得了更清晰(不完美)的图像。

方法如下:

  1. 我首先将原始图像转换为灰度
  2. 应用高斯模糊(9x9 内核)对灰度图像进行去噪
  3. Top Hat Morphological 运算(3x3 内核)获取白色文本
  4. Otsu 阈值法
  5. 扩张
  6. 反转二进制阈值以获得黑色的白色文本

我终于得到了下图

作为 OCR 结果,这给出了以下文本:“Since vou don'k”

PS:这个结果当然可以通过调整参数(例如内核大小)来改善,但我希望它可以指导你。我在 Python 中使用 OpenCv 来快速尝试这些方法。

import cv2

image = cv2.imread('./inputImg.png', 0)
imgBlur = cv2.GaussianBlur(image, (9, 9), 0)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
imgTH = cv2.morphologyEx(imgBlur, cv2.MORPH_TOPHAT, kernel)
_, imgBin = cv2.threshold(imgTH, 0, 250, cv2.THRESH_OTSU)

imgdil = cv2.dilate(imgBin, kernel)
_, imgBin_Inv = cv2.threshold(imgdil, 0, 250, cv2.THRESH_BINARY_INV)

cv2.imshow('original', image)
cv2.imshow('bin', imgBin)
cv2.imshow('dil', imgdil)
cv2.imshow('inv', imgBin_Inv)

cv2.imwrite('./output.png', imgBin_Inv)
cv2.waitKey(0)

在此之后,我使用以下命令尝试了 Tesseract 上的输出图像:

tesseract output.png stdout

【讨论】:

  • 太棒了!您可以发布源代码吗?我也使用python,所以它真的很有帮助!
  • 嗨,我刚刚用源代码编辑了我的初始帖子。如果我有时间,我会尝试改进代码以获得更好的输出图像。
  • 嗨 Sixela,非常感谢您的精彩帖子。在更多的测试中,我发现了一些不适用于 Gaussian w/ Morphology 方法的素材。 (我更新了这篇文章以包含新的镜头)我会尝试查看镜头以找出替代方法,但如果您有任何想法/线索,请告诉我。
猜你喜欢
  • 1970-01-01
  • 2021-08-16
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 2020-05-25
  • 2011-05-10
  • 2014-10-07
相关资源
最近更新 更多