takaniwa / DSNet

a novel real-time model in semantic segmentation
MIT License
99 stars 3 forks source link

训练自己的数据集时,CE的ignore_index如何处理? #16

Open feiyuhuahuo opened 1 month ago

feiyuhuahuo commented 1 month ago

1.我看到官方数据集在训练时会输入ignore_index来忽略图中对应特定类别的区域,那么请问算mIoU的时候,这些区域其实也是不考虑在内的吗? 2.我的个人数据集,有3类前景,但我不希望背景在预测时被判为任何一类前景,这样只能给背景也额外算作一类,但背景占据了图片的大部分面积,请问DSNet适用于这种情况吗

takaniwa commented 1 month ago

1.我看到官方数据集在训练时会输入ignore_index来忽略图中对应特定类别的区域,那么请问算mIoU的时候,这些区域其实也是不考虑在内的吗? 2.我的个人数据集,有3类前景,但我不希望背景在预测时被判为任何一类前景,这样只能给背景也额外算作一类,但背景占据了图片的大部分面积,请问DSNet适用于这种情况吗

回答: 第一个问题:不考虑在内。 第二个问题:我没有完全看明白你的提问,但我猜您是碰到了一个长尾问题。这种问题解决方式与模型无关,有几个比较简单的解决方法。比如训练时不计算背景的损失,这可以加快收敛,提高前景的recall,但是会可能会增加误检概率。或者降低背景的loss_weight来平衡前景和背景,比如说背景0与前景1,2,3的系数分别为0.1,1,1,1。还有一些其他的解决方式,这就需要根据你的工程来提出解决办法。