我让AI写了段识别图片里的文字的Python代码,引入了pdf2image和paddlex,但是运行就报错,怎么办?
要实现Python的OCR文字识别,首先需要安装相关的包依赖。
PaddleOCR是百度基于深度学习技术开发的OCR工具库,专注于OCR任务,支持多种语言的文字检测与识别,新版本还支持复杂手写体和高精度文档解析,具有高效、准确的特点,适合在多种场景下进行图像文字识别。
PaddleX 是飞桨(百度自研的开源深度学习框架)生态中面向工业级应用的深度学习开发套件,支持两类OCR模型:检测模型和识别模型。PaddleX OCR是一个功能强大且易于使用的OCR开发工具集,适合各类OCR应用场景,它能覆盖更广泛AI场景的低代码开发工具,除OCR外,还覆盖图像分类、目标检测、图像分割等多种模型和任务类型。
如果你只用来做OCR任务,希望获得更精简、专注的API体验,可以选择第一种;如果你未来计划进行其他AI任务(如图像分类、目标检测等),可以选择第二种,为后续扩展打下基础。
等等...等一下!怎么都是p什么ocr,我晕了,有什么区别啊?
正常的,小编第一次也以为只要简单地使用"pip install paddlex"和"pip install pdf2image",结果一直报错。结合网上资料和自己实操,我来整理一下遇到过报错和解决办法。
Python版本要求:需要在 3.8 到 3.12 之间。
小编使用的是python3.9版本。如果不清楚自己的版本,可以在终端里输入:
显示已安装的版本。
为了确保后面安装顺利,先把 Python 的包管理工具 pip 升级到最新版:
python -m pip install --upgrade pip
可以安装paddleocr,也可以安装PaddleX与OCR组件。但是无论是哪种,都要先安装PaddlePaddle,因为PaddleX是运行在PaddlePaddle深度学习框架之上的。
第二步:安装 PaddlePaddle 核心引擎,根据你的环境选择CPU版本或GPU版本。
对于GPU版本(需要先确保有CUDA环境)
小编是在本机环境安装的CPU版本,安装非常简单,用 pip 即可:
装好 PaddlePaddle 后,根据自己的选择安装合适的工具包。
①安装paddleocr(专用工具包):
PaddleX会作为依赖被一并安装,仅限于OCR (含文本检测、识别、版面分析等)。
②也可以安装PaddleX与OCR组件:
这个命令会自动安装PaddleX的核心库和与OCR相关的核心组件 (即 paddlex[ocr-core])。
注意:pip install paddlex[ocr]命令不会安装paddleocr,它们是两个功能互补但独立的包。
因为PaddleX的Serving功能依赖于Paddle Serving,所以还需要装其他依赖。
安装Paddle Serving:
pip install paddle-serving-server
安装其他Serving组件,如paddle-serving-client和paddle-serving-app:
pip install paddle-serving-clientpip install paddle-serving-app
最后安装PaddleX:
注意:有时候版本不兼容会导致问题,需要考虑安装特定版本的Paddle Serving,可以尝试指定版本安装:
pip install paddleserving==指定版本#根据PaddleX 版本调整pip install paddle-serving-server==指定版本pip install paddle-serving-client==指定版本pip install paddle-serving-app==指定版本
可以使用 PaddleX 提供的官方图片来测试,图片地址:
https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png
打开终端,输入以下命令:
paddlex --pipeline OCR --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --device cpu
--pipeline OCR:使用OCR管道处理图片。
--input ...:输入测试图片地址。
--device cpu:指定使用 CPU 进行计算。
如果出现这样的结果就表明安装成功:
遇到“unable to get page count. Is poppler installed and in PATH”错误时,表明系统缺少poppler或其未正确配置在环境变量PATH中。
因为pdf2image库依赖于poppler 工具来处理 PDF 文件,而系统中没有安装 poppler,或者 poppler 没有正确配置在系统的PATH 环境变量中,就会导致程序无法正常运行。
需要先安装 poppler,选择合适的版本安装并解压。
https://github.com/oschwartz10612/poppler-windows/releases/
打开系统环境变量设置,手动将 poppler 的 bin 目录添加到系统的 PATH 环境变量中。
D:\Programs\Python\Python39\Lib\site-packages\poppler-25.12.0\Library\bin
报错:
ValueError:numpy.dtype size changed, may indicate binary incompatibility. expected 96 from c header, got 88 from PyObject
这是一个典型的版本不兼容导致的问题。如果本机已有其他Python包,可能与PaddlePaddle产生依赖冲突(如opencv、numpy版本),升级或降级numpy以与其他依赖库兼容。
小编通过卸载并重新安装低版本的numpy解决了问题。
pip install numpy==1.24.4 --force-reinstall#强制重装
报错
RuntimeError: Engine 'paddle_static' is unavailable because dependency 'paddlepaddle' is not install
通常是因为 paddlepaddle 没有正确安装或版本不兼容,需要安装指定版本。
python -m pip install paddlepaddle==指定版本
报错
Error:(Unimplemented)ConvertPirAttribute2RuntimeAttribute not support [pir::ArrayAttributepir::DoubleAttribute](at..\paddle\fluid\framework\new_executor\instruction\onednn\onednn_instruction.cc:118)
和上面的报错类型差不多,是paddlepaddle版本不一致导致的报错。
小编是因为版本太高导致的报错,通过卸载并重新安装低版本的paddlepaddle解决了问题。
python -m pip uninstall paddlepaddlepip install --upgrade paddlex==2.1.0
报错
paddlex.utils.deps.DependencyError:The serving plugin is not available. Please install it properly.
缺少或未正确安装PaddleX的Serving插件,建议根据安装过程里的操作进行安装。