zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python工具方法 23 应用于语义分割的F1,recall,precision,iou,kappa系数的计算工具(支持ignore_index)

Python方法应用计算工具 支持 分割 index
2023-09-14 09:15:04 时间

使用工具sklearn是可以计算F1,recall,precision,iou,kappa系数这些指标的,但是当有很多个图片需要进行评价时,往往会导致内存不够。因此对F1,recall,precision,iou,kappa系数的计算方式进行分析,发现每张图片的预测结果只需要累加到混淆矩阵中即可,因此实现了可以针对于任意容量数据的测评,并附上用于测试图片目录的代码。

1、指标计算工具

具体实现方式如以下代码所示,每一行代码都有相应的注释,其核心部分就是_fast_confusion_matrix函数(用于计算label_pred与label_true所构成的混淆矩阵),在使用时调用add_batch或add_data函数不断添加数据,需要获取结果时,直接调用evaluate函数即可。

使用时请注意,label必须为自然数,因为np.bincount只支持自然数。

此外,还需注意:

f1=(2 * precision * recall+smooth )/ (precision + recall+smooth)
碰到precsion和recall为0,会计算出f1=1的情况,因此调整为以下计算方式:
(2 * (precision+smooth) * (recall+smooth) )/ (precision + recall+2*smooth)
import numpy as np

class SegMetric: