AI时代到来,各行各业都在追求细分领域垂直类深度学习模型,今天给大家介绍一个PaddlePaddle旗下,基于PaddleX Pipeline 来完成印章识别的模型“seal_recognition”。
官方地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/pipeline_usage/tutorials/ocr_pipelines/seal_recognition.md
下面开始在本地使用PaddleX:
一、安装Python:
推荐使用conda(可选)。
Python版本:3.8.19(推荐版本)。
二、安装CUDA
无论运行pytorch、tensflow还是paddlepaddle等深度学习框架,均推荐在GPU上进行推理。若要使用GPU进行推理,请在安装CUDA前提前更新好本机的显卡驱动。
CUDA版本:11.8(推荐)
CUDA参考地址:https://developer.nvidia.com/cuda-11-8-0-download-archive
三、安装PaddlePaddle
既然我们想使用PaddlePaddle深度学习框架旗下的Pipeline,那肯定要提前安装好PaddlePaddle深度学习框架。
PaddlePaddle版本:3.0.0-beta2
PaddlePaddle参考地址:飞桨PaddlePaddle-源于产业实践的开源深度学习平台
至此,我们的基础环境已经安装完成,接下来就可以开始进行使用Pipeline了。
四、获取PaddleX
PaddleX是什么?引用官方介绍:
PaddleX 3.0 是基于飞桨框架构建的低代码开发工具,它集成了众多开箱即用的预训练模型,可以实现模型从训练到推理的全流程开发,支持国内外多款主流硬件,助力AI 开发者进行产业实践。
模型丰富一键调用:将覆盖文本图像智能分析、OCR、目标检测、时序预测等多个关键领域的 200+ 飞桨模型整合为 19 条模型产线,通过极简的 Python API 一键调用,快速体验模型效果。同时支持 20+ 单功能模块,方便开发者进行模型组合使用。
官方地址:GitHub - PaddlePaddle/PaddleX: All-in-One Development Tool based on PaddlePaddle(飞桨低代码开发工具)
简单来说,就是PaddlePaddle研发出来的一套开箱即用产品的底座,安装了PaddleX后,就可以通过几行命令来完成不同的任务,比如几行命令完成目标检测,几行命令完成文字识别等。
安装PaddleX的几种方式:
一、Wheel包安装模式:
若你只是希望快速完成模型的推理和集成,那么推荐您使用更便捷、更轻量的Wheel包安装模式。快速安装轻量级的Wheel包之后,您即可基于PaddleX支持的所有模型进行推理,并能直接集成进您的项目中。
pip install https://paddle-model-ecology.bj.bcebos.com/paddlex/whl/paddlex-3.0.0b1-py3-none-any.whl
二、插件安装模式:
若您使用PaddleX的应用场景为二次开发 (例如重新训练模型、微调模型、自定义模型结构、自定义推理代码等),那么推荐您使用功能更加强大的插件安装模式。
安装您需要的PaddleX插件之后,您不仅同样能够对插件支持的模型进行推理与集成,还可以对其进行模型训练等二次开发更高级的操作。
git clone https://github.com/PaddlePaddle/PaddleX.git
cd PaddleX
pip install -e .
paddlex --install PaddleXXX # 例如PaddleOCR
五、基于PaddleX安装第一个插件:PaddleOCR
paddlex --install PaddleOCR
六、几行代码完成快速推理(调用文心一言大模型、默认不可修改,需要Access_token,按需付费。 若无需大语言模型,看查看第七条推理方式):
````
from paddlex import create_pipeline
pipeline = create_pipeline(
pipeline="PP-ChatOCRv3-doc",
llm_name="ernie-3.5",
llm_params={"api_type": "qianfan", "ak": "", "sk": ""} # 使用千帆接口,请填入您的ak与sk,否则无法调用大模型
# llm_params={"api_type": "aistudio", "access_token": ""} # 或者使用AIStudio接口,请填入您的access_token,否则无法调用大模型
)
visual_result, visual_info = pipeline.visual_predict("https://paddle-model-ecology.bj.bcebos.com/paddlex/PaddleX3.0/doc_images/practical_tutorial/PP-ChatOCRv3_doc_seal/test.png")
for res in visual_result:
res.save_to_img("./output")
res.save_to_html('./output')
res.save_to_xlsx('./output')
vector = pipeline.build_vector(visual_info=visual_info)
chat_result = pipeline.chat(
key_list=["印章名称"],
visual_info=visual_info,
vector=vector,
)
chat_result.print()
````
七、几行代码完成快速推理(无需大预言模型,支持本地化部署):
````
from paddlex import create_pipeline
pipeline = create_pipeline(pipeline="seal_recognition")
output = pipeline.predict("./test_images/1387.jpg")
for res in output:
res.print() ## 打印预测的结构化输出
res.save_to_img("./output_images/") ## 保存可视化结果
````
八、查看结果
写在最后:下一章节,完成印章识别“seal_recognition”模型的微调与训练。