目录
目录README.md

Jittor 赛题二 大规模无监督语义分割

简介

本项目包含计图挑战赛赛题二:大规模无监督语义分割赛题的代码实现。 本项目采用PASS模型(Large-scale unsupervised semantic segmentation)的Jittor版代码作为Baseline,对ImageNet-S数据集中50类的子数据集进行处理,推理出测试集中图片对应的伪标签分割图,使用统一提供的匹配算法在评测服务器完成匹配,得到最终的语义分割图。

安装

PASS模型的环境要求:

  • System: Linux(e.g. Ubuntu/CentOS/Arch), macOS, or Windows Subsystem of Linux (WSL)
  • Python version >= 3.7
  • CPU compiler (require at least one of the following)
    • g++ (>=5.4.0)
    • clang (>=8.0)

第一步: 安装计图

计图的安装可以参考以下文档Jittor install

第二步: 安装依赖

python -m pip install scikit-learn
python -m pip install pandas
python -m pip install munkres
python -m pip install tqdm
python -m pip install pillow
python -m pip install opencv-python
python -m pip install faiss-gpu

数据集下载

训练集地址:https://cloud.tsinghua.edu.cn/f/11c5210ee09343a8a008/?dl=1 测试集地址:A榜https://cloud.tsinghua.edu.cn/f/166f0b12f2eb4399b997/?dl=1 B榜https://cloud.tsinghua.edu.cn/f/438bc0f6c02a4b4bafa2/?dl=1 最终数据集的目录如下:

<root>/ImageNetS50
├── test
├── train
├── validation
└── validation-segmentation

训练

本项目可在1张RTX3090上运行。以backbone为resnet18为例,训练时间大约为20h。

第一步:Pretrain 学习形状和类别表示

运行命令

sh scripts/luss50_pass/resnet18/1_pretrain.sh

第二步:Pixel attention

运行命令

sh scripts/luss50_pass/resnet18/2_pixel_attention

第三步:Cluster 对特征进行聚类

运行命令

sh scripts/luss50_pass/resnet18/3_cluster

第四步:评估聚类效果

运行命令

sh scripts/luss50_pass/resnet18/4_eval

第五步:推理训练集的伪标签

在脚本5_inference_pixel_atte最后一行-t处改为上一步在验证集搜索得到的最好阈值

运行命令

sh scripts/luss50_pass/resnet18/5_inference_pixel_atte

第六步:finetune

运行命令

sh scripts/luss50_pass/resnet18/6_finetune

第七步:Eval

运行命令

sh scripts/luss50_pass/resnet18/7_eval

第八步:test

运行命令

sh scripts/luss50_pass/resnet18/8_test

测试结果 test.zip 被保存在 weights/pass50/pixel_finetuning/test.zip 中。

致谢

本项目基于赛事提供的baseline进行修改。

关于
122.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号