项目简介
本项目基于Jittor框架实现大规模无监督语义分割。以PASS模型为基线,该模型包含自监督学习训练、伪类别生成、模型微调、推理四个步骤。同时,项目基于PASS模型和Segment Anything Model提供了四种提升mIoU分数的解决方案。
项目的主要特性和功能
- 多步分割方案:采用PASS模型的四步流程实现大规模无监督语义分割。
- 优化方案:提供四种方案有效提升mIoU分数。
- 可视化效果好:改进后对象定位准确,可检测多个对象。
- 模型定义与变体:实现ViT模型基本结构和变种,支持不同大小模型。
- 多种训练模式:支持预训练、像素注意力训练和微调等训练模式。
- 特征提取:可从预训练模型提取特征用于后续任务。
- 注意力机制:实现像素级注意力模块,增强像素级特征表示。
- 损失函数定义:定义用于回归任务的损失函数。
安装使用步骤
安装
本项目在4块2080ti GPU上实现,总训练时间约2天。
环境要求
- ubuntu 20.04 LTS
- python >= 3.7
- jittor >= 1.6.1
训练
在项目源码文件所在目录下,执行以下命令进行训练:
bash
bash scipts/modified_luss50_pass_jt.sh
推理
在项目源码文件所在目录下,执行以下命令进行推理:
python
python test.py
引用
如果使用本项目,请引用以下文献:
@article{gao2022luss,
title={Large-scale Unsupervised Semantic Segmentation},
author={Gao, Shanghua and Li, Zhong-Yu and Yang, Ming-Hsuan and Cheng, Ming-Ming and Han, Junwei and Torr, Philip},
journal=TPAMI,
year={2022}
}
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】