mmsegmentation的二值分割注意事项自用笔记

从官方文档上摘抄的注意事项

MMSegmentation 使用 num_classes 和 out_channels 来控制模型最后一层 self.conv_seg 的输出。

num_classes 应该和数据集本身类别个数一致,当是二值分割时,数据集只有前景和背景两类,所以 num_classes=2
out_channels 控制模型最后一层的输出的通道数,通常和 num_classes 相等。

当二值分割时候,可以有两种处理方法, 分别是:

  1. 设置 out_channels=2,在训练时以 Cross Entropy Loss 作为损失函数,在推理时使用 F.softmax() 归一化 logits 值,然后通过 argmax() 得到每个像素的预测结果。(我一般会用这个)

  2. 设置 out_channels=1,在训练时以 Binary Cross Entropy Loss 作为损失函数,在推理时使用 F.sigmoid() 和 threshold 得到预测结果,threshold 默认为 0.3。

对于实现上述两种计算二值分割的方法,需要在 decode_head 和 auxiliary_head 的配置里修改。

注意: 使用 reduce_zero_label 请确认数据集原始类别个数,如果只有两类,需要关闭 reduce_zero_label 即设置 reduce_zero_label=False

cited from:
官方文档

some useful tutorial:

MMSegmentation跑自己的数据进行二分类

mmsegmentation中如何输出mask

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值