Python EasyOCR需要很长时间才能开始,而且它还显示了一些进度百分比

rpppsulh  于 2023-01-18  发布在  Python
关注(0)|答案(2)|浏览(368)

我正在用python开发一个桌面应用程序,它允许用户对屏幕进行截图并读取图像中的文本,我使用EasyOCR来实现这一功能,但问题是每当我将图像传递给EasyOCR时,我的idle/terminal会显示一些下载进度,这会花费很长时间,并导致我的程序冻结。
我得到的下载进度如下所示:

下面是我编写的与EasyOCR相关的代码:

def processImg():
    global chosenImgFile
    isImgChosen = chosenImgFile.find(".png") or chosenImgFile.find(".jpeg")
    if isImgChosen != -1:
        chosenImgFile = cv2.imread(chosenImgFile)
        imageReader = ocr.Reader(["en"], gpu=False, verbose=False)
        readTxt = imageReader.readtext(chosenImgFile)

值得一提的是,我没有GPU,当我下载pytorch我选择了稳定的版本与CPU支持只。
此外,我知道当verbose属性设置为False时,下载进度会消失,但我的程序仍然需要一分钟多的时间来读取图像中的文本并显示它。
如何使处理图像和返回文本最多需要10秒的时间更快?
谢谢。

hlswsv35

hlswsv351#

你不可能使它更快。OCRing是一个计算量很大的过程。只有更好的系统才能提高速度。

guz6ccqo

guz6ccqo2#

您可以通过不在每次想要执行推理时加载模型来使其更快。

reader = easyocr.Reader(['en'], detector='dbnet18')
for img in imagesPIL:
    result =  reader.readtext(img , batch_size=5)

您还可以增加batch_size以提高性能。

相关问题