利用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]

 用这个函数就可以识别图像中文字了,而且用本地开源模型,不用联网/花钱。准确率很高。

posted @ 2023-01-19 10:05  _onglu  阅读(692)  评论(0编辑  收藏  举报