PASCAL-VOC2012数据集及其增强版本的处理问题

本篇主要总结语义分割处理PASCAL-VOC2012数据集以及遇到的问题(axis 2 is out of bounds for array of dimension 0)

处理数据集主要参考该博客
https://blog.csdn.net/pangyunsheng/article/details/87360238
在将原始pascal voc 2012数据集中label的三通道RGB图像,转化为8-bit的灰度png图像时使用官方代码时

`
def convert_from_color_segmentation(arr_3d):
  arr_2d = np.zeros((arr_3d.shape[0], arr_3d.shape[1]), dtype=np.uint8)
  palette = pascal_palette()

  for c, i in palette.items():
    m = np.all(arr_3d == np.array(c).reshape(1, 1, 3), axis=2)
    arr_2d[m] = i

  return arr_2d`

出现‘axis 2 is out of bounds for array of dimension 0’报错
仔细研究后发现应该是numpy版本不对,尝试python3.7+numpy1.14/1.15以及python3.7+numpy1.15版本后无果,感兴趣的朋友可以继续降低版本尝试
直接将for循环的代码改为为

    # print(arr_3d.shape)
    a = np.array(c).reshape(1, 1, 3)
    a = np.repeat(a, arr_3d.shape[0], axis=0)
    a = np.repeat(a, arr_3d.shape[1], axis=1)
    # print(arr_3d[:,:,:3].shape)
    m = np.all(arr_3d[:,:,:3]==a, axis=2)
    arr_2d[m] = i

运行成功 灰度图生成正确
希望对以后使用该数据集的朋友有所帮助
数据集下载是在一个网盘下载的懒得找连接了有需要的可以评论- -

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值