语义分割VOC2012数据集各个分类像素点的占比权重统计

VOC2012数据集存在各个类别不均衡的问题,类别数量差异达到几十倍
采用交叉熵损失函数中我发现对于个别类别准确率很高(比如 人),但是对于个别类别几乎没有预测对
原因就在于类别不平衡
所以可以考虑采用Focal loss来训练(或者说带权交叉熵损失函数)
多分类问题的Focal loss 的权重设置为 (1-class_weight)^γ
class_weight为各个类别的占比,γ一般取值为2
我做了一个统计,得到如下结果

	  [0.7411024 , 0.0060736 , 0.00261201, 0.00764303, 0.00474575,
       0.00584511, 0.01414542, 0.01146254, 0.02120255, 0.00761459,
       0.00811121, 0.00983031, 0.01601857, 0.00837859, 0.00916765,
       0.04059725, 0.00475492, 0.00702608, 0.01034372, 0.0126314 ,
       0.00669593, 0.04399667]

可以看到除去背景外,各个类别差异是比较大的
γ取2,那么Focal loss中的权重设置就因该为

{0: 0.0670279711484909,
 1: 0.9878897070884705,
 2: 0.9947828054428101,
 3: 0.9847723245620728,
 4: 0.9905310869216919,
 5: 0.9883438944816589,
 6: 0.97190922498703,
 7: 0.9772062301635742,
 8: 0.9580444097518921,
 9: 0.984828770160675,
 10: 0.9838433265686035,
 11: 0.9804360270500183,
 12: 0.9682194590568542,
 13: 0.9833130836486816,
 14: 0.9817487001419067,
 15: 0.9204536080360413,
 16: 0.9905127882957458,
 17: 0.985997200012207,
 18: 0.9794195294380188,
 19: 0.9748967289924622,
 20: 0.9866529703140259,
 21: 0.9139423370361328}

其中各个标号对应的标签分别为

{0: 'background',
 1: 'aeroplane',
 2: 'bicycle',
 3: 'bird',
 4: 'boat',
 5: 'bottle',
 6: 'bus',
 7: 'car',
 8: 'cat',
 9: 'chair',
 10: 'cow',
 11: 'diningtable',
 12: 'dog',
 13: 'horse',
 14: 'motorbike',
 15: 'person',
 16: 'pottedplant',
 17: 'sheep',
 18: 'sofa',
 19: 'train',
 20: 'tvmonitor',
 21: 'edge'}

原类别中并不存在’edge’,但在数据集中确实存在(数值为255)
故当作一个单独的类别进行处理
但是VOC2012的扩展数据集SBD从并不总存在,使用SBD的时候应该删掉边缘部分

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值