FROC曲线

本文介绍了FROC曲线在肋骨骨折比赛中的应用,涉及实例分割的评估流程,包括计算预测骨折区域与真实骨折的IOU,通过p_thresh和iou_thresh调整来绘制曲线,并解释了平均召回率、最大召回率和平均假阳性个数等关键指标的计算方法。
摘要由CSDN通过智能技术生成

两次了,问这个froc,我都不知道是个啥,所以来学习了

froc曲线其实与roc曲线类似

froc把横坐标换成了平均的假阳性个数

这里主要对着这个代码讲https://github.com/M3DV/RibFrac-Challenge/blob/master/ribfrac/evaluation.py

前置知识

这是一个肋骨骨折的比赛,有2个任务,第1个是检测(实例分割),第2个是对分割的结果进行分类
froc针对第一个任务

这个比赛要求提交
1.实例分割的.nii.gz文件
2.一个csv
每一行是一个骨折的区域的信息

第一列是图片
第二列是第几个骨折区域
第三列是这个区域骨折的置信度
第四列是骨折类型(对froc不重要)
在这里插入图片描述
这个是ground truth
含义与上面一样
在这里插入图片描述

FROC

首先对每一个图片进行处理

遍历预测的骨折区域,计算这个区域与每一个真实骨折的区域的iou
那么这个预测的骨折区域命中的真实骨折区域,就是iou最大的那个

举个例子
比如第 k k k个预测的骨折区域,与真实的肋骨骨折区域的iou为 [ 0.5 , 0.7 , 0.6 , 0.3 ] \left[0.5,0.7,0.6,0.3\right] [0.5,0.7,0.6,0.3]
那么算命中1号(下标从0计算)

当然如果真的这么算iou,可能复杂度比较高
这份代码的做法是
对预测图和真实的图,取交集和并集,分别计算连通域
遍历交集的连通域,计算那个连通域所属的骨折的iou
其实效果是一样的

计算的结果如下图
第一列是预测的骨折区域的编号
第二列是命中的iou
第三列是命中的真实的骨折的区域的类别
第四列是预测的骨折区域的类别的名字(不重要)
第五列是预测的骨折区域的置信度
第六列是命中的真实的骨折的区域的类别的名字(不重要)
第七列是真实的骨折的个数
在这里插入图片描述
接下来有两个阈值
一个是预测的阈值p_thresh
一个是iou的阈值 iou_thresh

iou的阈值就是控制你的预测不能太离谱(这里固定是0.2)
预测的阈值就和roc曲线的那个阈值类似
通过调整这个阈值,我们可以得到不同的坐标(平均假阳性个数,召回率)
在这里插入图片描述
接着是比赛里的一些指标
在这里插入图片描述

这个1,2,4,8,0.5的recall的计算方法
首先1,2,4,8,0.5代表的是每一张图的平均的假阳性个数
(比如你阈值贼高,那你可能就预测1个阳性,那自然假阳性个数就低了)

首先对计算出来的(平均假阳性个数,召回率),按照假阳性排序
以1为例,找到平均假阳性个数中<=1的点当最接近1的点
找到平均假阳性个数中>=1的点当最接近1的点
然后对这两个点做一阶线性插值,代入1
这里看一下代码就懂了
在这里插入图片描述

比如这个例子中就是取
(0.96250,0.24138)
(1.1,0.25287)
这两个点
做一阶线性插值,代入1
在这里插入图片描述
插值完算出来就是这样
在这里插入图片描述
average_recall就是这5个召回率的平均
max_recall就是不同的阈值下算出来的的召回率中最大的
average_fp_at_max_recall就是不同的阈值下算出来的的平均假阳性个数中最大的(不是特别懂这命名)
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nightmare004

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值