在Docker中使用Tesserocr时出现分段错误

时间:2018-04-13 08:59:25

标签: python docker segmentation-fault tesseract

我正在使用带有Ubuntu 14.04映像的Docker容器,我正在尝试使用python包装器tesserocr在其中运行tesseract-ocr。

版本详情如下:

tesseract 4.00.00alpha
 leptonica-1.74.4
  libjpeg 8d (libjpeg-turbo 1.3.0) : libpng 1.2.50 : libtiff 4.0.3 : zlib 1.2.8

 Found AVX
 Found SSE

我正在使用的代码是:

from tesserocr import PyTessBaseAPI
from PIL import Image

x = Image.open('image.jpg')

with PyTessBaseAPI() as api:
    api.SetImage(x)
    api.Recognize()
    ri=api.GetIterator()
    print api.GetUTF8Text()

docker中的内存详细信息是(使用free -m):

             total       used       free     shared    buffers     cached
Mem:         12012      10280       1731          1        420       8738
-/+ buffers/cache:       1121      10890
Swap:        12284         64      12220

运行代码时出现以下错误:

Segmentation fault (core dumped)

当我在我的机器上运行它时,内存细节几乎相同(没有docker容器)并且它对于同一图像运行正常。

可能导致此问题的原因以及如何解决此问题?

2 个答案:

答案 0 :(得分:1)

GitHub Issue #55项目上的

tesserocr似乎与您的问题相似。你试过这里建议的修复吗?

答案 1 :(得分:1)

我遇到了同样的问题。为了解决这个问题,首先我运行安装了tesserocr的Docker容器。在容器内,我运行了python并尝试了以下方法:

from tesserocr import PyTessBaseAPI

...并收到此错误:

!strcmp(locale, "C"):Error:Assert failed:in file baseapi.cpp

谁带领我here

建议answer

import locale
locale.setlocale(locale.LC_ALL, 'C')
import tesserocr

解决了该错误。