clipascene官方文档

通过 Docker 安装

您可以简单地从 docker hub 中提取 docker 镜像,其中包含所有必需的库和包:

docker pull yaelvinker/clipascene
docker run --name clipascene -p 8888:8888 --gpus all -it yaelvinker/clipascene /bin/bash

现在您应该有一个正在运行的容器。在容器内,转到 /home 目录,然后克隆存储库:

cd /home
git clone https://github.com/yael-vinker/SceneSketch.git
cd SceneSketch/

接下来,下载 U2Net 权重:

wget https://huggingface.co/akhaliq/CLIPasso/resolve/main/u2net.pth --output-document=U2Net_/saved_models/u2net.pth

和 LAMA 模型:

cd lama/
curl -L $(yadisk-direct https://disk.yandex.ru/d/ouP6l8VJ0HpMZg) -o big-lama.zip
unzip big-lama.zip

现在您已准备就绪,可以进入下一阶段(运行演示)。

运行演示

图像预处理

输入场景图像应以png 格式提供,并应位于“./target_images/scene”下。
请提供尺寸合理的方形图像(最大~500px)。
为了获得最佳性能,我们将场景图像分为前景和背景,并分别绘制草图。
如果您希望在不分割的情况下应用我们的方法,您可以进入下一阶段(开始绘制草图)。
否则,运行:

python preprocess_images.py


 

该脚本将

  • 对“./target_images/scene”下的所有场景图像应用我们的预处理。

  • 使用 U2Net 生成掩模图像(保存在“target_images/scene/<im_name>_mask.png”下)

  • 使用 LAMA 生成由蒙版引导的修复背景图像(保存在“target_images/background/<im_name>_mask.png”下)

请注意,您还可以直接使用带有“U2Net”选项的LAMA 演示,只需在“target_images/background/<im_name>_mask.png”下找到生成的修复背景即可。

开始素描

正如论文中提到的,我们首先生成第一行(保真度轴),然后对于该行中的每个草图,我们沿着简单轴生成相应的简化草图。
要运行此管道,请使用“run_all.py”脚本(在脚本下),只需运行:

python scripts/run_all.py --im_name <im_name>

例如,在芭蕾舞女演员图像上:

python scripts/run_all.py --im_name "ballerina"

生成的草图将以 SVG 和 png 格式保存到“results_sketches/<im_name>”文件夹中。

如果您想并行运行前景和背景草图(如果您有多个 GPU,建议这样做),您可以简单地使用以下命令单独运行它们:

python scripts/run_background.py --im_name "ballerina"

和:

python scripts/run_foreground.py --im_name "ballerina"

脚本完成运行后(这可能需要几个小时,为了更快的版本和图层选择,请参阅下面的“使用脚本”),您可以使用以下方式可视化结果:

python scripts/combine_matrix.py --im_name <im_name>


“ballerina”图像的结果矩阵和 SVG 在“results_sketches/ballerina”下提供

玩转脚本

如果您想运行我们的方法以获得特定的保真度或简单性级别,您可以使用“脚本”下的专用脚本,具体如下:

  • generate_fidelity_levels.py- 在给定的保真度层生成单个草图。
    对于后台,运行:
    python scripts/generate_fidelity_levels.py --im_name <im_name> --layer_opt <desired_layer> --object_or_background "background"
    对于对象,运行:
    python scripts/generate_fidelity_levels.py --im_name <im_name> --layer_opt <desired_layer> --object_or_background "object" --resize_obj 1
  • run_ratio.py- 针对给定的保真度级别生成一列简化草图。
    对于后台,运行:
    python scripts/run_ratio.py --im_name <im_name> --layer_opt <desired_layer> --object_or_background "background" --min_div <step_size>
    对于对象,运行:
    python scripts/run_ratio.py --im_name <im_name> --layer_opt <desired_layer> --object_or_background "object" --min_div <step_size> --resize 1
    其中 <step_size> 是对函数 f_k 进行采样的参数(如论文中所述)。具体参数可以在“scripts/run_all.py”下找到

提高效率的技巧

  • 请注意,所提供的脚本仅假定一个 GPU,因此所有进程都按顺序运行。
    如果您有多个 GPU,则可以并行运行背景和前景草图。(使用脚本/run_background.py、脚本/run_foreground.py)

  • 如果您在多个 GPU 上运行,您还可以通过将特定层指定为“scripts/run_ratio.py”,跨不同层并行生成简单轴

  • 此外,您可以在“scripts/generate_fidelity_levels.py”中使用更少的步骤 - 目前 num_iter 设置为 1500,但是,在大约 500 个步骤之后,您已经可以获得相当合理的规模。

  • 您还可以通过修改“get_ratios_dict”中的“num_ratios”参数,沿简单轴生成更少的级别。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值