我已经使用Tesseract 4进行了两个多月的项目。 (这意味着它在输入图像上运行了两个多月。)显示的问题是:
multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/cse/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 119, in worker
result = (True, func(*args, **kwds))
File "/home/cse/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 44, in mapstar
return list(map(*args))
File "/home/cse/.local/lib/python3.5/site-packages/pathos/helpers/mp_helper.py", line 15, in <lambda>
func = lambda args: f(*args)
File "UKExtraction2.py", line 267, in tessBox
op = pt.image_to_string(box[0],lang='hin+eng',config='--psm 6')
File "/home/cse/.local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 286, in image_to_string
return run_and_get_output(image, 'txt', lang, config, nice)
File "/home/cse/.local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 194, in run_and_get_output
run_tesseract(**kwargs)
File "/home/cse/.local/lib/python3.5/site-packages/pytesseract/pytesseract.py", line 170, in run_tesseract
raise TesseractError(status_code, get_errors(error_string))
pytesseract.pytesseract.TesseractError: (127, 'tesseract: symbol lookup error: tesseract: undefined symbol: _ZN9tesseract15TessPDFRendererC1EPKcS2_b')
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "UKExtraction2.py", line 855, in <module>
doItAllUpper("A0","UK4.csv","temp",27,70,"box",2,1000,firstPageCoordsUK,boxCoordUK,voterBoxCoordUK,internalBoxNumberCoordUK,externalBoxNumberCoordUK,addListInfoUK)
File "UKExtraction2.py", line 776, in doItAllUpper
doItAll(tempPDFName,outputCSV,2,pdfs,formatType,n_blocks,writeBlockSize,firstPageCoords,boxCoord,voterBoxCoord,internalBoxNumberCoord,externalBoxNumberCoord,addListInfo,pdfName)
File "UKExtraction2.py", line 617, in doItAll
mainProcess(pdfName,(0,noOfPages-1),formatType,n_blocks,outputCSV,writeBlockSize,firstPageCoords,boxCoord,voterBoxCoord,internalBoxNumberCoord,externalBoxNumberCoord,addListInfo,bigPDFName,basePages)
File "UKExtraction2.py", line 563, in mainProcess
names_lst = cropAndOCR(im,(tup[0],tup[1]),formatType,boxCoord,voterBoxCoord,externalBoxNumberCoord,n_blocks,basePages)# Add the values of fpageInfo
File "UKExtraction2.py", line 416, in cropAndOCR
results = pool.map(tessBox,box_lst_divided)
File "/home/cse/.local/lib/python3.5/site-packages/pathos/multiprocessing.py", line 137, in map
return _pool.map(star(f), zip(*args)) # chunksize
File "/home/cse/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 266, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/home/cse/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 644, in get
raise self._value
pytesseract.pytesseract.TesseractError: (127, 'tesseract: symbol lookup error: tesseract: undefined symbol: _ZN9tesseract15TessPDFRendererC1EPKcS2_b')
pathos
部分是因为该项目使用两个线程来工作。重要的部分是:
pytesseract.pytesseract.TesseractError: (127, 'tesseract: symbol lookup error: tesseract: undefined symbol: _ZN9tesseract15TessPDFRendererC1EPKcS2_b')
在tesseract-ocr google邮件组上发布的this错误用户:
combine_tessdata: symbol lookup error: combine_tessdata: undefined symbol: _Z7tprintfPKcz
“未定义符号”表示安装已损坏
但是正如我所说的,该版本运行了两个多月没有出现任何错误,因此tesseract安装应该不会有任何问题。
另一位用户在该论坛上发布了same problem,但没有人回答。
所以,我认为问题可能出在两个地方:
该图像可能完全不是图像!也就是说,它可能具有0x0尺寸(尽管考虑到图像的构造过程,这是不可能的)。但这是不可能的,因为我得到的错误是:
SystemError: tile cannot extend outside image
当我尝试我的假设时。
这意味着存在图像,因此tesseract应该起作用。
这也意味着问题出在Tesseract内部。我不是tesseract的内部专家,但是考虑到该版本到目前为止一直可以正常工作并且输入图像没有问题,Tesseract可能是什么问题?
P.S:我目前不在运行脚本的系统附近,但我确实知道发生了错误。我可能无法提供有关系统的确切详细信息,因此我希望对此问题提出假设。
P.S:脚本为here。
答案 0 :(得分:2)
以下是ubuntu 18.04的解决方案
请先安装tesseract-ocr所需的库
sudo apt install libtesseract-dev libleptonica-dev liblept5
然后只需使用命令安装tesseract
sudo apt install tesseract-ocr -y
答案 1 :(得分:0)
发布为答案而不是评论,以便进行修改。
截至 2019年6月的 Debian GNU / Linux 9.6(拉伸)(也适用于9.9)。
当tesseract突然停止工作时,我不得不
sudo apt-get purge libtesseract4 tesseract-ocr
,然后重新安装它们(通过backport重新安装,因为稳定通道中不可用):
sudo apt-get install -t stretch-backports tesseract-ocr
对于我而言,至关重要的是重新安装libtesseract4 ,否则symbol lookup error: tesseract: undefined symbol
会一直显示。
答案 2 :(得分:0)
sudo apt-get install tesseract-ocr
为我工作
答案 3 :(得分:0)
清除,然后重新安装解决了我的问题:
sudo apt-get purge libtesseract4 tesseract-ocr
这将删除以下包:
libtesseract-dev*、libtesseract4*、tesseract-ocr*
sudo apt-get install libtesseract-dev tesseract-ocr
这将安装以下软件包:
libtesseract-dev、libtesseract4、tesseract-ocr