如何将NYUDv2数据集标签从894类转换为40类(NYUDv2-40)或者13类?

将NYUDv2数据集从894类转换为40类(NYUDv2-40)或者13类

在使用NYUDv2数据集进行语义分割的时候会发现,从官网直接下载的数据集有894类,而发现在许多论文中描述的是40类,有的也称作nyudv2-40;一些研究中也出现了13类的标签。

可参考:https://github.com/ankurhanda/nyuv2-meta-data
这里给出了40分类的label数据集:labels40.mat,可直接进行提取。

# 从mat文件提取labels
# 需要注意这个文件里面的格式和官方有所不同,长宽需要互换,也就是进行转置
import cv2
import scipy.io as scio
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os

dataFile = './labels40.mat'
data = scio.loadmat(dataFile)
labels=np.array(data["labels40"])

path_converted='./nyu_labels40'
if not os.path.isdir(path_converted):
    os.makedirs(path_converted)

labels_number=[]
for i in range(1449):
    labels_number.append(labels[:,:,i].transpose((1, 0))) # 转置
    labels_0=np.array(labels_number[i])
    #print labels_0.shape
    print (type(labels_0))
    label_img=Image.fromarray(np.uint8(labels_number[i]))
    #label_img = label_img.rotate(270)
    label_img = label_img.transpose(Image.ROTATE_270)
 
    iconpath='./nyu_labels40/'+str('%06d'%(i+1))+'.png'
    label_img.save(iconpath, optimize=True)

同时,在classMapping40.mat中给出了每个类别标签所对应的类别名:

在此基础上,class13Mapping.mat给出了由40类到13类的映射表:
在这里插入图片描述
以及对应的类别名:
在这里插入图片描述

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值