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

时间:2017-08-31 10:48:55

标签: opencv ocr tesseract google-vision

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

German Egg Spanish Egg

0-DE-46042

Tesseract → ""
Google Vision API → " 2 "

3- ES08234-25591

Tesseract → ""
Google Vision API → " Es1234-2SS ) R SHAH That is part "

裁剪

我用Photoshop手动裁剪图像。

German Egg - Cropped Spanish Egg - Cropped

0-DE-46042

Tesseract → ""
Google Vision API → ""

3- ES08234-25591

Tesseract → "3ΓÇöE503ΓÇÿ234-gg"
Google Vision API → " -ESOT23-2559 ) "

阈值的

我用Photoshop手动对两个蛋上的文字进行了颜色选择并删除了背景。 German Egg - Thresholded Spanish Egg - Thresholded

0-DE-46042

Tesseract → "OΓÇöDEΓÇö46042"
Google Vision API → " O-DE-46042 "

3- ES08234-25591

Tesseract → ""
Google Vision API → " 3-ESO8234-9 "

删除圆形经线?

我认为最后一个预处理步骤应该是删除循环变形,但我不知道如何使用Photoshop手动完成,更不用说自动化了。

我的问题

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

额外信息

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

λ tesseract {egg_picture}.jpg --psm 7 stdout

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.

平台:Windows 10

编辑1

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

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

然而,仍有很多噪音。我努力调整参数,以便在不同的图像中很好地工作。

1 个答案:

答案 0 :(得分:2)

我有一个建议。

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

<强>结果:

enter image description here

enter image description here

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

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

相关问题