【详解】文本检测OCR模型的评价指标

关于文本检测OCR模型的评价指标

前言:网上关于评价标准乱七八糟的,有关于单词的,有关于段落的,似乎没见过谁解释一下常见论文中常用的评价指标具体是怎么计算的,比如DBNet,比如RCNN,这似乎好像默认大家都知道咋算了。

好吧,我不知道,我刚搞懂,做个笔记。

目录

  • 关于文本检测OCR模型的评价指标
    • 识别网络
    • 检测网络
    • 举个非常好的例子
      • 计算如下:
        • 检测算法指标计算:
        • 整体OCR系统指标计算:

识别网络

识别网络是最简单的,只有一个指标,就是准确率

检测正确的图像占总图像的比例
a c c u r a c y = 检测正确的小图数量 数据集中所有的小图数量 accuracy = \frac{检测正确的小图数量}{数据集中所有的小图数量} accuracy=数据集中所有的小图数量检测正确的小图数量

这里的图像指的是“小图”,如下所示:

请添加图片描述
请添加图片描述

识别结果就是文本,如果识别结果与标注一致,即为正样本。

检测网络

检测网络就是采用的二分类的最简单的混淆矩阵
有框没框,框的位置对不对,都需要设定阈值进行限定

在这里插入图片描述

Precision  = T P T P + F P \text { Precision }=\frac{T P}{T P+F P}  Precision =TP+FPTP
Recall  = T P T P + F N \text { Recall }=\frac{T P}{T P+F N}  Recall =TP+FNTP
F Score  = ( 1 + β 2 ) Precision  ⋅ Recall  β 2 ⋅ Precision  + Recall  ( β 系数一般取 1 ) F_{\text {Score }}=\left(1+\beta^2\right) \frac{\text { Precision } \cdot \text { Recall }}{\beta^2 \cdot \text { Precision }+ \text { Recall }} (\beta系数一般取1) FScore =(1+β2)β2 Precision + Recall  Precision  Recall β系数一般取1

两者和在一起组成OCR系统,以paddleOCR为例

官方指标评估代码与方法

PaddleOCR计算三个OCR检测相关的指标,分别是:Precision、Recall、Hmean(F-Score)。

PS:这里,Hmean与F-Score在PaddleOCR-V1中是分开的,Hmean特指检测位置部分的指标,F-Score特指OCR系统的指标,V2V3就没区分了,全部都是OCR系统的指标。

区别在于:TP的计算,OCR系统的指标需要:真实有框的位置,预测为有框,且识别结果正确。

依据论文:
在这里插入图片描述

举个非常好的例子

请添加图片描述
如上图所示:

  • 真实有框的数量为10个
  • 真实有框和预测有框对上的数量有7个:TP=7(绿蓝)
  • 但其中只有5个识别正确,所以:TP=5(红绿蓝)
  • 真实没框和预测有框的数量为2个:FP=2(纯蓝)
  • 真实有框但没有预测出来的有3个:FN=3(纯绿)

计算如下:

检测算法指标计算:

Precision  = T P T P + F P = 7 7 + 2 = 0.7778 \text { Precision }=\frac{T P}{T P+F P}=\frac{7}{7+2}=0.7778  Precision =TP+FPTP=7+27=0.7778
Recall  = T P T P + F N = 7 7 + 3 = 0.7 \text { Recall }=\frac{T P}{T P+F N}=\frac{7}{7+3}=0.7  Recall =TP+FNTP=7+37=0.7
F Score  = ( 1 + β 2 ) Precision  ⋅ Recall  β 2 ⋅ Precision  + Recall  = ( 2 ) 0.7778  ⋅ 0.7  1 ⋅ 0.7778  + 0.7  = 0.73685 F_{\text {Score }}=\left(1+\beta^2\right) \frac{\text { Precision } \cdot \text { Recall }}{\beta^2 \cdot \text { Precision }+ \text { Recall }}=\left(2\right) \frac{\text { 0.7778 } \cdot \text { 0.7 }}{1 \cdot \text { 0.7778 }+ \text {0.7 }}=0.73685 FScore =(1+β2)β2 Precision + Recall  Precision  Recall =(2)1 0.7778 +0.7  0.7778  0.7 =0.73685

整体OCR系统指标计算:

Precision  = T P T P + F P = 5 5 + 2 = 0.714 \text { Precision }=\frac{T P}{T P+F P}=\frac{5}{5+2}=0.714  Precision =TP+FPTP=5+25=0.714
Recall  = T P T P + F N = 5 5 + 3 = 0.625 \text { Recall }=\frac{T P}{T P+F N}=\frac{5}{5+3}=0.625  Recall =TP+FNTP=5+35=0.625
F Score  = ( 1 + β 2 ) Precision  ⋅ Recall  β 2 ⋅ Precision  + Recall  = ( 2 ) 0.714  ⋅ 0.625  1 ⋅ 0.714  + 0.625  = 0.66654 F_{\text {Score }}=\left(1+\beta^2\right) \frac{\text { Precision } \cdot \text { Recall }}{\beta^2 \cdot \text { Precision }+ \text { Recall }}=\left(2\right) \frac{\text { 0.714 } \cdot \text { 0.625 }}{1 \cdot \text { 0.714 }+ \text { 0.625 }}=0.66654 FScore =(1+β2)β2 Precision + Recall  Precision  Recall =(2)1 0.714 + 0.625  0.714  0.625 =0.66654

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/107495.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GIT 常用指令

基础指令 $ git init #初始化仓库,在该文件夹创建的为workspace$ git add . #已暂存 [.通配符,全部添加]$ git commit -m "log add file" #提交到仓库,并写了日志 ”log add file“$ git status #查看状态,可查看被修改的文件…

React 使用 useRef() 获取循环中所有子组件实例

目录 背景思考实现完整代码:成功运行后的界面如下: 知识点总结uesRef() 作对象处理useImperativeHandle() 父组件操作引入子组件的内部方法最后 背景 之前项目中使用了antd pro 中的 可编辑表格 (EditableProTable),在页面中表格要经过多层遍…

MyBatis与Spring整合以及AOP和PageHelper分页插件整合

目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系 二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件 3.利用mybatis逆向工程生成模型层代码 三、常用注解 四、AOP整合pageHelper分页插件 创建一个切面 测试 前言 MyBatis是一个开源的…

Python 合并多个 PDF 文件并建立书签目录

今天在用 WPS 的 PDF 工具合并多个文件的时候,非常不给力,居然卡死了好几次,什么毛病?! 心里想,就这么点儿功能,居然收了我会员费都实现不了?不是吧…… 只能自己来了,…

基于Java+SpringBoot+Vue前后端分离医院后台管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

AI自动驾驶也“区分人种”?有色人种和儿童面临更高碰撞风险

8月27日消息,随着人工智能(AI)的快速发展,尤其是在自动驾驶汽车领域,这项技术给人类带来了巨大的便利。 然而,据最新的研究发现,自动驾驶汽车中的行人检测软件可能存在一些严重问题,…

2023泉城杯 easy_log的解题

压缩包解压里面是一个 access.log 日志文件。 捋数据 进行过远程命令执行 这个后续没啥用 可疑字符串 可疑字符串/upload/ma.php?logvar_dump(%27cGFzc3dvcmQ6IHNAZncjdiVmOQ%27);这个首先就判断是不是base64编码(英文大小写、数字和、/)以及用作后缀…

tomcat高可用和nginx高可用

tomcat高可用和nginx高可用 小白教程,一看就会,一做就成。 1.什么是高可用? 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务…

视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理…

变量函数及销毁函数中的变量-PHP8知识详解

今天分享php8知识详解中的变量函数及销毁函数中的变量,以及相应的示例代码。 1、变量函数 变量函数,是指通过变量来访问的函数。当变量后有圆括号时,PHP将自动寻找与变量的值同名的函数,然后执行该函数。 变量函数引用&#xf…

线性代数的本质笔记(3B1B课程)

文章目录 前言向量矩阵行列式线性方程非方阵点积叉积基变换特征向量与特征值抽象向量空间 前言 最近在复习线代,李永乐的基础课我刷了一下,感觉讲的不够透彻,和我当年学线代的感觉一样,就是不够形象。 比如,行列式为…

Linux监控基础命令

Linux资源监控 一.资源监控常用命令汇总 内存:top、free、vmstat、pmap I/O:vmstat、sar CPU:top、vmstat、mpstat、iostat 二.监控命令 日常检测使用top和free就足够了,如果要对系统进行日常监控可以使用zabbix或者prometh…

OLED透明屏曲面技术:创新突破引领显示行业未来

OLED透明屏曲面技术作为一项重要的显示技术创新,正在成为显示行业的焦点,其引人注目的优势和广泛应用领域使其备受关注。 本文将详细介绍OLED透明屏曲面技术的优势、应用领域以及市场前景,同时展望其未来的发展趋势,以期带给读者…

1.linux的常用命令

目录 一、Linux入门 二、Linux文件系统目录 三、Linux的vi和vim的使用 四、Linux的关机、重启、注销 四、Linux的用户管理 五、Linux的运行级别 六、Linux的文件目录指令 七、Linux的时间日期指令 八、Linux的压缩和解压类指令 九、Linux的搜索查找指令 ​​​​​​…

创建型模式-建造者模式

使用多个简单的对象一步一步构建成一个复杂的对象 主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部…

Python3 字符串

Python3 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号( 或 " )来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 Hello World! var2 "Runoob" Python 访问字符串中的值 Python 不支持单字…

学习设计模式之享元模式,但是宝可梦

前言 作者在准备秋招中,学习设计模式,做点小笔记,用宝可梦为场景举例,有错误欢迎指出。 享元模式 1 介绍 享元模式很好理解,它主要是为了减少创建对象的数量,属于结构型设计模式 目的:减少…

DDR与PCIe:高性能SoC的双引擎

SoC芯片无处不在,小到家电控制的MCU,大到手机芯片,我们都会接触到。如今大部分芯片设计公司都在开发SoC芯片,一颗SoC芯片可以集成越来越多的功能,俨然它已成为IC设计业界的焦点。 高性能、高速、高带宽的互联和存储的…

Redis 执行 RDB 快照期间,主进程可以正常处理命令吗?

执行了 save 命令,会在主进程生成 RDB 文件,由于和执行操作命令在同一个线程,所以如果写入 RDB 文件的时间太长,会阻塞主进程。 执行 bgsave 过程中,由于是交给子进程来构建 RDB 文件,主进程还是可以继续工…

Docker安装及Docker构建简易版Hadoop生态

一、首先在VM创建一个新的虚拟机将Docker安装好 更新系统:首先打开终端,更新系统包列表。 sudo apt-get update sudo apt-get upgrade下图是更新系统包截图 安装Docker:使用以下命令在Linux上安装Docker。 sudo apt-get install -y docker.i…