DiffusionMat:作为序列细化学习的Alpha抠图
摘要
本文提出了DiffusionMat,这是一种新颖的图像抠图框架,它采用扩散模型来实现从粗糙到精细的alpha遮罩转换。与传统方法不同,传统方法仅将三元图作为alpha遮罩预测的松散指导,我们的方法将图像抠图视为一个序列细化学习过程。该过程首先向三元图添加噪声,然后使用预训练的扩散模型迭代地对其进行去噪,逐步引导预测趋向于干净的alpha遮罩。我们框架的关键创新在于一个校正模块,它在每个去噪步骤中调整输出,确保最终结果与输入图像的结构一致。我们还引入了Alpha可靠性传播,这是一种新技术,旨在通过选择性地增强具有可靠alpha信息的三元图区域来最大化可用指导的效用,从而简化校正任务。为了训练校正模块,我们设计了专门的损失函数,以提高alpha遮罩边缘的准确性和不透明及透明区域的一致性。我们在多个图像抠图基准测试中评估了我们的模型,结果表明DiffusionMat始终优于现有方法。
设置
安装
git clone https://github.com/cnnlstm/DiffusionMat.git
cd DiffusionMat
环境
可以使用提供的diffusionmat.yaml
文件设置环境:
conda env create -f diffusionmat.yaml
快速开始
预训练模型
请下载我们的预训练模型并放置在./pretrained_models
目录中。
模型 | 描述 |
---|---|
P3M | 在P3M上训练。 |
Composition-1k | 在Composition-1k上训练。 |
扩散模型 | 无条件Alpha遮罩扩散。 |
SwinTransformer | 预训练的SwinTransformer。 |
推理
我们提供了来自Composition-1k数据集的4个样本用于快速推理:
python inference.py --exp samples/alphas_pred --config matte.yml --delta_config deltablock.yml --sample -i images --t 250 --sample_step 5 --ni
Composition-1k数据集的完整测试集可以在此下载:Composition-1k-Testset
P3M数据集可以在此下载:P3M数据集
请记得修改此处的测试集路径
评估
使用官方评估MATLAB代码**./DIM_evaluation_code/evaluate.m**(由Deep Image Matting提供)评估Composition-1k的结果
使用官方评估Python代码评估P3M的结果
训练
准备工作
要获取Composition-1k数据集的训练集,请参考:Matteformer
请在此处修改训练集路径
开始训练
python train.py --exp training_dir --config matte.yml --delta_config deltablock.yml --sample -i images --t 250 --sample_step 5 --ni
引用
如果您发现这项工作对您的研究有用,请引用:
@article{xu2023diffusionmat,
title={DiffusionMat: Alpha Matting as Sequential Refinement Learning},
author={Xu, Yangyang and He, Shengfeng and Shao, Wenqi and Wong, Kwan-Yee K and Qiao, Yu and Luo, Ping},
journal={arXiv preprint arXiv:2311.13535},
year={2023}
}
致谢
我们的代码主要源自SDEdit。