CLIPasso 是一种将物体图像转换为素描的方法,能够实现不同层次的抽象,同时保留物体的关键视觉特征。即使使用极简表示(例如仅用几笔绘制火烈鸟和马),也能识别出所描绘对象的语义和结构。
抽象是素描的核心,因为线条画简单且极简。抽象需要识别物体或场景的基本视觉属性,这要求语义理解和对高层概念的先验知识。因此,抽象描绘对艺术家来说具有挑战性,对机器更是如此。CLIPasso 提出了一种物体素描方法,可以在几何和语义简化的指导下实现不同的抽象层次。
与通常依赖显式素描数据集进行训练的素描生成方法不同,CLIPasso 利用 CLIP(对比语言-图像预训练)从素描和图像中提取语义概念的能力。该方法将素描定义为一组贝塞尔曲线,并使用可微分光栅化器,直接针对基于 CLIP 的感知损失优化曲线参数。抽象程度通过改变笔画数量来控制。生成的素描展示了多个抽象层次,同时保持可识别性、底层结构以及所绘对象的基本视觉组件。
工作原理: CLIPasso 基于优化,因此不需要任何显式的素描数据集。它使用 CLIP 图像编码器指导将照片转换为抽象素描的过程。CLIP 编码提供对所示概念的语义理解,而照片本身提供素描对具体对象的几何基础。素描被定义为放置在白色背景上的 N 条黑色笔画。通过改变笔画数量 N 来创建不同的抽象层次。
给定目标图像 I,目标是合成相应的素描 S,同时保持对象的语义和几何属性。首先提取输入图像的显著区域以定义笔画的初始位置。然后,在优化的每一步中,将笔画参数输入可微分光栅化器以生成光栅化素描。生成的素描和原始图像一起输入 CLIP,定义基于 CLIP 的感知损失。该方法成功的关键是使用预训练 CLIP 模型的中间层来约束输出素描的几何形状。没有这一项,输出素描将不会与输入图像相似。通过可微分光栅化器反向传播损失,并在每一步直接更新笔画的控点,直到损失函数收敛。
与传统素描方法不同,CLIPasso 不利用素描数据集进行训练,而是在 CLIP 的指导下进行优化。因此,该方法不受训练期间观察到的特定类别的限制,因为任何阶段都没有引入类别定义。这使得该方法对各种输入具有鲁棒性。
此外,CLIPasso 支持编辑 SVG 上的笔刷样式,并展示了在“野外”素描的结果,例如对 SketchCOCO 中 100 张随机猫图像的处理。