首页 > 其他分享 >开源OCR模型对比

开源OCR模型对比

时间:2024-04-16 22:44:39浏览次数:28  
标签:PP ch onnx 模型 infer 开源 rec OCR 对比

引言

目前,开源的项目中有很多 OCR 模型,但是没有一个统一的基准来衡量哪个是更好一些的。
面对这么多的模型,让我们有些不知所措。为此,最近一段时间以来,我一直想要构建这样一个基准,现在来看,已经初步具有雏形。

为了能更好地评测各个模型效果,收集标注了两个开源评测集:

为了能够方便计算各个模型指标,整理开源了两个计算常用指标的库:

以下结果均是基于以上 4 个库来的,其指标结果仅仅代表在指定评测集上效果,不代表在其他测试集上结果也是如此,仅供参考。

以下表格中推理时间是基于 MacBook Pro M2 运行所得,不同机器会有差别,请侧重查看彼此之间的比较。

指标计算都是在相同参数下计算得来,差别仅在于模型文件不同。

对应模型下载地址,参见:link

文本检测模型

评测依赖仓库:

  • rapidocr_onnxruntime==1.3.16: link
  • 计算指标库 TextDetMetric: link
  • 测试集 text_det_test_dataset: link

详情可以移步AI Studio运行查看。

模型 模型大小 Precision Recall H-mean Speed(s/img)
ch_PP-OCRv4_det_infer.onnx 4.5M 0.8301 0.8659 0.8476 0.2256
ch_PP-OCRv3_det_infer.onnx 2.3M 0.8021 0.8457 0.8234 0.1660
ch_PP-OCRv2_det_infer.onnx 2.2M 0.7579 0.8010 0.7788 0.1570
ch_PP-OCRv4_det_server_infer.onnx 108M 0.7922 0.8533 0.8216 3.9093
ch_ppocr_server_v2.0_det_infer.onnx 47M 0.7298 0.8128 0.7691 0.7419
读光-文字检测-轻量化端侧 DBNet 行检测模型-中英-通用领域 5.8M 0.7666 0.8128 0.7890 0.6636
读光-文字检测-DBNet 行检测模型-中英-通用领域 47.2M 0.7749 0.8167 0.7952 0.4121
读光-文字检测-行检测模型-中英-通用领域 未跑通 312M - - - -

不同推理引擎下,效果比较:

推理引擎 模型 模型大小 Precision Recall H-mean Speed(s/img)
rapidocr_onnxruntime==1.3.16 ch_PP-OCRv4_det_infer.onnx 4.5M 0.8301 0.8659 0.8476 0.2256
rapidocr_openvino==1.3.16 ch_PP-OCRv4_det_infer.onnx 4.5M 0.8339 0.8629 0.8481 0.6447
rapidocr_paddle==1.3.18 ch_PP-OCRv4_det_infer.onnx 4.5M 0.8301 0.8659 0.8476 0.9924

文本识别模型

评测依赖仓库:

  • rapidocr_onnxruntime==1.3.16: link
  • 计算指标库 TextRecMetric: link
  • 测试集 text_rec_test_dataset: link
模型 对应 PaddleOCR 分支 模型大小 Exact Match Char Match Speed(s/img)
ch_PP-OCRv4_rec_infer.onnx release/v2.7 10M 0.8323 0.9355 0.6836
ch_PP-OCRv3_rec_infer.onnx release/v2.6 11M 0.7097 0.8919 0.6362
ch_PP-OCRv4_rec_server_infer.onnx release/v2.7 86M 0.7968 0.9381 0.6967
ch_PP-OCRv2_rec_infer.onnx release/v2.3 8.0M 0.6387 0.8398 0.6138
ch_ppocr_mobile_v2.0_rec_infer.onnx release/v2.0 4.3M 0.5323 0.7823 0.5575
读光-文字识别-行识别模型-中英-文档印刷体文本领域 - 73M 0.5968 0.7705 -
读光-文字识别-行识别模型-中英-通用领域 - 73M 0.5839 0.7615 -
读光-文字识别-行识别模型-中英-自然场景文本领域 - 73M 0.5903 0.7779 -
读光-文字识别-轻量化端侧识别模型-中英-通用领域 - 7.4M 0.5484 0.7515 -
读光-文字识别-CRNN 模型-中英-通用领域 - 46M 0.5935 0.7671 -
OFA 文字识别-中文-通用场景-base 未跑通 - - - - -

不同推理引擎下,效果比较:

推理引擎 模型 模型大小 Exact Match Char Match Speed(s/img)
rapidocr_onnxruntime==1.3.16 ch_PP-OCRv4_rec_infer.onnx 10M 0.8323 0.9355 0.6836
rapidocr_openvino==1.3.16 ch_PP-OCRv4_rec_infer.onnx 10M 0.8323 0.9355 0.6836
rapidocr_paddle==1.3.18 ch_PP-OCRv4_rec_infer.onnx 10M 0.8323 0.9355 0.6836
  • 输入 Shape:

    • v2: [3, 32, 320]
    • v3~v4: [3, 48, 320]
  • 不同模型,实例化示例如下:

    from rapidocr_onnxruntime import RapidOCR
    
    # v3 or v4
    engine = RapidOCR(
      rec_model_path="models/ch_PP-OCRv3_rec_infer.onnx",
    )
    
    # v2
    engine = RapidOCR(
      rec_model_path="models/ch_ppocr_mobile_v2.0_rec_infer.onnx",
      rec_img_shape=[3, 32, 320],
    )
    

后续更新,请移步:link

标签:PP,ch,onnx,模型,infer,开源,rec,OCR,对比
From: https://www.cnblogs.com/shiwanghualuo/p/18139459

相关文章

  • 【chatgpt】IoCreateDevice和IoCreateSymbolicLink是两个重要的函数
    在Windows设备驱动程序开发中,IoCreateDevice和IoCreateSymbolicLink是两个重要的函数,用于创建设备对象和符号链接,它们的作用如下:IoCreateDevice:作用:创建一个设备对象,驱动程序使用设备对象来与系统和其他驱动程序进行通信。参数:需要提供设备扩展名和设备的类型、特征以及......
  • 一个简单的开源消息中间件 FolkMQ v1.4.2 发布
    功能简表角色功能生产者(客户端)发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。支持Qos0、Qos1消费者(客户端)订阅、取消订阅。消费-ACK(自动、手动)服务端发布-Confirm、订阅-Confirm、取消订阅-Confirm、派发-Retry、派发-Delayed本......
  • C++身份核验接口代码、身份证OCR、身份证实名认证API
    实名认证是什么意思呢?一般指的是对用户资料真实性进行的验证审核,这样有利于建立完善且可靠的互联网环境。如果交易双方使用的都是虚假信息,那么在诸多环节会存在很大的风险。另外,还有游戏平台对玩家进行实名认证,防止未成年人注册。实名认证有利于网络绿化,所以在互联网发展......
  • 一周涨 15k Star 的开源项目「GitHub 热点速览」
    https://www.cnblogs.com/xueweihan/p/18137334 你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练GPT-2?GitHub上就有这么一位大神(AndrejKarpathy),他仅用大约1k行的C代码就完成了GPT-2模型的训练,代码纯手撸、不依赖任何机器学习框架,作者这么做仅仅是觉得很有趣......
  • 用Vue全家桶纯手工搓了一个开源版「抖音」
    前言2018年刚入行前端时,公司使用的还是Angular。Angular什么都好,就是写代码时的体验老糟心了,改一个地方,按下保存之后,要等好几秒刷新后才能看到效果,Webstorm无比好用的自动保存,对我来说反而像是一个负担。然而2024年了,Angular已经更新了17版本,还是没有解决这个问题,热替换依然那么......
  • 开源协议
    自由使用,不需要有任何担心的开源协议Apache2.0是自由的协议,可以放心的使用,修改后可以闭源商用。具备很强传染行的开源协议,使用时要小心LGPL使用是自由的,但是修改后必须开源。GPL云端服务可以使用并不需要开源,但是修改后也必须开源。AGPL不要使用如何查看开源协议......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    思维导航前言工具介绍支持系统工具源代码工具下载并安装部分功能截图项目源码地址优秀项目和框架精选DotNetGuide技术社区交流群前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推......
  • 分享一款嵌入式开源按键框架代码工程MultiButton
    一、工程简介MultiButton是一个小巧简单易用的事件驱动型按键驱动模块。Github地址:https://github.com/0x1abin/MultiButton这个项目非常精简,只有两个文件:(1)可无限扩展按键;(2)按键事件的回调异步处理方式可以简化程序结构,去除冗余的按键处理硬编码,让按键业......
  • 一个.NET开源的功能丰富、灵活易用的 Windows 窗口增强神器
    前言通常情况下Windows中的软件窗口界面一般只包含还原、移动、大小、最大化、最小化、关闭等几个基本的操作: 今天大姚给大家推荐一个.NET开源、免费(MITLicense)、功能丰富、灵活易用、小巧(不到1M)的Windows窗口增强工具:SmartSystemMenu。工具介绍SmartSystemMenu扩展了......
  • Python调用微信OCR识别文字和坐标
    原理在看雪看到一篇文章:逆向调用QQ截图NT与WeChatOCR-软件逆向。里面说了怎么调用微信和QQ本地的OCR模型,还有很详细的分析过程。我稍微看了下文章,多的也看不懂。大概流程是使用mmmojo.dll这个dll来与WeChatOCR.exe做通信的,也是用它来启动和关闭WeChatOCR.exe进程的。所以关键只......