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月加入美團,目前主要負責美團外賣圖像內容挖掘、增強、生成方面的相關工作,致力于圖像相關技術的積累及落地。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276574.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

javaScript如何監聽瀏覽器關閉事件

轉載鏈接:http://www.cnblogs.com/Tim_Liu/archive/2010/11/09/1872596.html 最近寫東西的時候發現需要對瀏覽器的關閉進行監聽,當用戶關閉的時候需要調用session.invalid();清空session信息,但是仔細一查手冊發現無論是body還是window都沒有onclose事件,之后onload…

C++樹的實現

C樹的實現 STL里面沒有提供容器樹的模板實現&#xff0c;自已寫一個&#xff1a;Tree.h //tree.h 頭文件 #include <list> #include <algorithm> using namespace std; struct TreeNode; //定義一個結構體原型 classTree; //定義一個類原型 classIterator; //定義一…

加密文件忘記密碼怎么解密_MyBatis 配置文件 用戶密碼加密存儲

properties配置文件一般是使用properties保存配置文件內容,然后在mybatis配置文件中進行讀取在resource文件下新建db.properties文件內容如下# 數據庫配置文件 driver com.mysql.cj.jdbc.Driver url jdbc:mysql:// /mybatis username password 然后,接著把文件放入源碼包…

PHP,如何防止同一用戶同一時間多次登錄

轉載鏈接&#xff1a;http://blog.sina.com.cn/s/blog_4832ea590101djnp.html PHP&#xff0c;如何防止同一用戶同一時間多次登錄&#xff1f; 創建表 username password sessionId 張三 123456 ksw9dkw9ksl92w3 備注&#xff1a;用戶…

科技前沿智能創新 2019北京智能家居 全屋智能博覽會

2019北京智能家居大型展覽會 2019北京全屋智能家居博覽會報道布展&#xff1a;2019年6月26日-27日 展會開幕&#xff1a;2019年6月28日上午9&#xff1a;00時展會交易&#xff1a;2019年6月28日-30日 展會撤展&#xff1a;2019年6月30日下午14&#xff1a;00時 展覽會在北京市政…

java 容器_我也來聊聊,JAVA容器與迭代器

java的容器與迭代器是一個老生常談的話題了。本文旨在與大家分享一些關于雙向鏈表與迭代器的運用小技巧&#xff0c;并希望本篇文章的內容能夠在項目中給你帶來幫助。Stack與LinkedListStack是一個LIFO(后進先出)的容器。若要在java中定義一個Stack應該怎么辦&#xff1f;也許你…

VS2005調試時變慢解決辦法

vs2005生成代碼以及調試運行時&#xff0c;如果設置斷點系統運行非常緩慢&#xff0c;從網上查閱一些資料后解決&#xff1a; 主要解決辦法是&#xff1a; 打開VS2005菜單項"工具"---->"導入導出設置"----->"重置所有設置" 本文參考:http:…

apache目錄的訪問控制

轉載鏈接&#xff1a;http://blog.sina.com.cn/s/blog_7be8a2150100trml.html 1.根目錄的訪問控制 DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> 解釋一下&#xff1a; <Dir…

廣東高院駁回快播對深圳市場監管局2.6億罰款案上訴

雷帝網 樂天 12月29日報道據廣東高院官方微信消息&#xff0c;廣東省高級人民法院對深圳市快播科技有限公司&#xff08;簡稱快播&#xff09;訴深圳市市場監督管理局&#xff08;簡稱市場監管局&#xff09;著作權行政處罰糾紛案作出終審宣判&#xff0c;駁回上訴&#xff0c;…

【Vegas原創】恢復Oracle Package的笨方法

imp沒有恢復package的參數&#xff0c;所以&#xff0c;只能用笨辦法&#xff1a;rowsn&#xff0c;只導入表結構和物件。 步驟&#xff1a; 1&#xff0c;dbca新建一個test數據庫&#xff1b; 2&#xff0c;新增user&#xff0c;表空間&#xff0c;給user賦予權限 3&#xff0…

python enumerate函數_關于python中enumerate和zip函數的用法及舉例

關于python中enumerate和zip函數的用法及舉例關于enumerate函數&#xff1a;enumerate函數可以同時返回列表或元組等可迭代對象的下標和內容&#xff0c;但實際上&#xff0c;enumerate函數實際返回的是一個enumerate類型的可迭代對象&#xff0c;下面是用法舉例&#xff1a;se…

php 解析xml 的四種方法(轉)

轉載鏈接&#xff1a;http://www.cnblogs.com/likwo/archive/2011/08/24/2151793.html XML處理是開發過程中經常遇到的&#xff0c;PHP對其也有很豐富的支持&#xff0c;本文只是對其中某幾種解析技術做簡要說明&#xff0c;包括&#xff1a;Xml parser, SimpleXML, XMLReader,…

Golang 微服務系列 go-kit(Log,Metrics,Tracing)

go-kit Log & Metrics & Tracing 微服務監控3大核心 Log & Metrics & Tracing Log Log 模塊源碼有待分析&#xff08;分析完再補上&#xff09; Metrics 主要是封裝 Metrics 接口&#xff0c;及各個 Metrics(Prometheus,InfluxDB,StatsD,expvar) 中間件的封裝。…

GDI+

載解壓GDI開發包&#xff1b; 2&#xff0e; 正確設置include & lib 目錄&#xff1b; 3&#xff0e; stdafx.h 添加&#xff1a; #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include <gdiplus.h> 4&#xff0e; 程序中添加GDI的包含文件gdip…

shell 練習3

1、編寫腳本/root/bin/createuser.sh&#xff0c;實現如下功能&#xff1a;使用一個用戶名做為參數&#xff0c;如果指定參數的用戶存在&#xff0c;就顯示其存在&#xff0c;否則添加之&#xff1b;顯示添加的用戶的id號等信息2、編寫腳本/root/bin/yesorno.sh&#xff0c;提示…

HTML5文件實現拖拽上傳

轉載鏈接&#xff1a;http://www.cnblogs.com/caonidayecnblogs/archive/2010/09/09/1821925.html 通過HTML的文件API &#xff0c;Firefox、Chrome等瀏覽器已經支持從操作系統直接拖拽文件&#xff0c;并上傳到服務器。 相對于使用了十多年的HTML表單&#xff0c;這是一個革命…

兩個數組結果相減_學點算法(三)——數組歸并排序

今天來學習歸并排序算法。分而治之歸并算法的核心思想是分而治之&#xff0c;就是將大問題轉化為小問題&#xff0c;在解決小問題的基礎上&#xff0c;再去解決大問題。將這句話套用到排序中&#xff0c;就是將一個大的待排序區間分為小的待排序區間&#xff0c;對小的排序區間…

python實習生面試題_大數據分析實習生面試題庫

原標題&#xff1a;大數據分析實習生面試題庫大數據分析是一個有吸引力的領域&#xff0c;因為它不僅有利可圖&#xff0c;而且您有機會從事有趣的項目&#xff0c;而且您總是在學習新事物。如果您想從頭開始&#xff0c;請查看大數據分析實習生面試題庫以準備面試要點。大數據…

JavaScript編程語言 基礎 (1)

問題&#xff1a;什么是web前端前端&#xff1a;指界面&#xff0c;計算機&#xff08;PC&#xff09;軟件桌面的界面&#xff1b; 計算機端的瀏覽器界面&#xff1b; 移動端的軟件&#xff08;app&#xff09;界面&#xff1b; 移動端的瀏覽器界面。HtmlcssJavaScript 使用網頁…

shell結合expect寫的批量scp腳本工具

轉載鏈接&#xff1a;http://www.jb51.net/article/34005.htm expect用于自動化地執行linux環境下的命令行交互任務&#xff0c;例如scp、ssh之類需要用戶手動輸入密碼然后確認的任務。有了這個工具&#xff0c;定義在scp過程中可能遇到的情況&#xff0c;然后編寫相應的處理語…