Jittor 赛题二 大规模无监督语义分割赛题
简介
本项目包含了第三届计图挑战赛 赛题二 大规模无监督语义分割赛题 的代码实现。
本项目的特点是:采用了 PASS 模型(Large-scale unsupervised semantic segmentation)的 Jittor 版代码作为 Baseline 方法对图像进行大规模无监督语义分割处理,该程序会推理出测试集中图片对应的伪标签分割图,评测服务器使用统一提供的匹配算法完成匹配,得到最终的语义分割图。
安装
本项目可在 1 张 RTX3090 上运行,训练时间约为 24 小时。
运行环境
- ubuntu 20.04 LTS
- python >= 3.7
- jittor >= 1.3.0
安装依赖
执行以下命令安装 python 依赖
pip install -r requirements.txt
数据预处理
训练:将训练数据下载解压到 <root>/ImageNetS50
下即可。
测试:将测试数据 A(或测试数据 B)下载解压,并重命名放到 <root>/ImageNetS50/test
下即可。
数据集的文件树形图应当如下:
<root>/ImageNetS50
├── test
│ ├── n01443537
│ │ ├── ILSVRC2012_val_00000262.JPEG
│ │ └── ...
│ └──...
├── train
├── validation
└── validation-segmentation
训练
简单版:直接在 <root>
位置运行 train.sh
在 <root>
位置依次运行以下命令:
./scripts/luss50_pass/1_pretrain.sh
./scripts/luss50_pass/2_pixel_attention.sh
./scripts/luss50_pass/3_cluster.sh
./scripts/luss50_pass/4_eval.sh
然后运行
python ./scripts/best_threshold.py
得到 result_thresholds.png
,然后找到最优的 threshold 值,将 5_infer_pixel_attention.sh
的第 32 行 -t
后面的数值修改为这个 threshold 值。
继续运行:
./scripts/luss50_pass/5_infer_pixel_attention.sh
./scripts/luss50_pass/6_finetune.sh
./scripts/luss50_pass/7_eval.sh
推理
简单版:直接在 <root>
位置运行 test.py
生成测试集上的结果可以运行以下命令:
sh scripts/test.sh
测试结果 test.zip
被保存在 weights/pass50/pixel_finetuning/test.zip
中。
致谢
此项目直接在赛题提供的 Baseline 上做了微小更改。
Jittor 赛题二 大规模无监督语义分割赛题
简介
本项目包含了第三届计图挑战赛 赛题二 大规模无监督语义分割赛题 的代码实现。
本项目的特点是:采用了 PASS 模型(Large-scale unsupervised semantic segmentation)的 Jittor 版代码作为 Baseline 方法对图像进行大规模无监督语义分割处理,该程序会推理出测试集中图片对应的伪标签分割图,评测服务器使用统一提供的匹配算法完成匹配,得到最终的语义分割图。
安装
本项目可在 1 张 RTX3090 上运行,训练时间约为 24 小时。
运行环境
安装依赖
执行以下命令安装 python 依赖
数据预处理
训练:将训练数据下载解压到
<root>/ImageNetS50
下即可。测试:将测试数据 A(或测试数据 B)下载解压,并重命名放到
<root>/ImageNetS50/test
下即可。数据集的文件树形图应当如下:
训练
简单版:直接在
<root>
位置运行train.sh
在
<root>
位置依次运行以下命令:然后运行
得到
result_thresholds.png
,然后找到最优的 threshold 值,将5_infer_pixel_attention.sh
的第 32 行-t
后面的数值修改为这个 threshold 值。继续运行:
推理
简单版:直接在
<root>
位置运行test.py
生成测试集上的结果可以运行以下命令:
测试结果
test.zip
被保存在weights/pass50/pixel_finetuning/test.zip
中。致谢
此项目直接在赛题提供的 Baseline 上做了微小更改。