利用Paddle开源OCR模型进行字符识别
在挂机录制视频的时候,需要一个检测进度条是否跑完的功能。但是无奈各大平台ocr的api都很贵,本人不太愿意为了这个小功能掏钱。然后发现了这个OCR模型。
虽然没学过人工智能,但是好在官方给的教程十分简单。按照教程做大致没有问题,但是有一些遇到的问题官方教程没有涉及到。
我是使用pycharm的,在pycharm2022版本中,换源比较麻烦,可以手动用命令行进行下载。但是要注意的是pycharm用的是python虚拟环境,直接在本地下载是没用的。需要打开项目目录下的./venv/Scripts文件夹下,用管理员模式下的cmd运行activate.bat文件进入虚拟环境。然后运行。
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install "paddleocr>=2.0.1" -i https://mirror.baidu.com/pypi/simple
如果你的电脑安装过最新版numpy,那么你在运行代码时会喜提一个报错。原因是python的库中包含了numpy.int属性,但是这个在1.24.0中已经被删除了。用下面命令重新安装numpy:
pip install "numpy<1.24.0" -i https://mirror.baidu.com/pypi/simple
到python里面运行即可,这里提供一个用ocr识别文本的示例代码:
def ocr(img_path):
ocr = PaddleOCR(use_angle_cls=True, lang="ch") # 这一句可以写成全局变量,避免重复加载模型(很慢)
result = ocr.ocr(img_path, cls=True)
return result[0][0][1][0]
用这个函数就可以识别图像中文字了,而且用本地开源模型,不用联网/花钱。准确率很高。