與神經網路相比,你對P圖一無所知
栗子 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
“大神,可以幫我把羊蜜街拍P成我的臉麼?哦對,不光是這樣,還要像羊蜜喲…”
從一張照片裡取出某個元素,再把它神不知鬼不覺地混入另一張圖片裡,似乎是一件很有難度的事情。畢竟,分分鐘就會產生魔性的拼貼效果,不管是手動操作,還是AI的計算。
而如果“另一張圖片”是指人類的畫作,就更加不容易了。
不過,康奈爾大學和啊逗比的大神們生產了一種演算法,能把各種物體融合進畫作裡,且毫無PS痕跡。
大量藝術家的心血,甚至藝術家自己,都慘遭它的毒手:
△ 要啥自行車
△ 蒙娜憨莎·豆
△ 畢加炳
△ 給你買了個biao
△ 樊 · 蔡康永 · 高
是什麼演算法,如此喪心病狂?
記住這個名字:Deep Painterly Harmonization。
在康奈爾和啊逗比的P圖大神們看來,現存的全域性風格化演算法都太弱了。
它們確實能搞定整張照片的風格遷移。把畫作和被畫傳染的圖片擺在一起,可能不會看出太大的問題。
△ 介紹一下,這是我的新裝備
但要像上圖這樣,把美隊的盾牌融合到義大利畫家Onofrio Bramante的作品裡,微小的差異看上去就會很明顯。全域性風格遷移的表現也比較謙虛 (如左三) 。
無論是去除邊界線、匹配色彩還是細化質地,都很難讓貼上部分擁有畫作的原始風格。
我們不一樣
於是,這群大神覺得,他們需要搭建區域性風格化的神經網路。
大的方略就是,把畫作相關部分 (神經元響應) 的特徵統計,遷移到外來物體的對應位置上——關鍵在於選擇,哪些東西才是應該遷移的。
△ Gatys有隻幾何貓
小夥伴們以Gatys團隊發表的風格遷移技術為基礎,用VGG搭建了一個two-pass演算法,還額外引入了一些風格重建損失 (Reconstruction Losses) 來優化結果。
來來來,演算法詳情要一步一步看。
第一步 (First Pass):粗略影像協調 (單一尺度)
大致調整外來元素的色彩和質地,和畫中語義相似的部分對應。要在神經網路的每一層,分別找到相鄰最近的神經補丁,和貼上部分的神經元響應匹配起來。
△ 卷福麗莎,迷人的眼神
退一步,海闊憑魚躍。先不需要太糾纏影像的質量,因為一定程度上犧牲品質,團隊就可以設計出一個強大的演算法,適應多種多樣的畫風。
用Gram矩陣來計算風格重建損失,便可以將粗略協調的版本優化一下。
△ 不計風格損失的後果
這裡得到的是一箇中間產物,不過風格已經和原畫作很相似了。
第二步 (Second Pass):高品質細化 (多尺度)
有了第一步的基礎,此時開始對影像質量提出嚴格要求,便是順理成章。
這一步,先要在一個負責捕捉質地屬性的中間層集中火力,生成一個對應關係圖 (correspondence map) ,來剔除空間異常值 (spatial outliers)。
△ 你沉在,我昏黃的畫布裡
然後,對擁有空間一致性的對應圖進行上取樣 (upsample) ,進入神經網路更加精細的層次裡。這樣可以保證,對每一個輸出位置來說,所有尺度上的神經元響應,都來自畫中的同一位置。
如此一來,畫面便能擁有更加連貫的質感,看上去自然許多。
後處理
經過Two-Pass演算法的洗禮,中大尺度上看,影像質量幾乎無懈可擊;但在精細尺度上,可能還有不夠準確的情況存在。也就是說,可遠觀而不可__焉 (填空題:10分)。
於是,後處理也要兩步走:
色度降噪
高頻失真的現象,主要作用在色度通道,對亮度並沒有太大影響。
發現了這一特點,團隊將影像轉換成CIELAB色彩空間;再在Guided Filter裡,以亮度通道作為嚮導,來過濾ab色度通道。
△ 工作還是生活,這是一個問題
這個方法有效改善了高頻色彩失真的情況,但有可能捅出更大的漏洞。然後…
補丁合成
就有了第二步,來確保輸出的每個補丁都出現在畫面中。用PatchMatch給每一個補丁找到相似的補丁。再為所有畫風重疊的補丁取平均值,以此重構output,就可以保證畫面裡不要生出新的內容。
不過,這裡的副作用是會柔化細節,於是又要請出Guided Filter把影像分成底層 (Base Layer) 和細節層 (Detail Layer) ,來削弱柔化效果。
△ 畫風虐我千百遍,我,選擇狗帶
區域性遷移療效顯著
實驗結果表明,轉移一些區域特徵統計的集合,要比轉移很多獨立位置的特徵統計,效果要好得多。神經網路反應的對應關係圖幫了大忙。
區域性風格遷移的演算法,保障了統計學意義上的空間一致性和跨尺度一致性。得到天衣無縫的拼圖質量,這兩個“一致性”功績斐然。
△ 金拱門的八度人生
以後,拼圖少年們大概可以拋棄全域性風格遷移演算法了。放眼區域性,你的腦洞可以綻放得慘無人道。
不過,比起難以察覺的入侵,我還是醉心於這種360度全死角的魔性p圖。
△ 萬能的拷貝,萬能的貼上
更酸爽的論文傳送門:
http://www.cs.cornell.edu/~fujun/files/painting-arxiv18/deeppainting.pdf
這篇論文的作者包括:Fujun Luan(欒福軍)、Sylvain Paris、Eli Shechtman、Kavita Bala等人。他們還把程式碼開源了,還能看到更多觸目驚心的例子:
https://github.com/luanfujun/deep-painterly-harmonization
順便提一下,論文一作欒福軍,2015年本科畢業於清華,目前在康納爾大學攻讀博士學位。曾在Facebook、Face++、Adobe等公司實習。
藝術照小哥哥一直在鑽研視覺的玄妙。
比方說曾經被譽為“下一代PS”的Deep Photo Style Transfer,也是欒福軍的研究成果。Deep Photo能實現畫素級的風格遷移。
也是非常酷炫。
One More Thing
如果你暫時不方便去GitHub上圍觀,我們還搞了一個小型AI高手P圖展。在量子位公眾號(ID:QbitAI)對話介面,回覆“高手”二字,即可開始參觀。
— 完 —
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。
量子位 QbitAI · 頭條號簽約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態
相關文章
- 你對Python的力量一無所知Python
- 深度學習與圖神經網路深度學習神經網路
- 你一無所知的CSSCSS
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- BP神經網路流程圖神經網路流程圖
- 圖神經網路入門神經網路
- 圖神經網路知識神經網路
- 圖神經網路綜述:模型與應用神經網路模型
- 機器學習之多類別神經網路:一對多機器學習神經網路
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- 深入淺出圖神經網路 第5章 圖訊號處理與圖卷積神經網路 讀書筆記神經網路卷積筆記
- 探索無限大的神經網路神經網路
- 欺騙神經網路:建立你自己的對抗樣本神經網路
- 初識神經網路----一神經網路
- 語言模型與神經網路模型神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 深度學習與圖神經網路學習分享:CNN 經典網路之-ResNet深度學習神經網路CNN
- 動畫圖解迴圈神經網路動畫圖解神經網路
- 圖神經網路7日打卡心得神經網路
- Graph Neural Network——圖神經網路神經網路
- 神經網路神經網路
- 為什麼說BP神經網路就是人工神經網路的一種?神經網路
- 簡述脈衝神經網路SNN:下一代神經網路神經網路
- python對BP神經網路實現Python神經網路
- 再聊神經網路與深度學習神經網路深度學習
- 簡單的圖神經網路介紹神經網路
- Python繪製神經網路模型圖Python神經網路模型
- 深度學習與神經網路學習筆記一深度學習神經網路筆記
- LSTM神經網路神經網路
- 8、神經網路神經網路
- BP神經網路神經網路
- 模糊神經網路神經網路
- 深度學習與圖神經網路學習分享:Graph Embedding 圖嵌入深度學習神經網路
- 聊聊從腦神經到神經網路神經網路
- 清華大學圖神經網路綜述:模型與應用神經網路模型
- DeepMind開源圖網路庫,一種結合圖和神經網路的新方法神經網路
- 使用TensorRT部署你的神經網路(1)神經網路
- https時代來了,你卻還一無所知?HTTP