【SVG 生成系列论文(五)】Diffvg 矢量图生成的开山之作 —— MIT 与 Adobe 合作论文

  • SVG 生成系列论文(一) 和 SVG 生成系列论文(二) 分别介绍了 StarVector 的大致背景和详细的模型细节。
  • SVG 生成系列论文(三)和 SVG 生成系列论文(四)则分别介绍实验、数据集和数据增强细节。

本文简要介绍的 Diffvg 则属于 svg 生成与编辑领域的开山之作。

论文全称:Differentiable Vector Graphics Rasterization for Editing and Learning(用于编辑和学习的可微分矢量图形光栅化)
项目链接:https://github.com/BachiLi/diffvg

背景

  1. 作者介绍了一种可微分的光栅化器(rasterizer),它连接了矢量图形和光栅图像领域,使得基于光栅(位图)的损失函数、优化方法和机器学习技术能够用于编辑和生成矢量内容。

  2. 作者观察到,在进行像素预过滤(pixel prefiltering)之后,矢量图形的光栅化过程是可微分的

  3. 本文的可微分光栅化器提供了两种预过滤选项:一种是解析预过滤(analytical prefiltering)技术,另一种是多重采样抗锯齿技术(multisampling anti-aliasing)
    (1)解析预过滤方法速度较快,但可能会出现如合并等伪影问题。
    (2)多重采样方法仍然高效,能够渲染高质量图像,同时计算每个像素相对于曲线参数的无偏梯度。

  4. 作者展示了这种光栅化器支持的新应用,包括:
    (1)基于图像度量引导的矢量图形编辑器、
    (2)一种通过最小化深度感知损失函数将矢量图元拟合到图像的绘画风格渲染算法、
    (3)利用无缝裁剪(seam carving)等知名图像处理方法的新矢量图形编辑算法,
    (4)在变分自编码器(VAE)或生成对抗网络(GAN)训练目标下,仅从光栅监督生成矢量内容的深度生成模型。

Seam Carving,也称为内容感知图像缩放,是一种图像处理技术,用于在不显著改变图像内容的情况下调整图像尺寸。它通过选择并移除或插入图像中的“无缝路径”来实现这一点,这些路径通常穿过图像中最不重要的部分。

在这里插入图片描述
图1. 作者介绍了一种可微分的矢量图形光栅化器,通过反向传播将光栅和矢量领域连接起来。可微分光栅化支持许多新颖的矢量图形应用。(a) 在几何约束下,基于图像空间度量(如不透明度)进行局部优化的交互式编辑。(b) 通过将随机贝塞尔曲线拟合到目标图像,实现新的绘画风格渲染技术。© 改善现有的图像矢量化结果。(d) 使用不可微分的光栅图像处理操作(例如用于图像重定向的 seam carving [Avidan 和 Shamir 2007])编辑矢量图形。(e) 训练变分自编码器 [Kingma 和 Welling 2014] 生成矢量 MNIST 数字 [LeCun 等 1998],并添加风格化笔触作为后处理。图片由维基百科用户 Daderot 和 Eric Guinther,以及 freesvg.org 用户 OpenClipart 提供。

像素预过滤

  • 像素预过滤(pixel prefiltering)是一种在渲染过程中应用的技术,用于在将矢量图形转换为光栅图像(即像素网格)之前对图像进行处理。其目的是减少混叠(aliasing)效应,改善图像质量,使得渲染出的图像更加平滑和准确。

  • 混叠(Aliasing)问题:当矢量图形被转换成像素网格时,由于图形的高频细节可能会出现混叠问题,导致锯齿状边缘和其他视觉伪影。如下图所示。

在这里插入图片描述

  • 预过滤的作用:像素预过滤通过在采样之前对图形进行平滑处理,减少这些高频分量,从而减少混叠效应。预过滤可以看作是一种低通滤波器,它在采样之前平滑信号,减少了高频成分的影响。

像素预过滤的原理

在这里插入图片描述
图2. 使用卷积进行像素预过滤使得不连续函数变得平滑。作者使用一维中的箱形函数来说明这一点。为了对这个不连续的箱形函数进行抗锯齿光栅化,作者将箱形函数与一个以像素中心为中心的核进行卷积。移动箱形函数会导致过滤核下的面积连续变化,因此,抗锯齿信号也会连续变化。

  1. 不连续函数的问题
    在光栅化过程中,像矢量图形这样的不连续函数转换成像素网格时,会产生锯齿状的边缘,这种现象称为混叠(aliasing)。例如,一个简单的箱形函数(step function)从一个值突然跳到另一个值,没有过渡,导致其光栅化后的边缘很不平滑。

  2. 卷积的作用
    为了减轻混叠效应,像素预过滤技术通过卷积来平滑这些不连续的过渡。卷积是将图像与一个核(kernel)进行卷积运算。核通常是一个平滑函数,例如高斯核,它有助于对图像进行平滑处理。

  3. 连续变化
    如图所示,当箱形函数与平滑核进行卷积时,箱形函数的边缘由一个不连续的跳跃变为一个连续的过渡。核的中心位置与像素对齐,通过移动箱形函数的位置,可以看到核下的面积发生连续变化,从而使卷积结果(抗锯齿信号)也是连续变化的。这种连续变化确保了在图像渲染过程中不会产生明显的锯齿边缘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1425352.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

软考--试题六--命令模式(Command)

命令模式(Command) 意图 将一个请求封装为一个对象,从而使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 结构 适用性 1、抽象出待执行的动作以参数化某对象 2、在不同的时刻指定、排列和执行请求…

[牛客网]——C语言刷题day3

答案&#xff1a;A 解析&#xff1a; A.表示将数组a的首地址赋值给指针变量p B.将一个int型变量直接赋值给一个int型的指针是不行的 C.道理同B D.j2是一个右值&#xff0c;右值是不能进行取地址操作的 #include <iostream> using namespace std;#define N 7 int fun…

基于DEXPI标准的xml转成svg图片的测试

通过对java代码的一顿反编译&#xff0c;这个功能逐渐实现了。也打了日志&#xff0c;通过编码实现了svg的视图的裁剪大小。选择xml文件然后选择文件夹&#xff0c;程序自动进行转换&#xff0c;最后生成svg文件。 最后的xml转换后的成品如下图&#xff1a; 通过与达美盛的工具…

Linux(七) 动静态库

目录 一、动静态库的概念 二、静态库的打包与使用 2.1 静态库的打包 2.2 静态库的使用 三、动态库的打包与使用 3.1 动态库的打包 3.2 动态库的使用 3.3 运行动态库的四种方法 四、总makefile 一、动静态库的概念 静态库&#xff1a; Linux下&#xff0c;以.a为后缀的…

Sam Blackshear谈Move如何赋能开发者

Move编程语言提供了直观的编码体验&#xff0c;让开发者能够快速上手。Mysten Labs的联合创始人兼CTO Sam Blackshear创建了Move&#xff0c;这是一种用于编写智能合约的语言&#xff0c;更像传统编程语言&#xff0c;如JavaScript或Rust。 https://youtu.be/iYe_hG8Mzx8 视频…

Spring MVC(响应 + 状态码)

文章目录 一、RestController VS Controller VS ResponseBody1.1 关于元注解1.2 Controller1.3 ResponseBody1.4 RestController 二、响应2.1 Spring 对于响应的设置2.2 返回静态页面2.3 返回HTML代码片段2.4 返回JSON2.5 设置HTTP状态码2.6 设置响应部分的Header 二、状态码2.…

小红书孕妇宝妈暴力拉新玩法,每日两小时,单日收益500+

哎呀&#xff0c;你好呀&#xff0c;亲爱的小伙伴们&#xff01;我今天心血来潮&#xff0c;想和你们分享一个超级棒的方法&#xff0c;这个方法我亲自试过&#xff0c;超级有效&#xff01;就是在小红书上针对孕妇和宝妈们进行引流的方法。听起来是不是很有趣呀&#xff1f;&a…

Excel表格内容误删未保存怎么找回?5种XLS文件恢复有效方法

在繁忙的工作中Excel表格作为数据处理的重要工具&#xff0c;承载了众多关键信息。然而误删未保存的Excel内容往往让人措手不及。今天我将为大家分析Excel表格内容误删未保存的可能原因&#xff0c;并提供五个免费实用的解决方案&#xff0c;助你轻松找回误删的XLS文件数据。 一…

贝努利贝叶斯算法

基本用法 完整代码&#xff1a; from sklearn.naive_bayes import BernoulliNB from sklearn.datasets import make_blobs from sklearn.model_selection import train_test_split# 生成数据 X, y make_blobs(n_samples500, centers5, random_state8) X_train, X_test, y_tr…

什么是蜜罐,在当前网络安全形势下,蜜罐能提供哪些帮助

在当前的互联网时代&#xff0c;网络安全威胁日益严峻&#xff0c;攻击手段层出不穷。为了应对这些威胁&#xff0c;网络安全专家们不断探索新的防御手段&#xff0c;在过去的几年里&#xff0c;一种更加积极主动的网络安全方法正在兴起。蜜罐技术便是这样一种备受瞩目的主动防…

打包conda环境的两种方法:conda env export和Conda-Pack

打包conda环境的两种方法&#xff1a;conda env export和Conda-Pack 搭建项目环境可能是整个开发过程中最让人头疼的部分了。如何把我们辛辛苦苦搭建的环境打包起来&#xff0c;万一环境崩了还能迅速恢复&#xff0c;或者让别人能轻松地复制同样的设置呢&#xff1f; 今天&am…

数仓架构之为什么要进行数仓分层

数仓分层这个概念想必大家都很熟悉&#xff0c;不管是在实际的开发工作当中会用的&#xff0c;还是在面试官面试你的时候会问到&#xff1a;你之前的项目是按照什么分层的&#xff0c;分哪几层&#xff0c;数仓分层有什么好处&#xff0c;举个栗子说说。 简而言之&#xff0c;…

[Cocos Creator 3.5赛车游戏]第3节 新建项目

环境已经配置好&#xff0c;现在您将真正的开始开发您的项目&#xff0c;开发项目的第一步是新建项目。所以现在请关闭上一个步骤打开的Cocos Creator窗口&#xff0c;回到CocosDashboard&#xff0c;点击“新建”按钮&#xff1a; 选择“模板”选项卡&#xff0c;因为您即将开…

视频监控平台智能边缘分析一体机视频存储平台打手机检测算法

智能边缘分析一体机的打手机检测算法是一种集成了先进图像处理、计算机视觉和人工智能技术的解决方案&#xff0c;专门用于实时监测和识别监控场景中的打手机行为。 在提到“打手机检测算法”时&#xff0c;可能是指一种能够识别和检测使用手机行为的算法。这种算法可以应用于多…

29.IO流(了解)

1. C语言的输入与输出 ​ C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键 盘)读取数据&#xff0c;并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C语言借助了相应的…

在面对各种问题时,我们应该如何进行数据分析

python数据分析汇总 前言一、对比分析概念特征类型案例Matplotlib的颜色字母对照表解决遇到未知函数 二、相关性分析概念类型案例一案例二 三、时间序列分析概念类型案例 四、回归分析概念类型案例一案例二案例三 五、决策树概念计算过程案例 六、主成分分析概念计算过程案例 七…

武汉星起航推出亚马逊一站式孵化服务,助力卖家轻松拓展全球市场

亚马逊作为全球最大的电商平台之一&#xff0c;以其全球化的销售平台和完善的物流体系&#xff0c;吸引了众多卖家的目光。通过亚马逊平台&#xff0c;卖家可以轻松地将产品销往世界各地&#xff0c;无需担心复杂的国际贸易流程。而在这个充满机遇的市场中&#xff0c;武汉星起…

IDEA中开发并部署运行WEB项目

IDEA中开发并部署运行WEB项目 1 WEB项目的标准结构2 WEB项目部署的方式3 IDEA中开发并部署运行WEB项目3.1 部署步骤3.2 IDEA关联本地Tomcat 4 IDEA创建web工程5 IDEA部署-运行web项目6 IDEA部署并运行项目的原理 1 WEB项目的标准结构 一个标准的可以用于发布的WEB项目标准结构如…

安防监控视频平台智能边缘分析一体机视频存储系统客流统计检测算法

智能边缘分析一体机的客流统计检测算法是一种基于人工智能与边缘计算技术的解决方案&#xff0c;专门设计用来实时、准确地统计通过特定区域的人流量。这项技术广泛应用于零售、交通、场馆管理、智慧城市等领域&#xff0c;以帮助管理者更好地理解顾客行为、优化资源配置、提升…

RS232/RS485信号转12路模拟信号 YL34隔离D/A转换器 4-20mA/0-5V/0-10V/0-20mA/0-25mA

特点&#xff1a; ● RS-485/232接口&#xff0c;隔离转换成12路标准模拟信号输出 ● 可选型输出4-20mA或0-10V控制其他设备 ● 模拟信号输出精度优于 0.2% ● 可以程控校准模块输出精度 ● 信号输出 / 通讯接口之间隔离耐压3000VDC ● 宽电源供电范围&#xff1a;10 ~ …