1、目标检测中的ignore
目标过小,过于模糊当做ignore属性处理,训练时,给样本-1类别(背景为0类别)。
评测时候需要考虑ignore样本,输出不算错。
2、具体评测:
输入:所有的gt框、gt_ignore框、dt框
评测逻辑,先获取tps和fps,再计算各个值。因为所有的框都是正样本,所以只有fp以及tp,没有fn和tn.
1)对dt框,按照score排序,匹配gt框和gt_ignore框与dt框的iou,获取每一个框是否正确;
- dt框,gt框匹配,gt框为正样本,那tp=1,fp=0;
- dt框不与gt框+gt_ignore匹配,那tp=0,fp=1;
- dt框,gt_ignore框匹配,gt框为正样本,那tp=0,fp=0;
这样就可以获取tps,fps,以及scores三个数组
2)根据tps,fps,以及scores获取各个指标。首先对tps和fps做累加,方便计算当前score下的tp和fp
- 那么,当前score下的precision为tp/(tp+fp),recall为tp/gt_bboxs数量,这样就可以得到precision和recall曲线,近似计算AP值了。(可以看出ignore设置为0,非常合理,这样即使模型输出了也不算错。也可以直接在tps、fps、scores三维数组中,去除ignor部分,结果是一样的)