标注的confidences全都太高,接近于1
wangchunin opened this issue · comments
wangchunin commented
找了一些原因,可能是由于在原版yolov5中:
# Compute conf
x[:, 5:] *= x[:, 4:5] # conf = obj_conf * cls_conf
但是我发现我这边得到的obj_conf(detection[5])比原版的要低很多,乘下来就只有0.2左右了。
我不是太清楚,这个是怎么计算的,想请教一下您😂
在您的代码中也有类似的描述:
###其实只需要对x,y,w,h做sigmoid变换的, 不过全做sigmoid变换对结果影响不大,因为sigmoid是单调递增函数,那么就不影响类别置信度的排序关系,因此不影响后面的NMS
###不过设断点查看类别置信度,都是负数,看来有必要做sigmoid变换把概率值强行拉回到0到1的区间内
谢谢!
神雕大侠 commented
我的也是同样的情况,置信度都接近于1了。这是怎么回事呀
hpc203 commented
原版的yolov5里,置信度等于目标框置信度和类别置信度的乘积,我这里的程序没有做这一步处理,导致最后得到的置信度很高,你可以在程序里加上这一步
神雕大侠 commented
你是说在做归一化之前吗?这里应该单独标出类别置信度吧,还是标记目标框置信度和类别置信度?