SLiMe

SLiMe

基于Stable Diffusion的单样本图像分割方法

SLiMe是一种基于Stable Diffusion的单样本图像分割方法,通过单个训练样本实现准确分割。项目提供PyTorch实现,包含训练、测试和数据处理指南。SLiMe在PASCAL-Part和CelebAMask-HQ数据集上表现优异,为图像分割研究提供新思路。项目开源代码,支持自定义数据集训练和测试。SLiMe采用图像分块处理技术,提高分割精度。研究者可基于此探索更多单样本学习应用场景。

SLiMe图像分割Stable DiffusionPyTorch深度学习Github开源项目

SLiMe:像我一样分割

论文 | Colab笔记本

SLiMe方法

SLiMe:像我一样分割,一种基于Stable Diffusion的单样本图像分割方法的PyTorch实现。<br><br> Aliasghar Khani<sup>1, 2</sup>, Saeid Asgari Taghanaki<sup>1, 2</sup>, Aditya Sanghi<sup>2</sup>, Ali Mahdavi Amiri<sup>1</sup>, Ghassan Hamarneh<sup>1</sup>

<sup><sup>1</sup> 西蒙弗雷泽大学 <sup>2</sup> 欧特克研究院</sup>

设置

要开始使用SLiMe,首先需要创建一个虚拟环境并使用以下命令安装依赖项:

python -m venv slime_venv source slime_venv/bin/activate pip install -r requirements.txt

*** 对于用于SLiMe训练、验证或测试的每对图像和掩码,它们的名称应该匹配。此外,图像应为PNG格式,而掩码应为NumPy格式。 ***

SLiMe训练

首先,创建一个新文件夹(例如,slime/data/train),并将训练图像和相应的掩码放入该文件夹(slime/data/train)。然后,将创建的训练数据文件夹路径(slime/data/train)作为参数提供给--train_data_dir。如果你有验证数据(仅用于检查点选择),对验证数据重复相同的过程(例如,将图像和掩码放在slime/data/val中),并将文件夹地址作为参数提供给--val_data_dir。但是,如果你没有验证数据,请使用训练数据文件夹的地址作为--val_data_dir的参数。

接下来,将测试图像放在单独的文件夹中(例如,slime/data/test),并使用--test_data_dir指定此文件夹的路径。此外,你应该为训练图像中分割的部分定义一个名称,以用于--parts_to_return参数,包括背景。例如,如果你已经分割了狗的身体和头部,你应该将--parts_to_return设置为"background body head"

最后,在slime文件夹(克隆后获得的主文件夹)中执行以下命令:

python -m src.main --dataset sample \ --part_names {PARTNAMES} \ --train_data_dir {TRAIN_DATA_DIR} \ --val_data_dir {TRAIN_DATA_DIR} \ --test_data_dir {TEST_DATA_DIR} \ --train \

如果你提供了测试图像及其相应的掩码,运行此命令将显示测试数据中每个分割部分的平均交并比(mIoU)。此外,它将在slime目录的slime/outputs/checkpoints文件夹中保存训练好的文本嵌入,并在slime/outputs/lightning_logs文件夹中保存日志文件。

使用训练好的文本嵌入进行测试

要使用训练好的文本嵌入进行测试,运行以下命令:

python -m src.main --dataset sample \ --checkpoint_dir {CHECKPOINT_DIR} \ --test_data_dir {TEST_DATA_DIR} \

在此命令中:

  • {CHECKPOINT_DIR}替换为存储训练好的文本嵌入的文件夹路径。确保此目录中只有相关的文本嵌入,因为代码将从指定文件夹加载所有文本嵌入。
  • 确保你已将测试图像(如果有掩码,用于计算mIoU)放在新文件夹中,并使用--test_data_dir参数提供此文件夹的路径。

伪装结果

在Colab笔记本上测试 在Colab中打开

你可以在Colab笔记本中测试训练好的文本嵌入。克隆代码后,请按照上述步骤操作并执行提供的命令。

图像分块

要配置验证和测试时的图像分块,你可以为--patch_size--num_patches_per_side参数指定不同的值。这些设置将用于将图像划分为一个块的网格,计算单个最终注意力图(称为WAS-attention图),聚合它们,并生成分割掩码预测。

以下是如何在命令中包含这些参数的示例:

python -m src.main --dataset sample \ --checkpoint_dir {CHECKPOINT_DIR} \ --test_data_dir {TEST_DATA_DIR} \ --patch_size {PATCH_SIZE} \ --num_patches_per_side {NUM_PATCHES_PER_SIDE}
  • {PATCH_SIZE}替换为每个块的所需大小。
  • {NUM_PATCHES_PER_SIDE}替换为你想要的图像每边的块数。 通过调整这些值,你可以控制验证和测试的分块过程,这对于在不同图像大小或特征上微调方法的性能很有用。

在数据集上进行1样本和10样本训练

PASCAL-Part 汽车

要在PASCAL-Part的汽车类上使用SLiMe的1样本设置进行训练和测试,请按以下步骤操作:

  1. 从此链接下载数据并解压。
  2. 导航到slime文件夹。
  3. 运行以下命令,将{path_to_data_folder}替换为你解压数据的文件夹路径(末尾不带反斜杠):
DATADIR={path_to_data_folder} python3 -m src.main --dataset_name pascal \ --part_names background body light plate wheel window \ --train_data_dir $DATADIR/car/train_1 \ --val_data_dir $DATADIR/car/train_1 \ --test_data_dir $DATADIR/car/test \ --min_crop_ratio 0.6 \ --num_patchs_per_side 1 \ --patch_size 512 \ --train

对于10样本设置,你可以按如下方式修改命令:

DATADIR={path_to_data_folder} python3 -m src.main --dataset_name pascal \ --part_names background body light plate wheel window \ --train_data_dir $DATADIR/car/train_10 \ --val_data_dir $DATADIR/car/val \ --test_data_dir $DATADIR/car/test \ --min_crop_ratio 0.6 \ --num_patchs_per_side 1 \ --patch_size 512 \ --train

在这种情况下,你应该为 --train_data_dir 指定 car/train_10,为 --val_data_dir 指定 car/val

PASCAL-Part 马类

要在 PASCAL-Part 的马类上使用 SLiMe 的 1 样本设置进行训练和测试,可以按以下步骤操作:

  1. 从此链接下载数据并解压。
  2. 进入 slime 文件夹。
  3. 运行以下命令,将 {path_to_data_folder} 替换为你解压数据的文件夹路径(末尾不加反斜杠):
DATADIR={path_to_data_folder} python3 -m src.main --dataset_name pascal \ --part_names background head neck+torso leg tail \ --train_data_dir $DATADIR/horse/train_1 \ --val_data_dir $DATADIR/horse/train_1 \ --test_data_dir $DATADIR/horse/test \ --min_crop_ratio 0.8 \ --num_patchs_per_side 1 \ --patch_size 512 \ --train

对于 10 样本设置,你可以按如下方式修改命令:

DATADIR={path_to_data_folder} python3 -m src.main --dataset_name pascal \ --part_names background head neck+torso leg tail \ --train_data_dir $DATADIR/horse/train_10 \ --val_data_dir $DATADIR/horse/val \ --test_data_dir $DATADIR/horse/test \ --min_crop_ratio 0.8 \ --num_patchs_per_side 1 \ --patch_size 512 \ --train

在这种情况下,你应该为 --train_data_dir 指定 horse/train_10,为 --val_data_dir 指定 horse/val

CelebAMask-HQ

要在 CelebAMask-HQ 上使用 SLiMe 的 1 样本设置进行训练和测试,可以按以下步骤操作:

  1. 从此链接下载数据并解压。
  2. 进入 slime 文件夹。
  3. 运行以下命令,将 {path_to_data_folder} 替换为你解压数据的文件夹路径(末尾不加反斜杠):
DATADIR={path_to_data_folder} python3 -m src.main --dataset_name celeba \ --part_names background skin eye mouth nose brow ear neck cloth hair \ --train_data_dir $DATADIR/celeba/train_1 \ --val_data_dir $DATADIR/celeba/train_1 \ --test_data_dir $DATADIR/celeba/test \ --min_crop_ratio 0.6 \ --train

对于 10 样本设置,你可以按如下方式修改命令:

DATADIR={path_to_data_folder} python3 -m src.main --dataset_name celeba \ --part_names background skin eye mouth nose brow ear neck cloth hair \ --train_data_dir $DATADIR/celeba/train_10 \ --val_data_dir $DATADIR/celeba/val \ --test_data_dir $DATADIR/celeba/test \ --min_crop_ratio 0.6 \ --train

在这种情况下,你应该为 --train_data_dir 指定 celeba/train_10,为 --val_data_dir 指定 celeba/val

训练好的文本嵌入

在这个链接,我们正在上传我们训练好的文本嵌入,包括我们为论文训练的文本嵌入。你可以下载这些文本嵌入,并使用使用训练好的文本嵌入进行测试部分的命令在你的数据上进行测试。

问题和故障

如果你有任何问题或遇到困难,请在这里创建一个问题。

引用

@article{khani2023slime, title={SLiMe: Segment Like Me}, author={Khani, Aliasghar and Taghanaki, Saeid Asgari and Sanghi, Aditya and Amiri, Ali Mahdavi and Hamarneh, Ghassan}, journal={arXiv preprint arXiv:2309.03179}, year={2023} }

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多