PFENet
这是我们论文《PFENet: 用于少样本分割的先验引导特征增强网络》的实现,该论文已被IEEE模式分析与机器智能汇刊(TPAMI)接收。
置顶
我们最新的工作可在以下链接获取:
用于少样本分割的层次密集相关蒸馏(CVPR 2023):https://github.com/Pbihao/HDMNet
广义少样本语义分割(CVPR 2022):https://github.com/dvlab-research/GFS-Seg
开始使用
环境
- torch==1.4.0(torch版本 >= 1.0.1.post2应该可以运行此仓库)
- numpy==1.18.4
- tensorboardX==1.8
- cv2==4.2.0
数据集和数据准备
请下载以下数据集:
- PASCAL-5i 基于 PASCAL VOC 2012 和 SBD,其中验证图像应从训练样本列表中排除。
图像可在此获取:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
注释:https://drive.google.com/file/d/1ikrDlsai5QSf2GiSUR3f8PZUzyTubcuF/view?usp=sharing
注意:如果您希望复现论文中的结果,请按照提供的数据列表使用指定的数据。由于我们遵循了Shaban的OSLSM工作,我们只使用了完整数据集的一个子集,而不是全部12,000条数据。然而,不同的研究可能有不同的使用需求。为确保公平比较,我们恳请您根据具体需求选择数据。
- COCO 2014
此代码从.txt文件读取数据,每行包含图像和相应标签的路径,以空格分隔。示例如下:
图像路径_1 标签路径_1
图像路径_2 标签路径_2
图像路径_3 标签路径_3
...
图像路径_n 标签路径_n
然后在配置文件中更新训练/验证/测试列表路径。
[更新] 我们已上传论文中使用的列表。
- COCO的训练/验证列表分别包含82081和40137张图像。这是COCO的默认训练/验证划分。
- PASCAL5i的训练/验证列表分别包含5953和1449张图像。训练列表应为voc_sbd_merge_noduplicate.txt,验证列表是pascal voc的原始验证列表(val.txt)。
获取voc_sbd_merge_noduplicate.txt:
- 我们首先合并原始VOC(voc_original_train.txt)和SBD(sbd_data.txt)训练数据。
- [重要] sbd_data.txt与PASCALVOC 2012验证数据不重叠。
- 合并后的列表(voc_sbd_merge.txt)通过脚本(duplicate_removal.py)处理以删除重复的图像和标签。
运行演示/使用预训练模型进行测试
-
请下载预训练模型。
-
我们提供了8个预训练模型:4个基于ResNet-50的模型用于PASCAL-5i,以及4个基于VGG-16的模型用于COCO。
-
通过指定目标分割和加载检查点的路径(
weights
)来更新配置文件。 -
在根目录执行
mkdir initmodel
。 -
下载ImageNet预训练的骨干网络并将它们放入
initmodel
目录。 -
然后执行以下命令:
sh test.sh {*数据集*} {*模型配置*}
示例:在PASCAL-5i的分割0上使用ResNet50测试PFENet:
sh test.sh pascal split0_resnet50
训练
在根目录执行以下命令:
sh train.sh {*数据集*} {*模型配置*}
相关仓库
本项目基于SemSeg的早期版本构建:https://github.com/hszhao/semseg
少样本分割领域的其他项目:
- OSLSM: https://github.com/lzzcd001/OSLSM
- CANet: https://github.com/icoz69/CaNet
- PANet: https://github.com/kaixin96/PANet
- FSS-1000: https://github.com/HKUSTCV/FSS-1000
- AMP: https://github.com/MSiam/AdaptiveMaskedProxies
- On the Texture Bias for FS Seg: https://github.com/rezazad68/fewshot-segmentation
- SG-One: https://github.com/xiaomengyc/SG-One
- FS Seg Propagation with Guided Networks: https://github.com/shelhamer/revolver
非常感谢他们的出色工作!
引用
如果您觉得本项目有用,请考虑引用:
@article{tian2020pfenet,
title={Prior Guided Feature Enrichment Network for Few-Shot Segmentation},
author={Tian, Zhuotao and Zhao, Hengshuang and Shu, Michelle and Yang, Zhicheng and Li, Ruiyu and Jia, Jiaya},
journal={TPAMI},
year={2020}
}
@InProceedings{peng2023hierarchical,
title={Hierarchical Dense Correlation Distillation for Few-Shot Segmentation},
author={Peng, Bohao and Tian, Zhuotao and Wu, Xiaoyang and Wang, Chenyao and Liu, Shu and Su, Jingyong and Jia, Jiaya},
journal={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2023}
}
@InProceedings{tian2022gfsseg,
title={Generalized Few-shot Semantic Segmentation},
author={Zhuotao Tian and Xin Lai and Li Jiang and Shu Liu and Michelle Shu and Hengshuang Zhao and Jiaya Jia},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2022}
}