基于Potrace,点跟踪的文创产品逆向设计方法研究

杨蕾,周军,胡慧,张欣

(西南科技大学 制造过程测试技术省部共建教育部重点实验室,四川 绵阳 621010)

文创产品设计特别是基于博物馆、风景区等特定场景下的纪念品设计,随着国民经济的增强和文化自信的不断提升,日益受到大众的喜爱和认同。而文创设计有别于一般的产品设计,具有产品设计类别众多、单品迭代频率快速等特点。在设计时也更注重通过对该博物馆或风景区典型代表物原型进行二维形态还原后的再设计方法。基于文创设计的独特性,设计师特别是新手设计师或者工科背景下的设计专业学生,在形态的提取和推演时,往往会花费大量的时间和精力在设计参照物的原型还原上,从而影响文创产品的快速迭代、产品类别的扩充以及设计质量的提升。

当下主流的文创设计产出大多聚焦于平面类产品输出,利用设计原型进行提炼和改良的装饰图形应用于抱枕、笔记本、手机壳、水杯等产品的平面形态设计中。而运用产品逆向设计的方法,结合计算机的图形图像处理功能,将原本设计师手工还原设计参照物二维形态的环节,用计算机算法替代,可大大简化设计流程、节省设计时间、提高还原准确率,提升文创产品衍生物的设计效率和设计质量。产品的逆向设计一般流程见图1。在这些流程中,数据采集、数据处理、二维形态提取是逆向设计的三大关键环节。以设计三星堆青铜面具(见图2)相关的文创产品为例,为了能够设计出与青铜面具等比例的三维或二维文创产品,首先必须要对青铜面具进行数据采集(测量),然后根据采集或者测量的数据利用CAD/CAE/CAM 等辅助软件绘制出可等大放缩的矢量图像,最后再根据需要的新产品重构模型。

图1 逆向设计流程Fig.1 Reverse design process

上述过程中,数据采集和数据处理需要人工利用现有的测量工具对已有产品进行尺寸测量和图形绘制,这极大程度上浪费了人工时间。虽然目前市面上有PS、AI 等设计软件可以利用二维图片抠取产品图样用于文创产品的再设计。由于软件技能的熟练程度不同,极有可能出现抠图结果细节缺失、还原度低和线条生硬等问题,这也对设计师软件操作能力和图片修复能力提出了要求。

基于以上问题,结合图形矢量化的方法,在特定文创产品设计领域,将传统的设计师手绘装饰纹样、图案环节借助于计算机算法,直接扫描提取出设计原型的外轮廓和多边形路径,快速准确高效地还原设计对象的二维形态,设计师在此形态基础之上进行再设计,可有效提高设计效率、简化设计步骤,特别是在形态还原和提取环节。通过算法生成的原始参照物轮廓形态,更加准确,在此基础之上加以设计和改良让设计师在设计时更有依据、形态还原度更高,在理解参照物的形面细节特征时也更具有表现力。而基于Potrace 点跟踪的文创产品逆向设计方法,在轮廓边缘处理、细节优化过度方面,体现出更加流畅合理的形态曲面,根据已有参照物的二维图像扫描优化生成的轮廓线条更加准确生动形象,减少了传统的手绘形态提取环节,重新定义和优化了文创产品设计流程,为广大从事文创产品设计的从业人员提供了一个更加简单、便捷的设计方法,让设计师的思维更多地运用到产品创作上,而不是技术操作上。

图像矢量化算法根据算法原理主要分为两个方面,基于人工智能算法的图像矢量化算法和传统图像矢量化算法。对于人工智能方向的图像矢量化算法,具有代表性的是北京邮电大学尹思思[1]提出了一种利用生成对抗网络的人脸特征线条生成算法,其主要分为2 个阶段:第1 阶段,通过引入自注意力机制保持面部特征,然后利用假人脸生成线条画;
第2 阶段,利用分层思想对线条画进行矢量化。其主要优点是生成的矢量图能够很大程度保证人脸线条的准确性。由于网络训练以人脸进行,因此该算法仅在人脸矢量化方面效果优良,不适于其他图像的矢量化。对于传统图像矢量化算法,北京交通大学李瑞鹏[2]重点以叶片裂纹图像为研究对象,将裂纹图像抽取边缘点,并对这些众多边缘点进行排序,得到一条连续封闭曲线的坐标点,最后利用NURBS 曲线进行矢量化拟合。该算法主要针对叶片裂纹图像,图像具有代表性,因此对于边缘较为复杂的裂纹会有比较好的效果。与此方法类似的是曹新虎[3],他的目的是要扫描现有地图,同样也是根据图像的边缘点来进行跟踪搜索,最后对地形线进行快速矢量化。而浙江工业大学的丁雪峰[4]针对几何位图,提出了一种利用Diffusion Curves 来对RGB 图像进行矢量化的算法,算法主要借鉴了Adobe公司开发的软件中蒙皮的概念,将图像抽象成空间,最后利用贝塞尔曲线拟合线性蒙皮,依次达到图像矢量化目的。该算法对图像细节部分处理较好,但是算法复杂度相对较高,不方便进行图像快速矢量化。

国外也有许多学者对位图的矢量化作了许多研究。Adams[5]利用误差扩散原理给定三角网络,然后利用三角网络将整张位图进行矢量化。这种方法速度较快,但是利用三角网络得出的矢量图不能真实表示原始图像。而Li Ping 等[6],使用了与Adams 相反的方法,首先给出少量点,然后通过迭代方法逐渐增加顶点。该方法结果比Adams 的结果更好,但由于引入了顶点位置的随机性,有可能导致生成的网络不满足三角网络,从而得不到最优结果。Selinger[7]则利用点跟踪的方法将图像先抽象成许多线条,即生成闭合多边形,再根据转角大小将多边形的转角用贝塞尔曲线优化,得出的结果能够很自然表示出原图。但是由于优化算法的时间复杂性,导致该算法时间耗费较多。

总之,目前对于图像矢量化算法,国内外主要研究以传统方法为主,主要利用网格和点跟踪两种方式对位图进行矢量路径提取。本文基于Potrace 点跟踪算法,利用交叉熵损失函数优化最终路径,降低了算法的时间复杂度,同时与Potrace 算法相比在图像复杂边缘的细节过渡更为自然。

Potrace 算法目前是将位图转换为矢量图的较为高效的算法之一。其主要原理是基于点跟踪的多边形拟合像素方法。算法作用的图像只能是二值图(黑白图像),首先Potrace 将二值图的不同边缘分解为若干条路径,然后将每条路径优化为一个合适的多边形,最后将多边形利用贝塞尔曲线链接成若干条曲线。

3.1 路径提取

首先假定二值图中目标为黑色,背景为白色。要确定图中目标图的具体位置,首先需要构建一个具有方向的图(有向图)。设点p 为图片中某个具体的像素,如果p 点的像素值与其领域内其他4 个元素(上、下、左、右)的值不完全一样,此时可以将p 作为一个顶点。以同样的方式确定顶点m、n,与此同时m、n 的欧式距离为1,这时就可以称在m、n 之间有一条边。如果这条边恰好将m 和n 分成了一个目标像素(白色)和一个背景像素(黑色),那么这条边就称之为有向边(方向为左白右黑),见图3。这样,由这些具有方向的边和顶点组成的图形就称之为有向图G。通过上述过程提取完路径后,由于位图本身可能存在许多孤岛,导致有多条闭合的路径存在,因此需要滤除这些小的“孤岛”。最简单有效的方法是通过计算闭合路径所围成的面积来找到干扰路径。当计算出的面积小于某一个阈值t(经验值)时,直接删除该路径即可。

图3 路径提取方法Fig.3 Path extraction method

3.2 多边形轮廓拟合

图4 直线路径表示Fig.4 Representation a straight path

注意,图中黑色圆点表示的是路径的顶点。方框则代表周围其他像素。于是通过上述方法就可以找出整个位图中的闭合路径的直线表示。最终位图的边缘就成了一个多边形轮廓,见图5。

图5 封闭路径的多边形表示Fig.5 Polygonal representation of a closed path

3.3 路径曲线拟合

图6 转角优化后效果Fig.6 Corner optimization effect

最后,按照实际的物体尺度将矢量图缩放到就得到了最终的矢量图。

在Potrace 算法中,由于最后Loss 函数确定了最优多边形路径,而Loss 中包含较多复杂运算,导致算法运行时间变长,很难将其运用到实时矢量图形提取领域。实际上,Loss 函数广泛使用于深度学习领域,其中交叉熵Loss 最为广泛,其定义如下:

本文实验环境为,Intel Core(TM) i7-7700HQ CPU,2.8 GHz 四核心八线程64 位PC。算法使用OPENCV 和C++实现。

本文对图7 中的样图进行矢量轮廓提取,结果见图8—9。

图7 测试样图Fig.7 Test sample

图8 算法结果1Fig.8 Algorithm result 1

图9 算法结果2Fig.9 Algorithm result 2

从算法结果中可以看出,本文算法与原Potrace 算法相比在提取的矢量轮廓图转角处更加自然,细节图见图10。从图10 右边放大线条图可以明显看出本文算法与Potrace 其他算法相比,在边缘转角处平滑了不少,这使得在边缘处过渡更加自然,不会因为“梯度”像素导致边缘矢量线条有明显转角。

图10 算法结果3Fig.10 Algorithm result 3

另外,本文算法在运行速度上也相比其他矢量算法具有明显提升,本文以10 张图片分别进行10 次实验时间取均值,将常见矢量化算法与本文算法进行对比,见表1。

从表1 可以看出,本文算法与其他相关算法比较,算法运行时间平均提高40%以上。测试所用图片均为1 024×768 像素,根据图像中的线条数量时间有所不同。

表1 算法时间比较Tab.1 Algorithm time comparison

以三星堆青铜纵目面具为例,通过外轮廓的提取,能够清晰辨别出设计参考对象的形面特征,在此基础上进行大面形态的分割,可准确定位出五官位置,脸部分割面也清晰可辨。通过大面形态的准确定位,再进行五官的勾勒和细节的刻画,和传统设计流程相比较,大大节约了参照物的二维形态还原过程且准确率大幅提升,即使是新手设计师也能轻松驾驭文创产品衍生物的设计创作过程,见图11。通过不同设计师的设计过程模拟,可以看出设计风格和设计结果并不会受到Potrace 算法提取的外轮廓形态的影响,相反只会起到积极的促进作用,通过设计论证,证明Potrace 算法提取的外轮廓形态进行文创产品逆向设计的方法是具有可行性和落地性的,见图12。

图11 青铜纵目面具线稿抽取与再设计Fig.11 Drawing and redesign of bronze vertical mask

图12 Potrace 轮廓提取在文创设计中的应用Fig.12 Application of Potrace contour extraction in cultural and creative design

本文针对文创产品中的逆向设计,提出了一个优化的图像矢量化算法。该算法在对二维和三维文创产品的逆向设计上可以简化其中的数据采集和数据处理两个步骤,使设计人员能够把更多的时间用在产品的创作上。同时算法的实质是利用交叉熵作为最优路径的损失函数,并且经过数学推导,将算法中的所有乘法和开方操作简化为加法运算,提高了算法运行时间。为文创产品逆向设计提供新的技术思路。

实验结果表明,本文算法运行结果对于边缘较为复杂的情况过渡较好,不会出现明显的像素“梯度”线条,并且算法运行时间较同类算法提高了40%以上,为文创产品实现逆向设计,提升设计质量提供了理论技术支撑。在具体的设计验证中,设计师利用Potrace 算法提取的外轮廓形态进行的形态推演,显著地提升了形面推敲的正确率和设计效率、简化了设计流程。最终提取出的形态轮廓清晰易辨,线条流畅顺滑,在此基础上进行的设计形体还原度高,且适配设计师不同风格的设计结果产出。将Potrace 算法运用在文创逆向设计领域,是一次全新且大胆的尝试,在实践过程中,对于更多细节轮廓的提取还有待于进一步提升,但是在传统设计方法中加入图像算法,简化设计流程,提升了设计效率。后续可进一步完善算法,使之更好服务于更多的文创设计从业人员。

猜你喜欢 逆向文创设计师 陶溪川文创街区现代装饰(2022年3期)2022-07-05逆向而行音乐天地(音乐创作版)(2022年1期)2022-04-26我是小小设计师阅读(低年级)(2021年6期)2021-08-09逆向思维天地宽中华诗词(2020年12期)2020-07-22《岁寒三友文创海报》现代出版(2020年3期)2020-06-20“不落灰”的文创当代陕西(2019年20期)2019-11-25铧芯文创锦绣·上旬刊(2019年7期)2019-10-21创意设计师作文大王·中高年级(2018年5期)2018-06-20天才设计师小哥白尼·军事科学画报(2009年11期)2009-11-30

推荐访问:逆向 跟踪 方法