python使用PaddleOCR实现《命名实体识别项目》OCR(已实现)(ai领域必看,简单易用)

1.简介:

PaddleOCR是飞桨(PaddlePaddle)推出的一个端到端的光学字符识别开源工具集,支持中文、英文、数字以及特殊符号等各种类型的文字检测、识别和词语整体识别。该工具集使用PaddlePaddle深度学习框架技术,提供了多种OCR模型和算法,包括基于CNN+CTC、DenseNet+CTC等模型,能够针对不同场景和应用提供最优的OCR解决方案。同时,PaddleOCR还集成了OCR精度评估工具,可以快速地评估OCR模型的准确率和鲁棒性。除此之外,PaddleOCR还提供了丰富的API接口和命令行工具,使得用户可以轻松地进行OCR应用的开发和部署。

PaddleOCR除了支持通用文字识别外,还具备大量针对特定领域或行业的OCR功能,例如身份证/银行卡实现、表格识别、汽车VIN码识别、发票识别、名片识别等。相比其他OCR工具,PaddleOCR在识别精度、效率和扩展性等方面都有着较好的表现和广泛的适用性,是目前业内较为流行和优秀的OCR工具之一。

2.安装部署

PaddleOCR的安装较为简单,直接在终端用pip安装即可,共三部分:

python 复制代码
pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple/

tips:运行第三步的时候可能报错:

python 复制代码
PyMuPDF/setup.py: extra_link_args=['mupdf-1.20.3-source/build/release/libmupdf.a', 'mupdf-1.20.3-source/build/release/libmupdf-third.a']
      running bdist_wheel
      running build
      running build_py
      running build_ext
      building 'fitz._fitz' extension
      swigging fitz/fitz.i to fitz/fitz_wrap.c
      swig -python -o fitz/fitz_wrap.c fitz/fitz.i
      error: command 'swig' failed: No such file or directory
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyMuPDF
  Running setup.py clean for PyMuPDF
Failed to build PyMuPDF
ERROR: Could not build wheels for PyMuPDF, which is required to install pyproject.toml-based projects

解决方法:这个错误信息表示在安装 PyMuPDF 时出现了问题,可能是因为缺少 swig 工具。swig 是一个用于将 C/C++ 代码转换为 Python 可调用接口的工具,PyMuPDF 使用 swig 来生成 Python 接口。你需要先安装 swig 才能成功安装 PyMuPDF。

使用以下命令来安装 swig:

复制代码
sudo apt-get install swig

然后再重新安装 PyMuPDF即可安装成功。

3.应用简单项目:

python 复制代码
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
#要识别图片的路径:
img_path = r"./1.png"
#识别结果:
result = ocr.ocr(img_path, cls=True)
#结果输出展示:
for line in result[0]:
    print(line)

paddle识别输出结果包含三部分内容:识别文字在图中的位置boxes、识别出来的文本txts、识别结果置信度scores。

这三分存放在result列表中。其结构是这样的:

\[ \[第一行的位置,(第一行的内容,得分)\], \[第二行的位置,(第二行的内容,得分)\], \[第三行的位置,(第三行的内容,得分)

]]

由于boxes、txts、scores混合在列表中不方面使用,这里我们在识别结果的基础上把最终识别内容提取出来:

python 复制代码
boxes = []
txts = []
scores = []
for line in result[0]:
    txts.append(line[1][0])
print("txts:")
for i in range(len(txts)):
    #原格式文本输出
    print (txts[i])
    #输出不换行
    #print (txts[i],end = "")

4.本人案例实现

python 复制代码
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
#要识别图片的路径:
img_path = r"./2.png"
#识别结果:
result = ocr.ocr(img_path, cls=True)
#结果输出展示:
#for line in result[0]:
#    print(line)

boxes = []
txts = []
scores = []
for line in result[0]:
    txts.append(line[1][0])

print("txts:")
for i in range(len(txts)):
	#原格式文本输出
    print (txts[i])

待识别的图像2.png

识别结果:

tips:

1.识别时候三从上到下按行识别。

2.身份证/银行卡实现、表格识别、汽车VIN码识别、发票识别、名片识别等。相比其他OCR工具,PaddleOCR在识别精度、效率和扩展性等方面都有着较好的表现和广泛的适用性,是目前业内较为流行和优秀的OCR工具之一。

3.PaddleOCR 库可以处理倾斜、歪曲或旋转的图片。通过启用角度分类功能 (use_angle_cls=True),PaddleOCR 可以检测并自动校正这些图像的角度。

项目地址:ocr: 利用PaddleOCR识别图片文字https://gitee.com/qu-zhijie-666/ocr.git

参考链接:https://blog.csdn.net/weixin_67147229/article/details/130435525

相关推荐
Juchecar18 分钟前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805128 分钟前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_29 分钟前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机7 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机8 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机8 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i8 小时前
drf初步梳理
python·django
每日AI新事件8 小时前
python的异步函数
python
这里有鱼汤10 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python