yolodet-pytorch
yolodet-pytorch copied to clipboard
关于iou-aware分支在inference时的问题
你好,我想问下在ppyolo中添加的iou-aware分支,在inference时,原论文中的iou confidence是通过α=0.4次方的形式与class的confidence的0.6次方相乘,得到inference时的confidence。 但是在代码中,yolodet/models/heads/ppyolo.py中的get_eval_bboxes函数: new_obj = torch.pow(obj, (1 - self.iou_aware_factor)) * torch.pow(ioua, self.iou_aware_factor) 实现论文的new_obj以后还进行了-log(1/new_obj-1)的操作。 我这边实现了iou-aware后假设原new_obj为0.9,但是经过-log(1/new_obj-1)后续操作得到的confidence数值是2.19,造成了识别的confidence的范围不在0到1以内。 想请教下为什么代码中这样实现,还是说在其他地方有将其重新约束到(0,1)的操作?
该部分代码主要多的参考百度paddlepaddle对于ppyolo的论文浮现。在loss方法中有对值的约束。注:paddlepaddle对ppyolo的浮现,在网络结构上与原论文有所不同
I have the similar problem. When I enabled the α=0.4, it seems the output AP would be hurt severely. Do you have any idea how to fix this?