项目介绍:SAM-Adapter-PyTorch
背景及目的
SAM-Adapter-PyTorch 项目由一组来自海外高校和研究机构的研究人员开发,主要目标是通过适配现有的 Segment Anything 模型(SAM)来改善其在一些表现不佳场景下的分割能力。这些场景包括伪装物体检测、阴影检测以及医学图像分割等复杂任务。随着更新,该项目现在还支持更强大的 SAM2 适配器架构。
项目更新
项目团队不断对 SAM-Adapter 进行迭代改进:
- 2024年8月:添加了对 SAM2(Segment Anything 2)的支持,增强了骨干能力,可以在 "SAM2-Adapter" 分支中找到相关代码。
- 2023年4月:在医学数据集上测试了结直肠息肉分割的性能,以证明该方法在医学应用中的有效性。
- 更新日志:团队定期更新预训练模型链接以及相关配置文件,以适应不同的硬件需求和更小显存的 GPU。
环境配置
该项目基于 Python 3.8 和 PyTorch 1.13.0 开发。用户可以通过以下命令安装项目所需的所有依赖包:
pip install -r requirements.txt
快速入门
用户可以通过以下步骤快速启动项目:
- 下载数据集,并放置在
./load
目录下。 - 下载预训练模型(例如 SAM),并放置在
./pretrained
目录下。 - 开始训练:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch --nnodes 1 --nproc_per_node 4 loadddptrain.py --config configs/demo.yaml
请注意,SAM 模型需要占用大量内存,建议使用具备大显存的显卡。
- 进行评估:
python test.py --config [CONFIG_PATH] --model [MODEL_PATH]
训练与测试代码
项目提供了详细的训练和测试代码,便于用户根据自身需求进行个性化调整。以下为训练的基本代码:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m torch.distributed.launch train.py --nnodes 1 --nproc_per_node 4 --config [CONFIG_PATH]
评估代码如下:
python test.py --config [CONFIG_PATH] --model [MODEL_PATH]
数据集
该项目支持多种类型的数据集:
- 伪装物体检测:COD10K、CAMO、CHAMELEON。
- 阴影检测:ISTD。
- 结直肠息肉分割(医学应用):Kvasir。
预训练模型
用户可以从提供的链接下载预训练模型,以用于进一步的研究和开发。
致谢
部分代码和方法得益于来自澳门大学和腾讯 AI 实验室的 Explicit Visual Prompt 项目。特别感谢 Weihuang Liu, Xi Shen, Chi-Man Pun, 以及 Xiaodong Cun 的贡献。
通过上述介绍,希望能够帮助研究人员和开发者更好地理解和应用 SAM-Adapter-PyTorch 项目,用以解决更加复杂的图像分割任务。