1. paddleocr
PaddleOCR 是一个基于 PaddlePaddle 深度学习框架的开源 OCR(Optical Character Recognition,光学字符识别)工具。它提供了一系列的预训练模型和工具,可以用于文本检测、文本识别和文本方向检测等任务。 提供了易于使用的 Python API,可以轻松地在你的项目中集成和使用。它还支持 CPU 和 GPU 加速,并且提供了一些预训练模型供你选择使用,或者你也可以根据自己的需求训练自定义的模型。
PaddleOCR 的功能包括:
文本检测:检测图像中的文本区域,并给出其边界框。
文本识别:识别文本区域中的文字内容。
文本方向检测:检测文本区域的方向(水平、垂直、逆时针旋转、顺时针旋转等)。
2. paddleocr安装
paddleocr是基于 PaddlePaddle 框架开发的,因此在使用 PaddleOCR 之前是需要先安装paddlepaddle的。
pip install paddleocr
3. 识别图片文本
import cv2 #2使用ocr from paddleocr import PaddleOCR ocr = PaddleOCR(use_angle_cls=True, lang='ch')#第一次运行会自动下载模型,默认下载到工作目录的,ch是中文模型,也能检测英文 # 读取图片 img_path = 'ocr.jpeg'#带文本的图片 img = cv2.imread(img_path) # 执行文字检测和识别 result = ocr.ocr(img) # 绘制结果 for line in result:print(line)#如[[[[13.0, 15.0], [261.0, 8.0], [262.0, 51.0], [14.0, 58.0]], ('CMIITTD', 0.8830805420875549)]],文本区域的框的四个顶点坐标,文本内容及置信度 for word in line: print(word[-1][0])#CMIITTD print(word[-1][1])#0.8830805420875549
如果已经下载好了模型,直接实例化PaddleOCR时,指定模型路径
import cv2 from paddleocr import PaddleOCR ''' 代码中,如果没有明确指定保存路径,模型文件将被保存在user/admin目录的 .paddleocr 文件夹下。 ''' det_model_dir=r'C:\Users\admin\.paddleocr\whl\det\ch\ch_PP-OCRv4_det_infer'#文本位置检测模型 rec_model_dir=r'C:\Users\admin\.paddleocr\whl\rec\ch\ch_PP-OCRv4_rec_infer'#文本识别模型 cls_model_dir=r'C:\Users\admin\.paddleocr\whl\cls\ch_ppocr_mobile_v2.0_cls_infer'#文本方向分类模型 #2使用ocr from paddleocr import PaddleOCR # 创建 PaddleOCR 实例 ocr = PaddleOCR(use_angle_cls=True, lang='ch', det_model_dir=det_model_dir, rec_model_dir=rec_model_dir, cls_model_dir=cls_model_dir) # 读取图片 img_path = 'ocr.jpeg'#带文本的图片 img = cv2.imread(img_path) # 执行文字检测和识别 result = ocr.ocr(img) # 绘制结果 for line in result:print(line)#如[[[[13.0, 15.0], [261.0, 8.0], [262.0, 51.0], [14.0, 58.0]], ('CMIITTD', 0.8830805420875549)]] for word in line: print(word[-1][0])#CMIITTD print(word[-1][1])#0.8830805420875549
具体其他更多详细信息可以下载项目后,看里面的文档介绍,地址如下:
PaddleOCR的GitHub地址:https://github.com/PaddlePaddle/PaddleOCR
PaddleOCR的Gitee地址:https://gitee.com/paddlepaddle/PaddleOCR
关于更多的其他语言或版本的模型下载地址可以下载github项目后,找到paddleocr.py文件,里面列出了很多,比如部分如下:
MODEL_URLS = { 'OCR': { 'PP-OCRv4': { 'det': { 'ch': { 'url': 'https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar', }, 'en': { 'url': 'https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_infer.tar', }, 'ml': { 'url': 'https://paddleocr.bj.bcebos.com/PP-OCRv3/multilingual/Multilingual_PP-OCRv3_det_infer.tar' } }, 'rec': { 'ch': { 'url': 'https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar',
小结:简单使用paddleocr及官方自带的预训练模型来识别印刷体的文本,识别结果较好。如果识别结果不满意或是存在错误,自己可以在此基础上取训练自己的数据集,这里不讲解,另外paddleocr检测的边界框位置信息是整个文本区域的边界框,好像不能得到单个字符的边界框信息,如果有知道如何得到单个字符边界信息,可以留言。
不足或错误之处,欢迎指正与评论,谢谢!
参考资料:
https://www.cnblogs.com/xiaoxia722/p/14627482.html
标签:文字,PP,ch,paddleocr,文本,ocr,PaddleOCR,识别 From: https://www.cnblogs.com/wancy/p/18141729