一、存在的问题。
conda install 总是访问失败。
二、云服务器选择
三、安装Anaconda3
进入云服务器后删除minconda文件夹
官网: https://repo.anaconda.com/archive/
在里面找到自己系统的安装包,然后右击复制链接安装。
一定要选择Anaconda,因为很多依赖问题用Minconda容易报错。
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
进入到存放 Anaconda3-2024.10-1-Linux-x86_64.sh的文件下解压
bash Anaconda3-2024.10-1-Linux-x86_64.sh
创建和激活虚拟环境,建议用python3.8
conda create -n ppocr_gpu python=3.8 -y
conda activate ppocr_gpu
四、安装paddlepaddle-gpu
官网PaddleOCR/doc/doc_ch/environment.md at release/2.7 · PaddlePaddle/PaddleOCRt
找到安装代码,paddlepaddle-gpu==2.5.2.post112 说明自己安装了相关cuda11.2的包
python3 -m pip install paddlepaddle-gpu==2.5.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
安装ppadleocr包稳定版(推荐 2.8.0)
pip install paddleocr==2.8.0
测试 paddlepaddle-gpu 有没有安装成功,看到PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.就说明安装成功了。
import paddle
paddle.utils.run_check()
五、安装nvitop进行监控GPU情况
新开一个终端输入
pip install nvitop
启动nvitop工具
直接在终端输入nvitop就可以启动了
六:测试识别图片效果
官网参考文档:PaddleOCR/ppstructure/docs/quickstart.md at release/2.7 · PaddlePaddle/PaddleOCR
测试图:
# 导入PaddleOCR主类(用于文字检测和识别)初始化OCR引擎,关键参数:
# use_angle_cls 是否启用图片旋转矫正
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
img_path3 = r"/root/lanyun-tmp/png/测试0.png"
# 执行OCR识别:
# • cls=True 表示在识别时使用初始化时设置的方向分类器
# • 完整处理流程:文本检测 -> 方向分类 -> 文字识别
result = ocr.ocr(img_path3, cls=True)
# [
# [ [[左上x,左上y], [右上x,右上y], [右下x,右下y], [左下x,左下y]], ("识别文字", 置信度) ],
# [ ... ], # 其他识别结果
# ]
print("************************************************")
print(result)
print("************************************************")
# text_list = [line[1][0] for line_group in result for line in line_group for line_group in result]
text_list = [line[1][0] for group in result for line in group]
print(text_list)
print("识别文本:\n", "\n".join(text_list))
新建一个png文件存储图片,和代码1.py,在1.py目录下运行 python 1.py
结果评测:
用时,识别 0.356s ,位置矫正 0.042s,文字识别0.093s,总计0.491s
使用的模型是
文本检测:ch_PP-OCRv4_det_infer
文本矫正:ch_ppocr_mobile_v2.0_cls_infer
文本识别:ch_PP-OCRv4_rec_infer
测试身份证(无框表格)图片:
效果:模糊的姓名,日等字没有识别到。输出的效果语义是断的。
时间:0.5s
七、PDF文件识别
先把PDF的每一页变成图片,再进行图片识别。
先安装PyMuPDF
pip install PyMuPDF==1.24.1
再新建2.py
from paddleocr import PaddleOCR
def get_image_info(img_path):
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
# 读取图片文件
result = ocr.ocr(img_path, cls=True)
# 提取识别文本列表
text_list = [line[1][0] for group in result for line in group]
# print(text_list)
# 按行输出文本列表的信息
image_text = "\n".join(text_list)
# print("识别文本:", image_text)
print(image_text)
return image_text
# # 本地的pdf路径 需要先下载PyMuPDF库,把PDF的每一页变成图片
img_path3 = r"/root/lanyun-tmp/png/中华人民共和国仲裁法.pdf"
print(get_image_info(img_path3))
# # print(type(get_image_info(img_path3)))
结果分析:
用时3.67s
资源消耗情况:峰值。
结论,第一页的时间0.5s左右,后面的速度都很快,资源消耗不高。
八、结论
1.ppocr-gpu开源项目的文字识别能力对于长PDF(不含表格公式)的效果最好,因为PDF的首页用时最长,后面的页码识别速度快。但是涉及到的印章信息不能识别。
2.ppocr-gpu开源项目的文字识别对于身份证、营业执照(无框表格)、有框表格的识别效果不好,会打断语义输出、后期抽取文字信息较难处理。
3.ppocr使用的默认模型是
文本检测:ch_PP-OCRv4_det_infer
文本矫正:ch_ppocr_mobile_v2.0_cls_infer
文本识别:ch_PP-OCRv4_rec_infer
4.消耗的GPU资源不大,测试中监控最高4GB显存。
5.识别速度在这个服务器中0.5s左右。