前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AI技术在智能海报设计中的应用

AI技术在智能海报设计中的应用

作者头像
美团技术团队
发布于 2019-01-07 09:02:45
发布于 2019-01-07 09:02:45
1.5K0
举报
文章被收录于专栏:美团技术团队美团技术团队

总第322篇

2018年 第114篇

AI技术如何在视觉设计领域中协助设计师更高效地完成工作?本文将介绍我们在海报设计与AI技术结合方面的一些探索。

背景

在视觉设计领域中,设计师们往往会因为一些简单需求付出相当多的时间,比如修改文案内容,设计简单的海报版式,针对不同机型、展位的多尺寸拓展等。这些工作需要耗费大量的时间、人力成本(5~6张/人日),但对设计师的进步成长起到的作用却非常有限。另一方面,精准营销是未来的大趋势,在大流量背景下,首页的海报资源展位需要展示“千人千面”的效果,这对海报的生产效率也提出了非常高的要求。所以,我们美团外卖技术团队尝试结合AI技术,来协助设计师避免这种低收益、高重复的任务,同时低成本、高效率、高质量地完成海报图片的生成。本文以Banner(横版海报)为例,介绍我们在海报设计AI技术结合方面所进行的一些探索和研究。

分析

什么是Banner的设计过程?我们尝试总结了对Banner设计的理解,Banner的设计过程是一系列的具备某种特征属性的素材图层的有序叠加过程。这里的特征属性既包括颜色、形状、纹理、主题等视觉属性,也包括位置、大小、贴边等空间属性。在这个过程中,哪些环节可以被机器算法所探索呢?文献[1]研究了如何调整图像的颜色分布,使杂志封面的视觉效果更加符合人眼的视觉特性;文献[2]以此为基础,引入了基于显著性识别的图像裁剪,并使用优化方法来解决布局问题。阿里巴巴的鹿班系统在去年双十一当天,生成1.7亿张Banner;京东内部也在孵化玲珑和莎士比亚系统,更加智能地设计文案和Banner。

图1 封面配色&布局设计[2]

在设计领域的一些子问题上,可以用算法来挖掘出数据背后的规律(如图1所示)。那么,能否构建一个完整的学习算法和处理系统,统一解决Banner设计中所有的子问题(配色、布局、搭配、生成)呢?

技术方案

素材图层是Banner的基础元素,其本身可以被特征化,同时组成Banner的若干元素间的叠加顺序可以被序列化,因此,算法实际是在学习“在什么时候,选择某种素材,放在哪里”。

图2 流程框架

如图2所示,为了解决这个问题,我们设计规划器、优化器、生成器来共同构建海报设计的学习与生产过程。其中:

1. 规划器从数据中学习设计师对不同风格下的设计习惯与规律;

2. 优化器基于美学质量和设计原则,对前者的输出结果做精细化调整;

3. 最后,由生成器选取/生成素材并渲染成图;

4. 素材库作为这三个环节的基础,负责素材管理素材标签化

素材库

如何提取素材图片的特征属性,这是比较典型的分类问题。在计算机视觉领域,传统方案是提取图像的颜色、梯度等低级语义特征[3],结合传统的分类器(LR、SVM等)来实现分类。近年来,基于深度学习的方法因为能表达更为复杂的语义特征,逐渐成为主流方法[4]。如图3所示我们提取传统的低级语义特征,以及基于CNN的高级语义特征,来共同完成素材特征属性提取

图3 素材库-特征提取

规划器

完成素材的数据化工作后,怎样学习Banner的设计过程?

作为一种生成模型,对抗生成网络(GAN)[5]在近年广为应用,其优势是可以端到端地训练图像生成模型,但在我们的应用场景下,GAN存在以下两个问题:

1. GAN的过程更像是“黑盒”的过程:输入方面,虽然Conditional-GAN之类的方法可以实现某种程度有条件地可控生成,但对于Banner设计任务来说,其输入信息(文案、目标风格、主体信息)仍然过于复杂;

2. 输出方面,GAN直接生成源数据(即图像),但非常缺乏解释性。我们需要的是更加直观、更有解释性的信息,比如素材的类型、颜色、轮廓、位置等。

在上文中有提到,Banner设计过程是素材图层依次叠加的过程。因此,我们可以用序列生成模型来拟合这个过程[6]。在建模过程中,我们把素材视作词汇(Word),海报视作句子(Sentence),词汇索引视为离散化的特征索引,素材叠加顺序就可以视为句子中的词顺序[7]。

图4 规划器-序列生成

图4是我们使用的序列生成模型,输入主体信息和目标风格,输出素材特征的序列。为了增强预测过程中多条路径结果的多样性,我们在监督性地训练每个时刻的输出之外,还引入了评估整个序列合理性的Object loss。如图5所示,借鉴SeqGAN的思想,Object loss可以由判别器来提供[8]。

图5 SeqGAN[8]

优化器

规划器预测素材的量化特征,为了确保最终成图符合美学标准,需要一个后处理的过程(图6)。我们用优化器来解决这个问题。从本质上讲,这是一个优化过程。通过和设计师们的沟通,我们设计了一些基于常规设计理念和美学标准的目标函数,动作集合包括移动、缩放、亮度调整等,结合优化方法,提升Banner的视觉效果。

图6 优化器

生成器

优化后的素材特征序列,通过生成器来渲染成图。如图7所示,对于素材库检索不到符合某种特征属性的素材的情况,我们设计了图像风格迁移的方法来实现图像特征迁移。这里的特征可以是颜色、形状、纹理等低级特征,也可以是某种语义化的视觉风格特征,对后者来说,可以将源图像的内容Content和目标图像的风格Style在某种特征空间(CNN中的某一层)里做融合,实现风格迁移[9,10]。

图7 素材生成

应用场景及功能拓展

“千人千面”的精准营销是未来营销策略的趋势,这对商品素材的丰富性提出了非常高的要求;从为商家赋能的角度来说,也需要为商家提供更多样的海报版式,这也要求系统具备海报风格的快速学习能力和拓展能力。对此,在常规设计风格的研究之外,我们从以下3个方面做了一些拓展研究。

主体图片加工

商品素材的丰富度与美学质量是精细化营销及海报美学质量非常重要的一环。其中最核心的要求是图像分割的能力[11,12]。以全卷积网络(FCN)为基础,如图8所示,我们采取以下几个在目标分割领域常见的技巧,来实现商品图片的目标分割:

1. Encoder-Decoder结构

2. 空洞卷积

3. 多尺度特征融合

4. Two-Stage微调网络

图8 图像语义分割&抠图(结构图部分参考DeepLab v3+[12])

这种基于语义分割方法的结果,在专业设计师人工评审质量的过程中,发现主体边缘有时会出现明显的锯齿感。经过分析,我们认为有以下两个原因:

1. 语义分割模型把问题建模为一个“像素级分类过程”,每一个像素的类别都天然地被假设为“非此即彼”,大多数的Segmentation模型都采用Cross-Entropy作为损失函数;

2. 因此,无论是从模型结构(CNN)还是从损失函数的角度来说,分割模型会更倾向于全局信息从而丢弃局部结构信息,导致只能得到边缘比较粗糙的分割结果。

为此,如图8所示,我们在图像分割的输出结果之外,结合了Image Matting方法:

1. 对分割模型的输出结果做形态学变换,生成三值Trimap,分别表示前景区、背景区、未知区;

2. 应用常规的Matting方法,比如Bayesian、Close-Form等,以原图像和Trimap图像为输入,输出前景图的Alpha通道;

3. Matting可以使前景主体的边缘更加平滑,视觉质量更高(图9)。

图9 商品主体抠图

另外,基于图像美学质量评分模型,我们会优先选择质量分高的图片作为主体素材来源。对中低分的图片,未来可以考虑借鉴Cycle-GAN[13]的思想,设计基于半监督和GAN的图像增强网络,美化后再经过图像分割产生主体素材。

海报模板拓展

上述的常规设计风格的学习属于一种广义的设计风格,需要设计师先期投入很多精力做风格划分以及数据收集、处理。为了快速适配热点场景,我们借鉴图像检索技术(如图10所示),提取素材图片的CNN特征及颜色特征,使用欧式距离来度量素材相似度,这能节省人工打标签的成本,实现基于固定模板的自动拓展及生成(海报临摹)。

图10 素材图像检索与模板拓展

多分辨率拓展

在日常工作中,设计师在设计出Banner后,往往要花费很长时间对不同展位、不同版本、不同机型做多尺寸适配(如图11所示)。能否用算法来协助人工提效?在素材已经确定,并且相互的位置关系近乎确定的条件下做多分辨率适配,这本质上是一个优化问题,我们在上文布局优化器的基础上,增加元素的局部相对位置与全局绝对位置的拓扑关系作为目标函数。目前,系统支持在某个固定宽高比±30%范围内的任意分辨率适配,未来会进一步扩大适配范围。

图11 多分辨率拓展

总结

目前,我们的Banner智能设计系统为钻展(外卖首页广告位)、商家店铺装修等业务提供稳定的设计能力;素材加工等子能力也在为外卖、闪购等商品图片提供技术支持。后续我们会从扩展常规设计风格、语义相关的颜色及素材挖掘、自动解析数据、构建自评估学习闭环等方面继续研究,进一步提高算法的设计能力和适用性,尽可能协助设计师提高效率,降低高重复性工作的时间和经济成本。

参考文献

[1] A. Jahanian, J. Liu, D. Tretter, Q. Lin, E. O’Brien-Strain, S. Lee, N. Lyons, and J. P. Allebach. "Automatic Design of Colors for Magazine Covers". In Proc. IS&T/SPIE Electronic Imaging, International Society for Optics and Photonics, 2013 [2] X. Y. Yang, T. Mei, Y. Q. Xu, Y. Rui, S. P. Li. "Automatic Generation of Visual-Textual Presentation Layout". ACM Transactions on Multimedia Computing, Communications, and Applications, 2017 [3] David G. Lowe. "Distinctive Image Features from Scale-Invariant Keypoints". International journal of computer vision, 2004 [4] Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks". NIPS, 2012 [5] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, Y. Bengio. "Generative Adversarial Networks". NIPS, 2014 [6] K. Kawakami. "Supervised Sequence Labelling with Recurrent Neural Networks". Studies in Computational Intelligence, 2008 [7] T. Mikolov. "Statistical Language Models based on Neural Networks". 2012 [8] L. Yu, W. Zhang, J. Wang, Y. Yu. "SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient". AAAI, 2017 [9] L.A. Gatys, A.S. Ecker, M. Bethge. "Image Style Transfer Using Convolutional Neural Networks". CVPR, 2016 [10] Y. Li, M.Y. Liu, X. Li, M.H. Yang, J. Kautz. "A Closed-form Solution to Photorealistic Image Stylization". ECCV, 2018 [11] J. Long, E. Shelhamer, T. Darrell. "Fully Convolutional Networks for Semantic Segmentation". CVPR, 2015 [12] L.C. Chen, Y. Zhu, G. Papandreou, F. Schroff, H. Adam. "Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation". ECCV, 2018 [13] J.Y. Zhu, T. Park, P. Isola, A. A. Efros. "Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks". ICCV, 2017

作者简介

晓星,2017年6月加入美团,目前主要负责美团外卖图像内容挖掘、增强、生成方面的相关工作,致力于图像相关技术的积累及落地。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 美团技术团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Typecho 给评论增加点赞/喜欢功能
之前换了主题以后,重新给文章增加了点赞功能。 那么又如何给每一条评论都增加点赞功能呢?参考了以下两篇文章后,重新做了调整。增加cookie,防止重复点赞。
目的地-Destination
2023/03/06
1K0
关于typecho的一些样式代码
循环页面、分类、标签 <!--循环显示页面--> <?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
用户7146828
2021/08/09
1.3K0
typecho点赞实现代码分享
likeup是指定文章id的,do_action是点赞动作,动作为do为点赞,undo为取消点赞!请求地址就是你自己的域名!
泽泽社长
2023/04/17
6800
Typecho主题模板制作快速入门简易教程
Typecho主题的制作并不难,(以下称模板)只要写好了HTML和CSS,嵌套模板就非常简单了,无需了解标签的内部结构,只要会使用,就能迅速完成模板。
梦溪
2021/08/09
6K0
Typecho不修改源码不关闭反垃圾保护兼容pjax
方法一呢,明显不适合小白用户,而且程序更新后可能会出现问题,或者需要再次修改。 方法二,虽然简单直接了很多,但是呢作为一个写主题的博主,总会被小白重复问道为啥评论不好使【明明主题安装说明里都强调说明了要关闭反垃圾保护,可是小白就是看不到!所以对于主题作者来说这样也不太好】
泽泽社长
2023/04/17
3100
Typecho首页置顶文章的显示问题的解决
1. 同一篇文章会在首页的所有分类里面均置顶显示; 2. 如果是相同分类下的最近的文章,则会重复显示;
目的地-Destination
2023/03/06
1.4K0
Typecho首页置顶文章的显示问题的解决
Typecho最新热门热评文章调用api
因为群友花花弄了个高仿掘金主题,没有实现热门与热评文章加载功能,特此为其分享点代码,先是简单弄了个json版本,后来根据需求又弄了个html的版本
泽泽社长
2023/04/17
5670
PHP 老网站改造:typecho 动静分离
通过实施动静分离架构,将静态资源(如图片、脚本、样式表等)部署至独立二级域名,并整合第三方CDN全球加速服务及云对象存储方案,可显著优化网站性能指标。
启说
2025/04/27
840
Typecho随机文章与同分类下随机文章的实现
在制作Typecho主题时,有的时候会想弄个随机推荐文章的功能,所以我就简单弄了个函数,可以随机输出n篇文章,同时追加一些参数还可以输出当前文章分类下的随机文章,具体如下: 函数部分
泽泽社长
2023/04/17
4690
typecho重写数字分页(盒状分页)函数
之前写过《Typecho 自定义分页样式》主要是介绍typecho默认的分页文档使用方法,但是用了一段时间后发下局限性不少!
泽泽社长
2023/04/17
6240
Typecho 文章内链接在新窗口打开实现方式
  默认情况文章中如果有添加链接,那么是从当前窗口跳转的,并且外链没有添加标签,不利于SEO,文章内链接新窗口并添加标签如下。
宜轩
2022/12/29
1.6K0
Typecho 文章内链接在新窗口打开实现方式
Typecho主题开发/二次开发常用代码功能整理备用
目前我们在使用的博客CMS程序中,可能较多的网友会使用WordPress,毕竟提供的免费主题、插件以及文档是比较多的,主要是用户量确实比较多。其次国内的免费博客CMS中,ZBLOG和Typecho是小众用户群,不能说不行,只能说用户量相对比较小。但是老蒋个人认为有用作个人博客日志的还是可以用的。
老蒋
2021/12/24
4930
Typecho不使用插件实现Ajax评论功能
完善好的函数 function ajaxComment($archive){ $options = Helper::options(); $user = Typecho_Widget::widget('Widget_User'); $db = Typecho_Db::get(); // Security 验证不通过时会直接跳转,所以需要自己进行判断 // 需要开启反垃圾保护,此时将不验证来源 if($archive->request->get('_') != Helper::security()->getT
团团生活志
2022/08/16
5490
Typecho调用分类列表并隐藏多个分类方法
本想Typecho调用分类列表后,隐藏两个不需要的分类。网上找了一大堆教程,基本都是官方的方法。
目的地-Destination
2023/03/06
2.6K0
Typecho调用分类列表并隐藏多个分类方法
使用分词增强Typecho的搜索功能
本博客是使用Typecho搭建的,侧边提供了搜索功能,然而Typecho内置的搜索功能仅仅只是基于字符串的全匹配查找,功能非常鸡肋,很多合理的查询都没法得到结果,比如“Transformer的文章”、“BERT的相关内容”都没有查询结果,因为文章中都不包含这些字符串
mathor
2021/08/03
1.6K0
Typecho前台登录/注册
前台登录是个很方便的功能,无论是作为个人博客还是多人博客,前台登录都会节省用户时间。
泽泽社长
2023/04/17
4.7K0
typecho常用函数及调用方法
24.获取最新评论列表第二个版本,只显示访客评论不显示博主也就是作者或者说自己发的评论
kenvie
2022/01/20
1.8K0
表情包(附上cutten emoji.json)代码
直接下载这个参考乔治博客里面的文件位置替换对应文件就可以了 注意:仅适用于cutten4 最新版本 emoji.json下载地址: https://cdn.jsdelivr.net/gh/LR787/image/usr/uploads/2021/02/3630647554.json ctx.php下载地址 https://cdn.jsdelivr.net/gh/LR787/cdn/php/ctx.php
meowrain
2021/04/22
3.9K0
表情包(附上cutten emoji.json)代码
Akina For Typecho主题修改记录分享
大多数博主,基本都换过各种类型的博客程序,WordPress、Typecho、hexo、Z-Blog等等太多了,最后选择Typecho,就是因为小巧不臃肿。本人一共使用过两款:Cactus来自仙岛驿站和Akina来自子虚之人。
目的地-Destination
2023/10/12
3750
Akina For Typecho主题修改记录分享
Typecho通用评论组件包含Css样式
一直以来我都不太喜欢写Typecho评论列表样式,那时候多说还没有死,就想着有没有大佬直接写好一套Typecho评论列表简单样式,然后别人就可以改改css和html结构就能diy自己的样式,不用考虑php啥的,于是乎昨天简单弄了下。
泽泽社长
2023/10/01
4800
相关推荐
Typecho 给评论增加点赞/喜欢功能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档