【语义分割】在官网提交Cityscapes测试集结果教程

1.下载官方Cityscapes数据集文件

官网的账号注册

官网https://www.cityscapes-dataset.com/

注册官网账号是需要教育邮箱的,可以在学校的小程序或者个人中心上看看自己的教育邮箱是多少。

注意,想提交自己的测试集结果是必须有一个能登陆的账号的哦。

下载数据集文件

语义分割用到的两个文件分别是

getFine_trainvaltest.zip  [241MB]

leftImg8bit_trainvaltest.zip [11GB]

分别下载下来。

处理数据集

下载并解压后,需要对getFine_trainvaltest进行处理

用CityscapesScript中的代码 代码地址https://github.com/mcordts/cityscapesScripts

找到cityscapesscript/preparation/creatTrainIdLableImgs.py 

在其中中添加一行代码 (如图中红色框线所示)

os.envrion['CITYSCAPES_DATASET']='输入自己的getFine文件的路径'

比如我的getFine路径是"home/you/下载/getFine_trainvaltest/getFine",那填"home/you/下载/getFine_trainvaltest/"就能run了。

run完以后,getFine文件就会从241MB变成878MB,打开查看会看到彩色mask。

注意,getFine的test中的并不能真的拿来用(打开查看会发现是全黑的),想查看在test上的结果必须提交到官网。

提交test数据集结果到官网

处理结果图

用自己的模型跑test后,得到的mask并不能直接上传到官网,要先将其转化为labelID。

使用代码trainID2lableID.py

# converting trainIDs to labelIDs for evaluating the test set segmenatation results of the cityscapes dataset

import numpy as np
import os
from PIL import Image



# index: trainId from 0 to 18, 19 semantic class   val: labelIDs
cityscapes_trainIds2labelIds = np.array([7, 8, 11, 12, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33],
                                        dtype=np.uint8)


def trainIDs2LabelID(trainID_png_dir, save_dir):
    print('save_dir:  ', save_dir)
    if not os.path.exists(save_dir):
        os.makedirs(save_dir)
    png_list = os.listdir(trainID_png_dir)
    for index, png_filename in enumerate(png_list):
        #
        png_path = os.path.join(trainID_png_dir, png_filename)
        # print(png_path)
        print('processing(', index, '/', len(png_list), ') ....')
        image = Image.open(png_path)  # image is a PIL #image
        pngdata = np.array(image)
        trainID = pngdata  # model prediction
        row, col = pngdata.shape
        labelID = np.zeros((row, col), dtype=np.uint8)
        for i in range(row):
            for j in range(col):
                labelID[i][j] = cityscapes_trainIds2labelIds[trainID[i][j]]

        res_path = os.path.join(save_dir, png_filename)
        new_im = Image.fromarray(labelID)
        new_im.save(res_path)


if __name__ == '__main__':
    trainID_png_dir = '../server/cityscapes/predict/'   # 自己的模型跑的test结果的目录
    save_dir = '../server/cityscapes/labelID/'          # 转换为lableID后的存放地址
    trainIDs2LabelID(trainID_png_dir, save_dir)

提交

点开官网的submit

Challenge那里选择pixel-level semantic labeling

method name那里随便自定义一下

其他的都可以不选

最后将处理好后的test结果压缩上传提交即可。

提交成功

过几分钟就会收到结果邮件啦!

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值