使用Tesseract进行蛋标识别的图像预处理

Tom*_*665 8 ocr opencv tesseract google-vision

例如,目标是制作一个能够识别蛋标记的应用程序0-DE-134461.我在以下图片上尝试了TesseractGoogle Vision API.两个OCR引擎的结果都是灾难性的.

德国鸡蛋 西班牙蛋

0-DE-46042

Tesseract ? ""
Google Vision API ? " 2 "
Run Code Online (Sandbox Code Playgroud)

3 ES08234-25591

Tesseract ? ""
Google Vision API ? " Es1234-2SS ) R SHAH That is part "
Run Code Online (Sandbox Code Playgroud)

七分裤

我用Photoshop手动裁剪图像.

德国蛋 - 裁剪 西班牙鸡蛋 - 裁剪

0-DE-46042

Tesseract ? ""
Google Vision API ? ""
Run Code Online (Sandbox Code Playgroud)

3 ES08234-25591

Tesseract ? "3?ÇöE503?Çÿ234-gg"
Google Vision API ? " -ESOT23-2559 ) "
Run Code Online (Sandbox Code Playgroud)

阈值化

我用Photoshop手动选择了两个蛋上的文字并删除了背景. 德国鸡蛋 - 阈值 西班牙鸡蛋 - 阈值

0-DE-46042

Tesseract ? "O?ÇöDE?Çö46042"
Google Vision API ? " O-DE-46042 "
Run Code Online (Sandbox Code Playgroud)

3 ES08234-25591

Tesseract ? ""
Google Vision API ? " 3-ESO8234-9 "
Run Code Online (Sandbox Code Playgroud)

去掉圆形经线?

我假设最后一个预处理步骤应该是删除圆形扭曲,但我不知道如何使用Photoshop手动执行,更不用说自动执行.


我的问题

  • 我正朝着正确的方向前进吗?
  • 我的预处理步骤是否正确?
  • 在OpenCV中自动执行这些步骤的方法是什么?

额外信息

我用来获取tesseract OCR结果的命令:

? tesseract {egg_picture}.jpg --psm 7 stdout
Run Code Online (Sandbox Code Playgroud)

tesseract版本:

? tesseract --version
tesseract 4.0.0-alpha.20170804
 leptonica-1.74.4
  libgif 4.1.6(?) : libjpeg 8d (libjpeg-turbo 1.5.0) : libpng 1.6.20 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.3 : libopenjp2 2.1.
Run Code Online (Sandbox Code Playgroud)

平台: Windows 10


编辑1

我用OpenCV在一些鸡蛋标记图像上应用了自适应阈值处理.这些是迄今为止的结果:

IMG A(编辑1) IMG C(编辑1) IMG B(编辑1) IMG H(编辑1) IMG D(编辑1) IMG E(编辑1) IMG G(编辑1) IMG I(编辑1)

但是,仍然有很多噪音.我正在努力调整参数,以便它可以在不同的图像中很好地工作.


Jer*_*uke 2

我有一个建议。

我尝试对 BGR 颜色空间中的所有三个通道应用局部直方图均衡,然后将它们合并。

结果:

在此输入图像描述

在此输入图像描述

随着图像中的细节更加增强,您可以考虑对这些图像进行预处理。

我还尝试分别对三个通道的直方图进行全局均衡。图像虽然比原始图像清晰,但缺乏细节的深度。