日常使用paddleocr识别字符时,识别速度是个大问题,有时识别一张图片可能需要耗时2~3秒,完全满足不了使用要求,按照使用经验,可用如下方法减少识别时间。
1、减小识别图片尺寸
图片是由像素构成,程序通过操作像素来识别图像,图片越大,像素数量越多,程序就得计算更多像素,要是提前知道字符处于那个位置,可以直接将该位置字符裁剪下来,使用带字符的小图片输入到识别模型中,可以大大减少识别时间。
在这里插入from PIL import Image
# 打开图片
image = Image.open("example.jpg")
# 从原图中裁剪一个矩形区域
# box 的格式是 (left, upper, right, lower)
box = (100, 100, 300, 300)
cropped_image = image.crop(box)代码片
2、使用轻量级识别模型
paddleocr经过多次迭代之后,不同版本的模型数量众多,现在最新的识别模型是V4版本模型,可以去如下网址下载最新的模型,替换掉电脑本身 的模型。模型下载网址:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/doc/doc_ch/models_list.md
电脑本身模型位置一般在如下位置,分别替换三类模型:
C:\Users\Administrator.paddleocr\whl
3、使用GPU执行
paddleocr依赖于深度学习模型进行识别,因此,合理使用GPU硬件加速识别是十分有必要的,若电脑上有英伟达显卡,可以在代码中设置OCR识别引擎设置使用GPU识别。
4、去除角度矫正步骤
这个针对特定场景。paddleocr识别过程分为三步:
1)定位字符所在位置det
2) 矫正字符角度,倾斜的变成正的cls
3)识别字符rec
当可以确定待识别字符是正的,可以去掉矫正字符角度这一步骤,可以减少0.3~1秒的时间。