医疗器械网站备案前置审批事例,下载手机app安装,最好的 受欢迎的 免费的,大专学ui设计好找工作吗提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 1.PaddleOCR环境准备 2.PaddleNLP环境准备 3.使用示例 前言
三方OCR服务价格普遍不便宜#xff0c;随着公司业务量的增长#xff0c;这部分成本逐渐变得难以… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言 1.PaddleOCR环境准备 2.PaddleNLP环境准备 3.使用示例 前言
三方OCR服务价格普遍不便宜随着公司业务量的增长这部分成本逐渐变得难以忽视因此内部评估后决定自行实现。 一、Paddle是什么
示例Paddle是国内的一套开源的深度学习框架发展至目前已经提供了许多无需复杂参数即可使用的工具库如 PaddleOCRPaddleNLP 等等。
二、使用步骤
1.PaddleOCR环境准备
注意以下内容将以win系统为例因为我是在win10系统上做开发的mac没用过不懂。
不管你是否已经安装python环境我仍建议使用Anaconda环境因为在人工智能领域conda相当好用。
镜像地址Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装完成后打开Anaconda控制台
通常在左下角的开始 - Anaconda3 - Anaconda Prompt启动控制台
输入如下命令创建一个新的虚拟环境 conda create --name paddle_env python3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 以上命令是默认使用了python3.8的如果你需要其他版本可以自行修改。
虚拟环境创建完成后可以通过如下命令激活环境并确定无误 # 激活paddle_env环境
conda activate paddle_env
# 查看当前python的位置
where python 然后还需要安装Paddle的核心框架
如果你的电脑有NVIDIA显卡可以先查一查你的CUDA版本是多少
CUDA版本查看指南轻松掌握你的GPU性能_cuda编译器版本和运行时版本-CSDN博客
然后去Paddle官网选择对应的选项获取对应的安装命令
开始使用_飞桨-源于产业实践的开源深度学习平台
以纯CPU为例执行如下安装命令 python -m pip install paddlepaddle2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple 等核心框架安装好了再安装whl包 pip install paddleocr2.0.1 至此PaddleOCR部署完成。 2.PaddleNLP环境准备
PaddleNLP的部署相对比较简单只需要通过以下pip直接安装即可
pip install --upgrade paddlenlp
3.使用示例
先在你的代码中引入paddleocr和paddlenlp两个库
from paddleocr import PaddleOCR
from paddlenlp import Taskflow
然后获取一个PaddleOCR和一个Taskflow对象
# 获取ocr对象
ocr PaddleOCR(use_angle_clsTrue, langch, use_gpuFalse, use_mpTrue)
# 获取taskflow对象
ie Taskflow(information_extraction, schemaschema)
如果你希望使用自己训练的模型可以传入参数
# 指定检测模型识别模型和方向分类模型的路径
det_model_dir .\\det_model
rec_model_dir .\\rec_model
cls_model_dir .\\cls_model
# 传入参数
PaddleOCR(det_model_dirdet_model_dir, rec_model_dirrec_model_dir, cls_model_dircls_model_dir)
如果没有需要指定的模型直接不传这几个参就行官方在源码文件information_extraction.py里的resource_files_urls对象中其实已经指定了默认的模型。
示例代码
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如ch, en, fr, german, korean, japan
ocr PaddleOCR(use_angle_clsTrue, langch)
allStr
img_path ./imgs/11.jpg
result ocr.ocr(img_path, clsTrue)
for idx in range(len(result)):res result[idx]for line in res:print(line)str line[1][0]if str ! :allStr allStr Str
假设传入的是身份证经过解析后的allStr就会变成类似如下的字符串标点符号空格等特殊符号需要你自行处理
姓名侯小珂性别女民族汉出生1999年x月x日住址xx市xx区xx路1号2栋3号公民身份号码110129xxxxxxxxxxxx中华人民共和国居民身份证签发机关xx市公安局有效期限2018071120280711
接下来你要做的就是把这个字符串交给NLP模型进行信息抽取。当然你说用正则匹配也行确实没毛病例如身份证号码直接用正则匹配就可以了。但是假如你需要获取住址这种没有明显特征的你如何正则匹配呢
NLP模型就能解决这个问题。
使用如下代码告诉模型我需要在这段文本中抽取什么信息即可
data {}
schema [姓名, 民族, 性别, 出生, 住址, 签发机关, 有效期限, 公民身份号码]
ie Taskflow(information_extraction, schemaschema)
res ie(allStr)
for key in schema:data[key] res[0][key][0][text]
print(data)
结果如下 data: {姓名: 侯小珂,民族: 汉,性别: 女,出生: 1999年x月x日,住址: xx市xx区xx路1号2栋3号,签发机关: xx市公安局,有效期限: 2018071120280711,公民身份号码: 110129xxxxxxxxxxxx}
感谢各位阅读 觉得这篇文章有用的朋友可以给我点个赞收藏一下尤其是修炼搬山诀的道友你搬就搬吧好歹给哥们点点赞。