首页 > 其他分享 >Intel——PaddleOCR加速

Intel——PaddleOCR加速

时间:2023-11-13 20:01:55浏览次数:667  
标签:Intel PaddleOCR det file text path model 识别 加速

感谢Intel提供这一次机会,我能够很幸运的参与进来,并且提高自己的编程技术。

下面我介绍一下我的工作内容。

一.模型介绍

PaddleOCR是一个基于飞桨深度学习框架的OCR(Optical Character Recognition)工具包,可用于文本检测、文本识别、关键字识别等场景。它支持多种语言文字识别,包括中文、英文、日文、韩文等,并且具有较高的识别准确率和较快的识别速度。PaddleOCR已经在多个行业得到广泛应用,例如金融、医疗、物流等。

以下是使用PaddleOCR的示例代码:

import paddlehub as hub

# 加载PaddleOCR模型
ocr = hub.Module(name='chinese_text_detection_db_server')

# 图片路径
image_path = 'path/to/your/image.jpg'

# 进行文本检测
result = ocr.text_detection(images=[image_path])

# 获取文本框坐标和识别结果
boxes = result[0]['data']
text = result[0]['text']

# 打印文本框坐标和识别结果
for box, txt in zip(boxes, text):
    print('文本框坐标:', box)
    print('识别结果:', txt)

# 进行文本识别
result = ocr.ocr(images=[image_path], use_gpu=False)

# 获取识别结果
text = result[0]['text']

# 打印识别结果
print('识别结果:', text)

二.我的创新之处。

在实际使用中,尤其是有大量的数据需要识别和OCR文字提取的时候(比如年报和财报),这个时候不断循环调用PaddleOCR的模型会导致速度极慢,严重影响生产效率。

因此我采用了Intel 的 Openvino,将Pth模型转换为IR模型之后推理,利用Core编译加速不少~

三.英特尔架构使用。

core = ov.Core()

## 引用openvino库


device = widgets.Dropdown(
    options=core.available_devices + ["AUTO"],
    value='AUTO',
    description='Device:',
    disabled=False,
)


## 转换成Openvino模型
def run_model_download(model_url: str, model_file_path: Path) -> None:
    """
    Download pre-trained models from PaddleOCR resources

    Parameters:
        model_url: url link to pre-trained models
        model_file_path: file path to store the downloaded model
    """
    archive_path = model_file_path.absolute().parent.parent / model_url.split("/")[-1]
    if model_file_path.is_file(): 
        print("Model already exists")
    else:
        # Download the model from the server, and untar it.
        print("Downloading the pre-trained model... May take a while...")

        # Create a directory.
        utils.download_file(model_url, archive_path.name, archive_path.parent)
        print("Model Downloaded")


        file = tarfile.open(archive_path)
        res = file.extractall(archive_path.parent)
        file.close()
        if not res:
            print(f"Model Extracted to {model_file_path}.")
        else:
            print("Error Extracting the model. Please check the network.")
            

# A directory where the model will be downloaded.

det_model_url = "https://storage.openvinotoolkit.org/repositories/openvino_notebooks/models/paddle-ocr/ch_PP-OCRv3_det_infer.tar"
det_model_file_path = Path("model/ch_PP-OCRv3_det_infer/inference.pdmodel")

run_model_download(det_model_url, det_model_file_path)

# Initialize OpenVINO Runtime for text detection.
core = ov.Core()
det_model = core.read_model(model=det_model_file_path)
det_compiled_model = core.compile_model(model=det_model, device_name=device.value)

文字识别结果

总的来说,PaddleOCR是一种高效准确的文字识别模型,它在数据集上表现出色,尤其是经过Intel的Openvino加速之后,锦上添花!再一次感谢Intel主办方提供的这一次机会,我学到了很多,我也学会了很多。

标签:Intel,PaddleOCR,det,file,text,path,model,识别,加速
From: https://blog.51cto.com/u_15009374/8352444

相关文章

  • Intel黑客松大赛——EfficientNet分类
    1.模型介绍为什么选用EfficientNet为什么选用EfficientNet呢?EfficientNet是一种高效的卷积神经网络架构,具有以下优势:更高的准确率:EfficientNet在ImageNet数据集上取得了更好的准确率,相比其他网络结构,参数更少,模型更小,但是性能更好。更高的计算效率:EfficientNet在保持准确率的......
  • macOS系统IntelliJ IDEA安装 新手详细教程(全网最详细)
    1.安装地址:https://www.jetbrains.com/idea/download/?section=mac#section=windows 2.下载完成后,点击打开安装包,将安装包拖入Applications. 双击打开idea.同意协议.  3.进入后学生账号登录可以免费使用.或者淘宝购买激活码(有风险).支持正版! ......
  • Intellij Idea创建Java Web项目
    创建非Maven的JavaWeb项目创建项目依次点击File->New->Project指定web服务器指定项目的名称及项目文件的保存地址创建成功创建class文件和lib文件夹点击项目的WEB-INF文件夹,右键,New→Directory创建两个文件夹,classes(用来存放编译后输出的class文件)和lib(用于......
  • 网页加速的14条优化法则 - 网站开发与优化
    网页加速的14条优化法则关键字:网页加速,Web优化,性能优化,YouMonitor.Us译自:http://developer.yahoo.com/performance/rules.html最近,YouMonitor.Us在做Web应用性能优化,在网上发现了文章HighPerformanceWebSites:TheImportanceofFront-EndPerformance,感觉其14条优化法则......
  • 昇腾黑科技揭秘,DVPP硬件加速训练数据预处理
    本文分享自华为云社区《昇腾CANN7.0黑科技:DVPP硬件加速训练数据预处理,友好解决HostCPU预处理瓶颈》,作者:昇腾CANN。在NPU/GPU上进行模型训练计算,为了充分使用计算资源,一般采用批量数据处理方式,因此一般情况下为提升整体吞吐率,batch值会设置的比较大,常见的batch数为256/512,这样一......
  • 智慧旅游:遗址文化保护和传承的加速器
    智慧文旅,正成为当今旅游业的热门话题。随着科技和互联网的迅猛发展,人们对旅行方式和体验的期待也在不断提升。智慧文旅,作为结合智能科技与旅游文化的新兴领域,正逐渐改变着人们的旅行方式,开启着智能旅游的新时代。文旅+可视化一、可视化技术的综述可视化技术是指通过图形、图像、视......
  • 浪潮信息彭震:加速智算系统创新,切实解决大模型算力“买不起、建不了、算不好”难题
    2023年,生成式人工智能的爆发带来了历史性产业机遇,正在逐步改造重塑社会、经济、文化等各个领域。GPT-4、Llama2、文心、源等大模型在写文章、对话、企划、绘画、写代码等很多领域已经表现出了让人惊艳的创作能力。未来,AIGC与数字经济、实体经济的深度融合,还将创造出更多颠覆性的社......
  • C# 一款免费且离线的.NET使用的OCR,PaddleOCRSharp
    本项目是一个基于百度飞桨[PaddleOCR](https://github.com/paddlepaddle/PaddleOCR)的C++代码修改并封装的.NET的工具类库。包含文本识别、文本检测、基于文本检测结果的统计分析的表格识别功能,同时针对小图识别不准的情况下,做了优化,提高识别准确率。包含总模型仅8.6M的超轻量级中......
  • ZPN项目 3:使用 Intel ICX 编译多线程动态运行时pyd的失败记录
    使用Pybind11,可以生成供python调用接口的C++动态链接库,该库包含一个符合python启动签名的函数,并以pyd为后缀。编译生成该库,与生成一般C++库基本一致。特殊地,当采用以下全部配置生成时,程序的调用将失败:使用icx-cl编译器(兼容MSVC编译器标识的icx编译器)使用多线程动态运行时标......
  • IntelliJ IDEA怎样更改JDK版本
    一、如果想要更换Idea所使用的JDK版本,可以按照以下步骤进行:在操作系统中安装需要更换的JDK版本打开Idea,点击“File”->“ProjectStructure”->“SDKs”点击“+”添加新的JDK版本,并选择对应的JDK路径找到需要更换JDK版本的项目,在“ProjectStructure”中选择对应的JDK版本即可......