AI个人学习
和实操指南

PaddleOCR:基于飞桨的多语言OCR工具库,支持80多种语言识别

本文于 2024-12-09 14:49 更新,部分内容具有时效性,如有失效,请留言

综合介绍

PaddleOCR 是一个基于 PaddlePaddle 的多语言 OCR 工具包,旨在提供实用且超轻量级的 OCR 系统。它支持超过 80 种语言的识别,并提供数据标注和合成工具,支持在服务器、移动设备、嵌入式和物联网设备上进行训练和部署。PaddleOCR 集成了文本图像矫正、版面区域检测、常规文本检测、印章文本检测、文本识别、表格识别等多种功能,显著降低了开发成本,并支持高性能推理、服务化部署和端侧部署等多种方式。

 

功能列表

  • 多语言识别:支持超过 80 种语言的文本识别。
  • 数据标注和合成工具:提供便捷的数据标注和合成工具,帮助快速生成训练数据。
  • 文本图像矫正:集成文本图像矫正功能,提高识别准确性。
  • 版面区域检测:支持高精度版面区域检测,适用于复杂文档的解析。
  • 表格识别:提供表格识别功能,能够准确提取表格数据。
  • 印章文本检测:支持印章文本的检测和识别。
  • 高性能推理:支持高性能推理,满足实时应用需求。
  • 多种部署方式:支持服务器、移动设备、嵌入式和物联网设备的部署。
  • 低代码开发:提供低代码全流程开发工具,降低开发门槛,提高开发效率。

 

使用帮助

安装流程

  1. 环境准备
    • 确保已安装 Python 3.6 或以上版本。
    • 安装 PaddlePaddle 框架,可以通过以下命令安装:
     pip install paddlepaddle
    
    • 安装 PaddleOCR:
     pip install paddleocr
    
  2. 下载模型
    • 从官方仓库下载预训练模型,具体下载链接和命令可以参考官方文档。
  3. 运行示例
    • 使用以下命令运行 OCR 示例: bash
      paddleocr --image_dir ./doc/imgs/11.jpg --det_model_dir ./inference/ch_ppocr_mobile_v2.0_det_infer --rec_model_dir ./inference/ch_ppocr_mobile_v2.0_rec_infer --cls_model_dir ./inference/ch_ppocr_mobile_v2.0_cls_infer

功能操作流程

  1. 文本识别
    • 准备待识别的图像文件。
    • 使用 paddleocr 命令行工具或 Python API 进行识别。
    • 示例代码:
     from paddleocr import PaddleOCR, draw_ocr
    import matplotlib.pyplot as plt
    import cv2
    ocr = PaddleOCR(use_angle_cls=True, lang='ch')
    img_path = 'path/to/your/image.jpg'
    result = ocr.ocr(img_path, cls=True)
    for line in result:
    print(line)
    # 可视化结果
    image = cv2.imread(img_path)
    boxes = [elements[0] for elements in result]
    txts = [elements[1][0] for elements in result]
    scores = [elements[1][1] for elements in result]
    im_show = draw_ocr(image, boxes, txts, scores, font_path='path/to/your/font.ttf')
    im_show = cv2.cvtColor(im_show, cv2.COLOR_BGR2RGB)
    plt.imshow(im_show)
    plt.show()
    
  2. 表格识别
    • 准备包含表格的图像文件。
    • 使用 paddleocr 命令行工具或 Python API 进行表格识别。
    • 示例代码:
     from paddleocr import PPStructure, draw_structure_result
    import cv2
    table_engine = PPStructure(show_log=True)
    img_path = 'path/to/your/table_image.jpg'
    result = table_engine(img_path)
    for line in result:
    print(line)
    # 可视化结果
    image = cv2.imread(img_path)
    im_show = draw_structure_result(image, result, font_path='path/to/your/font.ttf')
    im_show = cv2.cvtColor(im_show, cv2.COLOR_BGR2RGB)
    plt.imshow(im_show)
    plt.show()
    
  3. 版面区域检测
    • 准备包含复杂版面的图像文件。
    • 使用 paddleocr 命令行工具或 Python API 进行版面区域检测。
    • 示例代码:
     from paddleocr import PaddleOCR, draw_ocr
    import matplotlib.pyplot as plt
    import cv2
    ocr = PaddleOCR(use_angle_cls=True, lang='ch')
    img_path = 'path/to/your/layout_image.jpg'
    result = ocr.ocr(img_path, cls=True)
    for line in result:
    print(line)
    # 可视化结果
    image = cv2.imread(img_path)
    boxes = [elements[0] for elements in result]
    txts = [elements[1][0] for elements in result]
    scores = [elements[1][1] for elements in result]
    im_show = draw_ocr(image, boxes, txts, scores, font_path='path/to/your/font.ttf')
    im_show = cv2.cvtColor(im_show, cv2.COLOR_BGR2RGB)
    plt.imshow(im_show)
    plt.show()
    

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » PaddleOCR:基于飞桨的多语言OCR工具库,支持80多种语言识别

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文