PaddleOCR,图像检测识别

简介

        OCR(optical character recognition)文字识别是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

安装教程

https://github.com/PaddlePaddle/PaddleOCR/blob/static/doc/doc_ch/installation.mdhttps://github.com/PaddlePaddle/PaddleOCR/blob/static/doc/doc_ch/installation.md

框架结构

1、configs文件夹

这个文件夹下是方向分类、文本检测、文字识别的配置文件。配置文件中描述的内容包括如何训练、模型结构、优化器、训练参数、训练数据来源等。

2、deploy文件夹
这个文件夹主要是部署相关内容,也是最后需要学习的地方,暂时可以略过。

3、doc文件夹
这个文件夹包括一些测试图片。还有一个很重要的PP-OCR论文。

4、inference文件夹
这个文件夹下放着3个模型,分别是方向分类模型、文本检测模型、文本识别模型。

5、inference_results文件夹
这个文件夹是运行脚本后生成的目录,里面存放的是结果标注显示图片。

6、ppocr文件夹
这个文件夹是ppocr的主干,具体内容如下:

data:数据加载、数据扩充。

losses:分类、检测、识别模型的损失函数。

metrics:

modeling:模型组建,包含:模型结构、backbone、heads、necks、transforms。

optimizer:学习率、学习策略、优化器、正则化。

postprocess:后处理。

utils:实用工具。

7、PPOCRLabel文件夹
标注工具文件夹,等用的时候再详细笔记。

8、StyleText文件夹
风格迁移文件夹用于生成样本数据,扩充训练样本。

9、Tools文件夹
包括训练、推理、评估的python脚本。可以通在根目录下写shell文件直接调用。

本小节转自:paddleocr 使用教程_落花逐流水的博客-CSDN博客_paddleocr

具体使用

比如有一张图片如下

  •  检测、分类、识别全流程
from paddleocr import PaddleOCR, draw_ocr
from PIL import Image


# Paddleocr目前支持中英文、英文、法语、德语、韩语、日语,可以通过修改lang参数进行切换
# 参数依次为`ch`, `en`, `french`, `german`, `korean`, `japan`。
ocr = PaddleOCR(use_angle_cls=True, lang="ch") # need to run only once to download and load model into memory
img_path = 'E:\\PaddleOCR-static\\doc\\imgs\\6.jpg'
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)

# 显示结果
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in line]
print(boxes)
txts = [line[1][0] for line in line]
print(txts)
scores = [line[1][1] for line in line]
print(scores)
im_show = draw_ocr(image, boxes, txts, scores, font_path='/path/to/PaddleOCR/doc/simfang.ttf')
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
  • line的结构是一个list,每个item包含文本框,文字和识别置信度
[[[[614.0, 51.0], [753.0, 51.0], [753.0, 159.0], [614.0, 159.0]], ('38', 0.9994012117385864)], [[[640.0, 163.0], [729.0, 163.0], [729.0, 204.0], [640.0, 204.0]], ('包邮', 0.8606153130531311)], [[[349.0, 415.0], [433.0, 415.0], [433.0, 448.0], [349.0, 448.0]], ('OlAY', 0.7505984306335449)], [[[339.0, 449.0], [445.0, 449.0], [445.0, 484.0], [339.0, 484.0]], ('玉兰油', 0.9756715297698975)], [[[325.0, 486.0], [462.0, 486.0], [462.0, 503.0], [325.0, 503.0]], ('NaturalWhite', 0.927595317363739)], [[[341.0, 505.0], [446.0, 504.0], [446.0, 522.0], [341.0, 523.0]], ('白里透红系列', 0.9458746314048767)], [[[289.0, 526.0], [495.0, 523.0], [495.0, 547.0], [289.0, 550.0]], ('日间润白 SPF24/PA++', 0.9534435868263245)], [[[329.0, 554.0], [454.0, 553.0], [454.0, 571.0], [329.0, 572.0]], ('水养防晒美白霜', 0.9256204962730408)], [[[11.0, 710.0], [315.0, 715.0], [314.0, 781.0], [10.0, 776.0]], ('专柜正品', 0.9986205697059631)], [[[437.0, 716.0], [747.0, 716.0], [747.0, 785.0], [437.0, 785.0]], ('假一赔十', 0.9869048595428467)]]
  • boxes是文本框,即文本的矩形
[[[614.0, 51.0], [753.0, 51.0], [753.0, 159.0], [614.0, 159.0]], [[640.0, 163.0], [729.0, 163.0], [729.0, 204.0], [640.0, 204.0]], [[349.0, 415.0], [433.0, 415.0], [433.0, 448.0], [349.0, 448.0]], [[339.0, 449.0], [445.0, 449.0], [445.0, 484.0], [339.0, 484.0]], [[325.0, 486.0], [462.0, 486.0], [462.0, 503.0], [325.0, 503.0]], [[341.0, 505.0], [446.0, 504.0], [446.0, 522.0], [341.0, 523.0]], [[289.0, 526.0], [495.0, 523.0], [495.0, 547.0], [289.0, 550.0]], [[329.0, 554.0], [454.0, 553.0], [454.0, 571.0], [329.0, 572.0]], [[11.0, 710.0], [315.0, 715.0], [314.0, 781.0], [10.0, 776.0]], [[437.0, 716.0], [747.0, 716.0], [747.0, 785.0], [437.0, 785.0]]]
  • txts是识别出来的信息
['38', '包邮', 'OlAY', '玉兰油', 'NaturalWhite', '白里透红系列', '日间润白 SPF24/PA++', '水养防晒美白霜', '专柜正品', '假一赔十']
  • scores是识别置信度
[0.9994012117385864, 0.8606153130531311, 0.7505984306335449, 0.9756715297698975, 0.927595317363739, 0.9458746314048767, 0.9534435868263245, 0.9256204962730408, 0.9986205697059631, 0.9869048595428467]
  • 结果可视化展示

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: PaddleOCR是一个基于PaddlePaddle框架开发的OCR(Optical Character Recognition,光学字符识别)工具库,它包括文本检测、文本识别和其他相关功能。其中,文本检测模型使用了基于深度学习的精细文本检测技术,能够自适应不同尺度、姿态、形变和光照条件下的文本检测;文本识别模型使用了CRNN(Convolutional Recurrent Neural Network,卷积循环神经网络)模型进行文本识别,能够实现多字识别、中英文混合识别等功能。简言之,PaddleOCR检测识别是基于深度学习的文本检测和文本识别模型,能够高效、准确地处理不同尺度、形变、姿态和光照条件下的文本信息。 ### 回答2: PaddleOCR是一个开源的OCR工具包,它主要用于文字识别(OCR)领域中的文本检测和文本识别问题,并且它在视觉图像领域应用广泛。具体来说,PaddleOCR使用了EAST和DB模型来进行文本检测,EAST模型是一种基于卷积神经网络的模型,它能够对长文本的区域进行检测,而DB模型则是一种基于深度学习的模型,它能够进行不同方向的识别和排版。此外,PaddleOCR还结合了CRNN和Rosetta模型进行文本识别,CRNN模型是一种循环神经网络,它能够对文本进行识别和转录,而Rosetta模型则是一种基于端到端的模型,它能够对多语言和多文本方向进行识别。总体而言,PaddleOCR作为一种强大的OCR工具包,它能够识别不同方向、多语言、不同大小和不同排版的文本,用户可以利用它来解决大量的OCR问题并提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值