图像预处理步骤可提高识别率

时间:2012-08-17 13:34:42

标签: android ocr tesseract

我正在为我的项目使用TessBaseAPI制作一个简单的OCR Android应用程序。我做了一些图像预处理步骤,如二值化和图像增强。但他们的结果是50%到60%。我们如何提高识别率?

我包含两张样本图片。

http://imageshack.us/photo/my-images/94/1school.jpg/

http://imageshack.us/photo/my-images/43/15071917.jpg/

3 个答案:

答案 0 :(得分:3)

以上对上述命令的补充适用于您的第二张图片:

-negate \
-deskew 40% \
+repage \
-crop 393x110+0+0 \

他们为结果添加适当水平的偏斜和裁剪,以便Tesseract的生活变得更容易......

所以完整的命令应该是以下内容,它会在我的系统上产生正确的结果:

convert 15071917.jpg            \
   -type grayscale              \
   -negate                      \
   -gamma 1                     \
   -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  \
   -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize \
   -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle \
   -negate                      \
   -deskew 40%                  \
   +repage                      \
   -crop 393x110+0+0            \
    15071917.png                \
&&                              \
tesseract 15071917.png OUT && cat OUT.txt

  Tesseract Open Source OCR Engine v3.01 with Leptonica
    Page 0
    TESCO

这是原始图片(左),带有修改后的命令的结果图片(右):

答案 1 :(得分:1)

此命令适用于第一个图像文件。我正在使用ImageMagick版本6.7.9-0 2012-08-17 Q16

convert 1school.jpg                           \
    -scale 1000%                              \
    -blur 1x65535 -blur 1x65535 -blur 1x65535 \
    -contrast                                 \
    -normalize                                \
    -despeckle                                \
    -despeckle                                \
    -type grayscale                           \
    -sharpen 1                                \
    -posterize 3                              \
    -negate 1school.tif                       \
&&                                            \
tesseract 1school.tif OUT && cat OUT.txt

  Tesseract Open Source OCR Engine v3.01 with Leptonica
    Page 0
     '
    SCHOOL
    ZONE

第二张图片需要不同的命令:

convert 15071917.jpg            \
   -type grayscale              \
   -negate                      \
   -gamma 1                     \
   -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  -contrast  \
   -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize -normalize \
   -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle -despeckle \
    15071917.tif                \
&&                              \
tesseract 1school.tif OUT && cat OUT.txt

  Tesseract Open Source OCR Engine v3.01 with Leptonica
    Page 0
    TE§§IO

好的,第二个不太成功。但是你明白了......

以下是生成的图像。左边是原件,右边是命令的结果:

1st original modified 1st original

答案 2 :(得分:1)

我今天学到了新东西。使用Tesseract 3.01,似乎最简单的方法是让OCR正常工作,首先是 deskew 文本。

这是一个非常简单的命令,它只是剪切图像并将其裁剪一点,但不会将任何对比或颜色更改操作转换为原始图像:

  convert 15071917.jpg  \
      -background pink  \
      -shear -0x6       \
      -crop 350x80+0+24 \
       tesco.jpg        \
  &&                    \
  tesseract tesco.jpg a  &&  cat a.txt

     Tesseract Open Source OCR Engine v3.01 with Leptonica
     TESCO