目标检测,负样本anchor不纳入损失计算。语义分割。背景处像素纳入损失计算。
比如,SSD损失计算相关代码
N = max(1, num_foreground)
return {
"bbox_regression": bbox_loss.sum() / N,
"classification": (cls_loss[foreground_idxs].sum() + cls_loss[background_idxs].sum()) / N
}
比如,deeplabv3损失计算相关代码
def criterion(inputs, target):
'''
cityscapes语义标注,255表示背景处像素
'''
target = torch.where(torch.ne(target, 255), target, 19) # 将255转换成19,纳入损失函数计算
losses = {}
for name, x in inputs.items():
losses[name] = nn.functional.cross_entropy(x, target)
if len(losses) == 1:
return losses["out"]
return losses["out"] + 0.5 * losses["aux"]
文章探讨了在目标检测任务中,如SSD,负样本anchor不被包含在损失计算中,只考虑前景对象。而在语义分割中,如deeplabv3,即使背景像素也被纳入损失函数,如使用cross_entropy进行计算,对于cityscapes语义标注,背景像素被转换为特定类别参与损失计算。

965

被折叠的 条评论
为什么被折叠?



