CN113077477B - 图像矢量化方法、装置及终端设备 - Google Patents
图像矢量化方法、装置及终端设备 Download PDFInfo
- Publication number
- CN113077477B CN113077477B CN202110297589.6A CN202110297589A CN113077477B CN 113077477 B CN113077477 B CN 113077477B CN 202110297589 A CN202110297589 A CN 202110297589A CN 113077477 B CN113077477 B CN 113077477B
- Authority
- CN
- China
- Prior art keywords
- pixel
- stroke
- window
- image
- cutting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种图像矢量化方法、装置及终端设备,包括:获取像素级图像,并构造与像素级图像大小相同的画布,初始化裁剪窗口的信息,根据裁剪窗口,对像素级图像和画布进行对齐裁剪,得到区域小块,将区域小块输入到笔划生成器进行计算,获得相应的笔划信息,并根据笔划信息绘制笔划,基于裁剪窗口对笔划进行可微拼贴,得到与像素级图像相适配的笔划帧,将裁剪窗口移动到笔划绘制的末端位置,并更新裁剪窗口的窗口位置,当检测到当前绘制长度达到绘制最大长度时,停止绘制,获得矢量图。本发明可适用于不同风格、不同分辨率的图像,且无需调整大量参数以适配不同的图像,降低了计算复杂度,并能有效提高矢量化技术速度。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及图像矢量化方法、装置及终端设备。
背景技术
矢量化草图由于其较之像素级草图更低的数据存储量、可渲染为任意分辨率、更高的可编辑性等优点,而被广泛应用于工业设计、二维动画、三维打印等图形设计领域中。目前市场上已经存在大量的快速矢量化工具,比如Adobe软件中集成的矢量化功能,但是这些工具仅得到由布尔格构造的矢量数据,可编辑性较低,不适用于图形设计。相反,图形设计要求由可编辑性较高的矢量图形所组成,如贝塞尔曲线或拓扑结构等线条状图形。
目前多数生成线条状图形的草图矢量化方法都是基于优化的算法,这些算法使用一些预定义的规则,先将像素级草图进行参数化,比如转化为二维网格或基于骨架的拓扑图等表示。然后根据这些规则通过优化的方法进行聚类,转化为最后的线条状图形。
但是,基于优化的草图矢量化算法的应用过程中有以下几个缺点:首先,使用的预定义规则仅适用于某些特定风格的草图,应用于其他风格的草图时效果较差。其次,大多需要调整很多参数和阈值,比如对输入图像进行二值化预处理的阈值,若参数设置不合适,则得到的效果不好。此外,优化步骤需要大量计算时间,导致算法速度很慢。因此,现有的草图矢量化算法适用性差,计算复杂度高。
发明内容
本发明实施例提供图像矢量化方法、装置及终端设备,可适用于不同风格、不同分辨率的图像,且无需调整大量参数以适配不同的图像,降低了计算复杂度,并能有效提高矢量化技术速度。
本发明一实施例提供一种图像矢量化方法,包括:
获取像素级图像,并构造与所述像素级图像大小相同的画布;
初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置;
根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块;
将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划;
基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;
将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置;
当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
在一些实施例中,所述将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划,具体包括:
将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数;
将所述笔划的矢量参数转化为一贝塞尔曲线的参数;
将所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像。
在一些实施例中,在所述将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置之前,还包括:
获取本次操作的笔触状态;
当所述笔触状态为零时,则去除所述笔划;
当所述笔触状态为一时,则保留所述笔划,将所述笔划添加到所述画布上。
在一些实施例中,在所述将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置之后,还包括:
获取当前的绘制长度;
判断所述绘制长度是否达到预设的绘制最大长度;
当所述绘制长度未达到所述绘制最大长度时,则重新根据所述裁剪窗口对所述像素级图像和所述画布进行对齐裁剪,直至所述绘制长度达到所述绘制最大长度。
在一些实施例中,通过如下步骤训练所述笔划生成器,具体包括:
获取在草图分类任务下训练完成的VGG-16模型;
获取渲染后的线条画图像和真实的线条画图像,线条画图像为由所述可微渲染器渲染所有笔划图像叠加后得到的像素图;
将所述渲染后的线条画图像和所述真实的线条画图像分别输入到所述VGG-16模型,以获取每个预设层输出的特征图;
根据公式(1),确定第j层的损失函数:
对所有预设层的损失函数进行累加,得到总损失函数;
以所述总损失函数训练所述笔划生成器。
在一些实施例中,所述根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,具体包括:
获取所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值,以及所述像素与所述预设像素的距离,所述预设像素包括位于所述像素左上方的像素、位于所述像素左下方的像素、位于所述像素右上方的像素及位于所述像素右下方的像素;
根据所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值及所述像素与所述预设像素的距离,进行双线性插值计算,得到所述区域小块上所述像素的值。
在一些实施例中,所述笔划生成器由卷积神经网络和循环神经网络构成,所述将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数,包括:
使用所述卷积神经网络提取所述区域小块的图像特征;
将所述图像特征输入所述循环神经网络,得到下一笔划的矢量参数,其中,通过如下公式确定所述笔划的矢量参数:
at=(xc,yc,Δx,Δy,w,p)t (3)
at为t时刻笔划的矢量参数,(xc,yc)∈[-1,+1]2作为贝塞尔曲线的中间控制点,(Δx,Δy)∈[-1,+1]2为到下一个位置的偏移值,w∈[0,1]为线条宽度,p∈[0,1]为笔触状态,t为时间,t=1,2,…,T。
在一些实施例中,所述更新所述裁剪窗口的窗口位置,具体包括:
根据公式(4)和(5),更新所述裁剪窗口的窗口位置:
其中,Qt为更新后t时刻的窗口位置,Qt-1为上一个时刻的窗口位置,为更新后t时刻的未做数值范围剪裁的窗口位置;ΔQt为t时刻窗口位置的移动偏移值,ΔQt=(Δx,Δy)t∈[-1,+1]2;W为所述裁剪窗口的窗口大小,WI为所述像素级图像的大小。
本发明另一实施例对应提供了一种图像矢量化装置,包括:
图像获取模块,用于获取像素级图像,并构造与所述像素级图像大小相同的画布;
窗口初始化模块,用于初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置;
对齐裁剪模块,用于根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块;
笔划绘制模块,用于将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划;
可微拼贴模块,用于基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;
窗口移动模块,用于将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置;
草图生成模块,用于当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
本发明另一实施例提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述发明实施例所述的图像矢量化方法。
相比于现有技术,本发明实施例公开的一种图像矢量化方法及装置,通过获取像素级图像,并构造与所述像素级图像大小相同的画布,初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置,根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划,基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置,当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图,这样实现动态窗口在像素级图像上移动并同时根据窗口内容绘制笔划,可适用于不同风格、不同分辨率的图像,且无需调整大量参数以适配不同的图像,降低了计算复杂度。同时,输出的矢量图具有更好的视觉质量,与输入的图像的一致程度更高,矢量化图的效果更好。此外,本发明方法大大缩短了运行时间,能有效提高矢量化技术速度。
附图说明
图1是本发明一实施例提供的一种图像矢量化方法的流程示意图;
图2是本发明一实施例提供的图像矢量化方法的具体流程示意图;
图3是本发明一实施例提供的VGG-16模型结构示意图;
图4是本发明一实施例提供的一种图像矢量化方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明一实施例提供的一种图像矢量化方法的流程示意图,所述方法包括步骤S101至S107。
S101、获取像素级图像,并构造与所述像素级图像大小相同的画布。
具体的,本发明的输入数据为任意分辨率的像素级图像I,同时根据输入图像的大小WI构造相同大小的空白画布Ct-1。
S102、初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置。
示例性的,该裁剪窗口为可移动的动态窗口,初始化裁剪窗口的窗口位置Q和窗口大小W,可定义窗口大小为128*128,窗口位置为随机位置。
S103、根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块。
S104、将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划。
S105、基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧。
需要说明的是,本实施例方法模拟人绘制图像的行为,引入一个动态窗口,在像素级图像上四处移动并同时根据窗口内容进行一个个笔划的绘制。其中,本实施例的对齐裁剪和可微拼贴操作用于驱动动态窗口的运行。笔划信息包括笔划生成器输出的笔划矢量参数及贝塞尔曲线参数,贝塞尔曲线参数由笔划矢量参数经转化得到。在一具体实施例中,参见图2,是本发明一实施例提供的图像矢量化方法的具体流程示意图,该步骤S104包括:
将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数;
将所述笔划的矢量参数转化为一贝塞尔曲线的参数;
将所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像。
在上述实施例的基础上,在一些实施例中,所述根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,具体包括:
获取所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值,以及所述像素与所述预设像素的距离,所述预设像素包括位于所述像素左上方的像素、位于所述像素左下方的像素、位于所述像素右上方的像素及位于所述像素右下方的像素;
根据所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值及所述像素与所述预设像素的距离,进行双线性插值计算,得到所述区域小块上所述像素的值。
需要说明的是,现有技术中在对齐裁剪操作中裁剪窗口的窗口位置为浮点数值,大部分情况下与空间像素不完全对齐,若对位置进行量化处理,会导致裁剪得到的小块与窗口区域不对齐。针对上述问题,本实施例使用双线性插值算法进行对齐裁剪,令区域小块上每一个像素的值由被裁剪图像上与该像素临近的周围四个像素值的双线性插值计算得到,这样保证了裁剪得到的区域小块与窗口区域对齐。
更具体的,双线性插值算法为:定义区域小块上某个像素P对应的被裁剪图像上周围四个像素(A:左上、B:右上、C:左下、D:右下)的值分别为f(0,0),f(1,0),f(0,1),f(1,1),且P到A/C的水平距离为dx,则到B/D的水平距离为1-dx;P到A/B的垂直距离为dy,则到C/D的垂直距离为1-dy,此时像素P的值f(P)由双线性插值公式计算如下:
f(P)=f(0,0)(1-dx)(1-dy)+f(1,0)dx(1-dy)+f(0,1)(1-dx)dy+f(1,1)dxdy。
进一步,在一些实施例中,所述笔划生成器由卷积神经网络和循环神经网络构成,所述将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数,包括:
使用所述卷积神经网络提取所述区域小块的图像特征;
将所述图像特征输入所述循环神经网络,得到下一笔划的矢量参数,其中,通过如下公式确定所述笔划的矢量参数:
at=(xc,yc,Δx,Δy,w,p)t (3)
at为t时刻笔划的矢量参数,(xc,yc)∈[-1,+1]2作为贝塞尔曲线的中间控制点,(Δx,Δy)∈[-1,+1]2为到下一个位置的偏移值,w∈[0,1]为线条宽度,p∈[0,1]为笔触状态,t为时间,t=1,2,…,T。
在本实施例中,对输入的像素级图像和当前画布裁剪得到区域小块后,将区域小块输入由卷积神经网络和循环神经网络构成的笔划生成器。其中,笔划生成器需要对区域小块图像进行建模,即先使用卷积神经网络提取图像特征,然后将图像特征输入循环神经网络,最后通过一个全连接层输出下一笔划的矢量参数。这样,使用神经网络绘制笔划,能有效提高绘制出的笔划与原图像的一致程度,具有更好的视觉效果,能有效避免矢量图失真。
在一些实施例中,通过如下步骤训练所述笔划生成器,具体包括:
获取在草图分类任务下训练完成的VGG-16模型;
获取渲染后的线条画图像和真实的线条画图像,线条画图像为由所述可微渲染器渲染所有笔划图像叠加后得到的像素图;
将所述渲染后的线条画图像和所述真实的线条画图像分别输入到所述VGG-16模型,以获取每个预设层输出的特征图;
根据公式(1),确定第j层的损失函数:
对所有预设层的损失函数进行累加,得到总损失函数;
以所述总损失函数训练所述笔划生成器。
示例性的,参见图3,是本发明一实施例提供的VGG-16模型结构示意图,在训练时,由于引入的可微渲染器,可仅使用一个像素级的损失函数进行监督训练,而不需要依赖矢量数据。本实施例使用感知损失,即利用一个在草图分类任务下训练好的VGG-16模型φ(如图3所示),将渲染后的线条画图像和真实的线条画图像y分别输入此模型,各自取出第2、4、7、11层(见图3层图例上方的数字)后输出的特征图,然后进行逐像素相减,作为每一层的损失函数。具体为,定义φj(·)为第j层后输出的特征图,其图像大小为Dj×Hj×Wj,则第j层的损失函数如公式(1)所示。由此,对所有层(J={2,4,7,11})的损失函数进行累加,则得到总损失函数Loss=∑j∈JLj,以用于笔划生成器的训练。
更进一步,将所述笔划的矢量参数转化为一贝塞尔曲线的参数,具体表示为:
qt=(x0,y0,x1,y1,x2,y2,r0,r2)t,t=1,2,…,T
(x0,y0)t=(0,0),(x0,y0)t=(xc,yc)t,(x0,y0)t=(Δx,Δy)t,
(r0)t=wt-1,(r2)t=wt.
其中,x0,y0,x1,y1,x2,y2为贝塞尔曲线的控制点,qt为贝塞尔曲线的参数,r0为贝塞尔曲线第一个控制点的宽度,r2为贝塞尔曲线最后一个控制点的宽度,wt-1为上面公式(3)中,t-1时刻笔划的线条宽度,wt为上面公式(3)中,t时刻笔划的线条宽度。
进一步,将所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像。其中,可微渲染器由卷积神经网络构成,以将每个笔划的矢量参数渲染为笔划图像。
进一步,基于所述裁剪窗口对所述笔划图像进行可微拼贴,得到与所述像素级图像相适配的笔划帧。由于此前可微渲染器输出的笔划图像为裁剪窗口大小,通过可微拼贴转化为原输入图像大小的笔划帧。具体的,可微拼贴操作基于裁剪窗口进行,使用双线性图像插值算法,令拼贴后的笔划帧上每一个像素的值由笔划图像上与该像素临近的周围四个像素值的双线性插值计算得到(具体算法如上述实施例所示)。因此,可微拼贴操作因完全在连续空间进行,不涉及量化操作,因而能够允许梯度的反向传播,并使整个方法的训练能在端到端的情况下进行。
进一步,请参见图2,在步骤S104之前,还包括:
获取本次操作的笔触状态;
当所述笔触状态为零时,则去除所述笔划;
当所述笔触状态为一时,则保留所述笔划,将所述笔划添加到所述画布上。
在本实施例中,使用获取到的笔触状态,判断是否保留所述笔划。具体的,由于图像绘制过程中使用连续笔划,所以需要在一段曲线末端进行提笔操作;然后将笔移到另一个位置,再下笔重新绘制。若保留上述笔划,则将此笔划添加到当前画布上。
S104、将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置。
需要说明的是,请参见图2,上述步骤中若保留该笔划,则将笔划添加到画布上,进而裁剪窗口移动到笔划绘制末端位置;若不保留该笔划,则裁剪窗口移动到笔划绘制末端位置。
在一具体实施例中,所述更新所述裁剪窗口的窗口位置,具体包括:
根据公式(4)和(5),更新所述裁剪窗口的窗口位置:
其中,Qt为更新后t时刻的窗口位置,Qt-1为上一个时刻的窗口位置,为更新后t时刻的未做数值范围剪裁的窗口位置;ΔQt为t时刻窗口位置的移动偏移值,ΔQt=(Δx,Δy)t∈[-1,+1]2;W为所述裁剪窗口的窗口大小,WI为所述像素级图像的大小。
本实施例中,做max/min操作是为了防止位置坐标越界,即裁剪窗口移动到图像区域以外。
S105、当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
在一些实施例中,请参见图2,在步骤S104之后,还包括:
获取当前的绘制长度;
判断所述绘制长度是否达到预设的绘制最大长度;
当所述绘制长度未达到所述绘制最大长度时,则重新根据所述裁剪窗口对所述像素级图像和所述画布进行对齐裁剪,直至所述绘制长度达到所述绘制最大长度。
具体的,若当前的绘制长度已达到绘制最大长度,则停止绘制;否则,重新根据上述更新后的裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块。其中,本发明为一个循环式方法,通过设置一个绘制最大长度来控制循环次数。
本发明实施例提供的一种图像矢量化方法,通过获取像素级图像,并构造与所述像素级图像大小相同的画布,初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置,根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划,基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置,当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图,这样实现动态窗口在像素级图像上移动并同时根据窗口内容绘制笔划,可适用于不同风格、不同分辨率的图像,且无需调整大量参数以适配不同的图像,降低了计算复杂度。同时,输出的矢量图具有更好的视觉质量,与输入的图像的一致程度更高,矢量化图的效果更好。此外,本发明方法大大缩短了运行时间,能有效提高矢量化技术速度。
参见图4,是本发明一实施例提供的一种图像矢量化方法的流程示意图,包括:
图像获取模块201,用于获取像素级图像,并构造与所述像素级图像大小相同的画布;
窗口初始化模块202,用于初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置;
对齐裁剪模块203,用于根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块;
笔划绘制模块204,用于将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划;
可微拼贴模块205,用于基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;
窗口移动模块206,用于将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置;
草图生成模块207,用于当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
优选的,该笔划绘制模块204包括:
笔划生成单元,用于将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数;
笔划矢量参数转化单元,用于将所述笔划的矢量参数转化为一贝塞尔曲线的参数;
渲染单元,用于所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像。
优选的,该装置还包括:
笔触状态获取单元,用于获取本次操作的笔触状态;
第一笔划保留判断单元,用于当所述笔触状态为零时,则去除所述笔划;
第二笔划保留判断单元,用于当所述笔触状态为一时,则保留所述笔划,将所述笔划添加到所述画布上。
优选的,该装置还包括:
绘制长度获取单元,用于获取当前的绘制长度;
绘制长度判断单元,用于判断所述绘制长度是否达到预设的绘制最大长度;
循环操作单元,用于当所述绘制长度未达到所述绘制最大长度时,则重新根据所述裁剪窗口对所述像素级图像和所述画布进行对齐裁剪,直至所述绘制长度达到所述绘制最大长度。
优选的,该笔划绘制模块204包括:
VGG-16模型获取单元,用于获取在草图分类任务下训练完成的VGG-16模型;
训练图像获取单元,用于获取渲染后的线条画图像和真实的线条画图像,线条画图像为由所述可微渲染器渲染所有笔划图像叠加后得到的像素图;
特征图获取单元,用于将所述渲染后的线条画图像和所述真实的线条画图像分别输入到所述VGG-16模型,以获取每个预设层输出的特征图;
损失函数计算单元,用于根据公式(1),确定第j层的损失函数:
总损失函数生成单元,用于对所有预设层的损失函数进行累加,得到总损失函数;
训练单元,用于以所述总损失函数训练所述笔划生成器。
优选的,该对齐裁剪模块包括:
像素值单元,用于获取所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值,以及所述像素与所述预设像素的距离,所述预设像素包括位于所述像素左上方的像素、位于所述像素左下方的像素、位于所述像素右上方的像素及位于所述像素右下方的像素;
双线性插值计算单元,用于根据所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值及所述像素与所述预设像素的距离,进行双线性插值计算,得到所述区域小块上所述像素的值。
优选的,该笔划生成单元包括:
图像特征提取单元,用于使用所述卷积神经网络提取所述区域小块的图像特征;
笔划矢量参数计算单元,用于将所述图像特征输入所述循环神经网络,得到下一笔划的矢量参数,其中,通过如下公式确定所述笔划的矢量参数:
at=(xc,yc,Δx,Δy,w,p)t (3)
at为t时刻笔划的矢量参数,(xc,yc)∈[-1,+1]2作为贝塞尔曲线的中间控制点,(Δx,Δy)∈[-1,+1]2为到下一个位置的偏移值,w∈[0,1]为线条宽度,p∈[0,1]为笔触状态,t为时间,t=1,2,…,T。
优选的,该窗口移动模块204包括:
窗口位置更新单元,用于根据公式(4)和(5),更新所述裁剪窗口的窗口位置:
其中,Qt为更新后t时刻的窗口位置,Qt-1为上一个时刻的窗口位置,为更新后t时刻的未做数值范围剪裁的窗口位置;ΔQt为t时刻窗口位置的移动偏移值,ΔQt=(Δx,Δy)t∈[-1,+1]2;W为所述裁剪窗口的窗口大小,WI为所述像素级图像的大小。
本发明实施例提供的一种图像矢量化装置,通过获取像素级图像,并构造与所述像素级图像大小相同的画布,初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置,根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划,基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置,当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图,这样实现动态窗口在像素级图像上移动并同时根据窗口内容绘制笔划,可适用于不同风格、不同分辨率的图像,且无需调整大量参数以适配不同的图像,降低了计算复杂度。同时,输出的矢量图具有更好的视觉质量,与输入的图像的一致程度更高,矢量化图的效果更好。此外,本发明方法大大缩短了运行时间,能有效提高矢量化技术速度。
该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如图像矢量化程序。所述处理器执行所述计算机程序时实现上述各个图像矢量化方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (6)
1.一种图像矢量化方法,其特征在于,包括:
获取像素级图像,并构造与所述像素级图像大小相同的画布;
初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置;
根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块;所述根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块,包括:获取所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值,以及所述像素与所述预设像素的距离,所述预设像素包括位于所述像素左上方的像素、位于所述像素左下方的像素、位于所述像素右上方的像素及位于所述像素右下方的像素;根据所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值及所述像素与所述预设像素的距离,进行双线性插值计算,得到所述区域小块上所述像素的值;
将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划;所述将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划,具体包括:将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数;将所述笔划的矢量参数转化为一贝塞尔曲线的参数;将所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像;
基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;所述可微拼贴操作基于裁剪窗口进行,使用双线性图像插值算法,令拼贴后的笔划帧上每一个像素的值由笔划图像上与该像素临近的周围四个像素值的双线性插值计算得到;
将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置;
其中,Qt为更新后t时刻的窗口位置,Qt-1为上一个时刻的窗口位置,为更新后t时刻的未做数值范围剪裁的窗口位置;ΔQt为t时刻窗口位置的移动偏移值,ΔQt=(Δx,Δy)t∈[-1,+1]2;W为所述裁剪窗口的窗口大小,WI为所述像素级图像的大小;
在更新所述裁剪窗口的窗口位置之后,获取当前的绘制长度,判断所述绘制长度是否达到预设的绘制最大长度;当所述绘制长度未达到所述绘制最大长度时,则重新根据所述裁剪窗口对所述像素级图像和所述画布进行对齐裁剪,直至所述绘制长度达到所述绘制最大长度;
当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
2.如权利要求1所述的图像矢量化方法,其特征在于,在所述将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置之前,还包括:
获取本次操作的笔触状态;
当所述笔触状态为零时,则去除所述笔划;
当所述笔触状态为一时,则保留所述笔划,将所述笔划添加到所述画布上。
3.如权利要求1所述的图像矢量化方法,其特征在于,通过如下步骤训练所述笔划生成器,具体包括:
获取在草图分类任务下训练完成的VGG-16模型;
获取渲染后的线条画图像和真实的线条画图像,线条画图像为由所述可微渲染器渲染所有笔划图像叠加后得到的像素图;
将所述渲染后的线条画图像和所述真实的线条画图像分别输入到所述VGG-16模型,以获取每个预设层输出的特征图;
对所有预设层的损失函数进行累加,得到总损失函数;
以所述总损失函数训练所述笔划生成器。
4.如权利要求1所述的图像矢量化方法,其特征在于,所述笔划生成器由卷积神经网络和循环神经网络构成,所述将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数,包括:
使用所述卷积神经网络提取所述区域小块的图像特征;
将所述图像特征输入所述循环神经网络,得到下一笔划的矢量参数,其中,通过公式at=(xc,yc,Δx,Δy,w,p)t确定所述笔划的矢量参数;
at为t时刻笔划的矢量参数,(xc,yc)∈[-1,+1]2作为贝塞尔曲线的中间控制点,(Δx,Δy)∈[-1,+1]2为到下一个位置的偏移值,w∈[0,1]为线条宽度,p∈[0,1]为笔触状态,t为时间,t=1,2,…,T。
5.一种图像矢量化装置,其特征在于,包括:
图像获取模块,用于获取像素级图像,并构造与所述像素级图像大小相同的画布;
窗口初始化模块,用于初始化裁剪窗口的信息,所述信息包括窗口大小和窗口位置;
对齐裁剪模块,用于根据所述裁剪窗口,对所述像素级图像和所述画布进行对齐裁剪,得到区域小块;所述对齐裁剪模块包括像素值单元和双线性插值计算单元;所述像素值单元用于获取所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值,以及所述像素与所述预设像素的距离,所述预设像素包括位于所述像素左上方的像素、位于所述像素左下方的像素、位于所述像素右上方的像素及位于所述像素右下方的像素;所述双线性插值计算单元用于根据所述区域小块上任一像素对应的被裁剪图像上周围四个预设像素的值及所述像素与所述预设像素的距离,进行双线性插值计算,得到所述区域小块上所述像素的值;
笔划绘制模块,用于将所述区域小块输入到预先建立的笔划生成器进行计算,获得相应的笔划信息,并根据所述笔划信息绘制笔划;所述笔划绘制模块包括笔划生成单元,用于将所述区域小块输入到预先建立的笔划生成器进行计算,得到下一笔划的矢量参数;所述笔划绘制模块还包括了笔划矢量参数转化单元,用于将所述笔划的矢量参数转化为一贝塞尔曲线的参数;所述笔划绘制模块还包括了渲染单元,用于将所述贝塞尔曲线的参数输入到预设的可微渲染器进行处理,得到笔划图像;
可微拼贴模块,用于基于所述裁剪窗口对所述笔划进行可微拼贴,得到与所述像素级图像相适配的笔划帧;所述可微拼贴操作基于裁剪窗口进行,使用双线性图像插值算法,令拼贴后的笔划帧上每一个像素的值由笔划图像上与该像素临近的周围四个像素值的双线性插值计算得到;
窗口移动模块,用于将所述裁剪窗口移动到所述笔划绘制的末端位置,并更新所述裁剪窗口的窗口位置;所述窗口移动模块包括窗口位置更新单元;所述窗口位置更新单元用于根据公式和更新所述裁剪窗口的窗口位置;其中,Qt为更新后t时刻的窗口位置,Qt-1为上一个时刻的窗口位置,为更新后t时刻的未做数值范围剪裁的窗口位置;ΔQt为t时刻窗口位置的移动偏移值,ΔQt=(Δx,Δy)t∈[-1,+1]2;W为所述裁剪窗口的窗口大小,WI为所述像素级图像的大小;
绘制长度获取单元,用于在更新所述裁剪窗口的窗口位置之后,获取当前的绘制长度;
绘制长度判断单元,用于判断所述绘制长度是否达到预设的绘制最大长度;
循环操作单元,用于当所述绘制长度未达到所述绘制最大长度时,则重新根据所述裁剪窗口对所述像素级图像和所述画布进行对齐裁剪,直至所述绘制长度达到所述绘制最大长度;
草图生成模块,用于当检测到当前绘制长度达到预设的绘制最大长度时,停止绘制,获得矢量图。
6.一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任意一项所述的图像矢量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297589.6A CN113077477B (zh) | 2021-03-19 | 2021-03-19 | 图像矢量化方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110297589.6A CN113077477B (zh) | 2021-03-19 | 2021-03-19 | 图像矢量化方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113077477A CN113077477A (zh) | 2021-07-06 |
CN113077477B true CN113077477B (zh) | 2023-01-24 |
Family
ID=76612804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110297589.6A Active CN113077477B (zh) | 2021-03-19 | 2021-03-19 | 图像矢量化方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113077477B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114332286B (zh) * | 2022-03-11 | 2023-02-07 | 珠海视熙科技有限公司 | 一种人工智能绘画方法、装置及计算机存储介质 |
CN115309313A (zh) * | 2022-08-09 | 2022-11-08 | 盈帜科技(常州)有限公司 | 一种二维场景海量矢量数据显示方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853517A (zh) * | 2010-05-26 | 2010-10-06 | 西安交通大学 | 一种基于笔划限制和纹理的真实图像油画自动生成方法 |
CN104021385A (zh) * | 2013-03-02 | 2014-09-03 | 北京信息科技大学 | 基于模板匹配及曲线拟合的视频字幕细化方法 |
CN108470320A (zh) * | 2018-02-24 | 2018-08-31 | 中山大学 | 一种基于cnn的图像风格化方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2951666B2 (ja) * | 1989-03-07 | 1999-09-20 | 株式会社日立製作所 | クリッピング方法及びグラフィックシステム並びにワークステーション |
US9792517B2 (en) * | 2016-02-12 | 2017-10-17 | Wacom Co., Ltd. | Method and system for generating and selectively outputting two types of ink vector data |
US10964100B2 (en) * | 2018-09-10 | 2021-03-30 | Adobe Inc. | Data-driven modeling of advanced paint appearance |
-
2021
- 2021-03-19 CN CN202110297589.6A patent/CN113077477B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853517A (zh) * | 2010-05-26 | 2010-10-06 | 西安交通大学 | 一种基于笔划限制和纹理的真实图像油画自动生成方法 |
CN104021385A (zh) * | 2013-03-02 | 2014-09-03 | 北京信息科技大学 | 基于模板匹配及曲线拟合的视频字幕细化方法 |
CN108470320A (zh) * | 2018-02-24 | 2018-08-31 | 中山大学 | 一种基于cnn的图像风格化方法及系统 |
Non-Patent Citations (4)
Title |
---|
Automatic Image Vectorization Using Superpixels;Wen Dai 等;《2013 6th International Congress on Image and Signal Processing (CISP 2013)》;20131231;第922-926页 * |
Enabling My Robot To Play Pictionary : Recurrent Neural;Ravi Kiran Sarvadevabhatla 等;《arXiv:1608.03369v1》;20160911;第1-5页 * |
基于感知损失的深度卷积网络的草图简化研究;谢敏珊;《中国硕士学位论文全文数据库》;20181215;第1-74页 * |
基于稀疏表示的物体图像修复;高成英 等;《计算机学报》;20191231;第42卷;第1-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113077477A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108961303B (zh) | 一种图像处理方法、装置、电子设备和计算机可读介质 | |
CN111488985B (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
US10726599B2 (en) | Realistic augmentation of images and videos with graphics | |
CN109583509B (zh) | 数据生成方法、装置及电子设备 | |
CN108765584B (zh) | 激光点云数据集增广方法、装置及可读存储介质 | |
CN113077477B (zh) | 图像矢量化方法、装置及终端设备 | |
CN110533594B (zh) | 模型训练方法、图像重建方法、存储介质及相关设备 | |
CN112308866B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN110570440A (zh) | 一种基于深度学习边缘检测的图像自动分割方法及装置 | |
CN111724481A (zh) | 对二维图像进行三维重构的方法、装置、设备及存储介质 | |
CN111192312B (zh) | 基于深度学习的深度图像获取方法、装置、设备及介质 | |
CN109697748B (zh) | 模型压缩处理方法、模型贴图处理方法装置、存储介质 | |
Feng et al. | FasTFit: A fast T-spline fitting algorithm | |
CN114444565A (zh) | 一种图像篡改检测方法、终端设备及存储介质 | |
CN110046623B (zh) | 一种图像特征点提取方法和相机 | |
WO2022170895A1 (zh) | 图像处理方法和装置 | |
CN109712075B (zh) | 一种数字图像数据原图识别方法及装置 | |
CN117315406B (zh) | 一种样本图像处理方法、装置及设备 | |
CN114782645A (zh) | 虚拟数字人制作方法、相关设备及可读存储介质 | |
CN113963009A (zh) | 基于可形变划块的局部自注意力的图像处理方法和模型 | |
CN114913305B (zh) | 模型处理方法、装置、设备、存储介质及计算机程序产品 | |
CN114511862B (zh) | 表格识别方法、装置及电子设备 | |
CN113392820B (zh) | 动态手势识别方法、装置、电子设备及可读存储介质 | |
CN117274406A (zh) | 一种室内地图矢量化方法、装置和电子设备 | |
CN114862716A (zh) | 人脸图像的图像增强方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |