开源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]
  • 不同模型,实例化示例如下:

    python 复制代码
    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

相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her12 天前
并查集-听课笔记
笔记·算法·并查集
码流子2 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven2 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark2 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218612 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法