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

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

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

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

目录

识别网络

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

检测正确的图像占总图像的比例
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

相关推荐
koo36424 分钟前
李宏毅机器学习笔记21
人工智能·笔记·机器学习
聪明的笨猪猪36 分钟前
Java Redis “运维”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
~无忧花开~3 小时前
JavaScript学习笔记(二十八):JavaScript性能优化全攻略
开发语言·前端·javascript·笔记·学习·性能优化·js
一只小风华~5 小时前
学习笔记:Vue Router 中的链接匹配机制与样式控制
前端·javascript·vue.js·笔记·学习·ecmascript
泽虞6 小时前
《Qt应用开发》笔记p2
linux·开发语言·数据库·c++·笔记·qt
月临水7 小时前
Redis 学习笔记(二)
redis·笔记·学习
摇滚侠7 小时前
Spring Boot 3零基础教程,条件注解,笔记09
java·spring boot·笔记
想你依然心痛8 小时前
Spark大数据分析与实战笔记(第六章 Kafka分布式发布订阅消息系统-01)
笔记·分布式·spark
哈基鑫8 小时前
手写数字识别学习笔记
笔记·学习
润 下9 小时前
C语言——深入解析C语言指针:从基础到实践从入门到精通(三)
c语言·开发语言·经验分享·笔记·学习·程序人生·其他