GenSAM介绍
GenSAM(Generalizable SAM)是一种比较新的图像分割模型,旨在通过通用任务描述自动生成和优化视觉提示,消除对特定样本的依赖。模型引入了一种名为“跨模态思维链提示”(CCTP)的机制,能够根据给定的通用文本提示推理出适合特定图像的前景和背景热图。
由于GenSAM采用了TTA(测试时自适应)的机制,结合渐进式掩码生成(PMG)方法,可以逐步调整输入图像的权重,从而引导模型在粗到细的方式中对目标进行聚焦,更重要的是,GenSAM在推理过程中不会更新网络参数,因此避免了额外的训练需求 。
问题记录
由于GenSAM是很新的项目,对于它的相关教程和博客还很少,也是我改bug配环境比较头疼的一个项目,不过好在最后还是成功复现了,下面是对一些典型问题的解决方案:
问题:GenSAM项目地址
解决:挂梯子,找到Github的jyLin8100/GenSAM:AAAl 2024 论文代码:放宽 SAM 中特定于图像的提示要求:用于分割伪装对象的单个通用提示
问题:无法访问CHAMELEON数据集,CHAMELEON数据集由于不知名原因从官网Strony nie znaleziono - Katedra Grafiki, Wizji Komputerowej i Systemów Cyfrowych上撤下
解决:在该Github项目的issue中给出了下载链接TestDataset.zip - Google 云端硬盘
问题:ValueError: 'llava' is already used by a Transformers config, pick another name.
解决:参考LLaVA的Github,看到issue部分"ValueError: 'llava' is already used by a Transformers config, pick another name. · Issue #968 · haotian-liu/LLaVA",我自己成功解决的方式修改了transformer的版本,具体而言,pip install transformers==4.34.0可以解决
问题:需要vit-b-16.pt的预训练模型
解决:参考ResNet系列和ViT系列预训练模型权重文件下载-CSDN博客
问题:torch.cuda.OutOfMemoryError: CUDA out of memory.
解决:参考YOLOv11小白的进击之路(七)训练输出日志解读以及训练OOM报错解决办法_yolov11训练日志-CSDN博客
问题:AttributeError: 'DotDict' object has no attribute 'adaptive_recursive'
解决:在yaml最后一行加上adaptive_recursive=true
问题:UnidentifiedImageError(msg) PIL.UnidentifiedImageError: cannot identify image file '../autodl-tmp/data/Dataset/Dataset/dataset/img/.DS_Store
解决:在数据集目录执行 find . -name ".DS_Store" -type f -delete