【问题标题】:Tesseract OCR: get coords of text and improve quality of a video frame for final OCRTesseract OCR:获取文本坐标并提高最终 OCR 视频帧的质量
【发布时间】:2014-12-04 09:36:06
【问题描述】:

我正在使用 tesseract OCR 来识别视频帧的文本。

我编写了一个程序,使用 ffmpeg 获取视频的所有主要帧,并裁剪它们(使用静态值)以使文本居中(例如,字幕)。

我还使用 ImageMagickTextCleaner 脚本,它们像魔术一样提高了 OCR 的质量!

不管怎样,有时我的视频质量不太好,或者视频尺寸有点小,或者裁剪不居中的文本(因为值是 staitc),并且 OCR 结果非常糟糕。

我的问题是:如何检测文本在完美裁剪中的正确位置? 这应该会提高 OCR 的质量并获得更好的结果。

任何建议将不胜感激。谢谢。

【问题讨论】:

  • 您能否添加(链接到)两个帧样本:一个“好”,一个“坏”(需要检测文本位置)?
  • 你好,文字位置不一样:比如这个frame文字是上下,分辨率不好。否则在其他frame 分辨率更大,效果更好。您可以在另一个frame 中找到另一个小例子。谢谢!
  • 如果文本始终在彩色框中,这将是一个重要的细节。如果盒子总是更蓝的话。

标签: php imagemagick ocr tesseract


【解决方案1】:

您可以尝试使用边缘检测,并可能与您的其他方法结合使用。像这样(纯边缘检测):

convert            \
  big.jpg          \
  \(               \
      big.jpg -colorspace gray -edge 8 -negate \
  \)               \
 +append           \
 -resize 50%       \
  big-edge-8.png

或:

convert            \
  big.jpg          \
  \(               \
      big.jpg -colorspace gray -edge 25 -negate \
  \)               \
 +append           \
 -resize 50%       \
  big-edge-25.png

这是两个结果:

另一种选择是减少颜色数量,应用对比度拉伸和(可选)阈值:

convert                 \
   big.jpg              \
  -colors 400           \
  -contrast-stretch 25% \
   colors-400-contraststretch-25.png

convert                 \
   big.jpg              \
  -colors 400           \
  -contrast-stretch 25% \
  -threshold 50%        \
   colors-400-contraststretch-25-threshold-50.png

更新:'canny' 边缘检测

您可能还想玩-canny。它实现了 'canny' 边缘检测算法,并且从 6.8.9-0 版本开始出现在 ImageMagick 中。将其与-contrast-stretch-colorspace gray 结合使用:

convert big.jpg         \
  -colorspace gray      \
  -contrast-stretch 45% \
  -canny 0x1+10%+30%    \
   canny1.png

convert big.jpg         \
  -colorspace gray      \
  -contrast-stretch 45% \
  -canny 0x2+10%+30%    \
   canny2.png

【讨论】:

  • 我试过你的建议,这种方法并没有改善我的结果,但我不知道,+1!非常感谢,我会用它做一些测试。
猜你喜欢
  • 2018-02-11
  • 2016-11-14
  • 1970-01-01
  • 2021-04-26
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
相关资源
最近更新 更多