只用幾筆,如何勾勒一只動物的簡筆畫,很多人從小都沒整明白的問題 —— 如今 AI 也能實現(xiàn)了。
下面圖中,左邊是三張不同的動物照片,右邊是 AI 僅用線條來描出它們的外形和神態(tài)。從 32 筆到 4 筆,即使大量信息都抽象略去了,但我們還是能辨識出對應(yīng)動物,尤其是最下面的貓貓,只需 4 筆曲線也能展示出貓的神韻:
再看這匹馬,抽象到最后只保留了馬頭、馬鬃和揚蹄飛奔的動作,真有點畢加索那幅公牛那味兒了。
更神奇的是,其背后的模型 CLIPasso 并沒有在速寫畫數(shù)據(jù)集上訓(xùn)練 —— 等于說,沒“學(xué)”過怎么畫抽象畫,按照文字描述就能完成簡筆速寫。
要知道,日常速寫都比較抽象,即使是人來畫,要想抓住物體的“靈魂”,也需要經(jīng)過很久的訓(xùn)練。那為什么這個 CLIPasso 甚至連速寫畫數(shù)據(jù)集訓(xùn)練都沒做,就能 get 到抽象簡筆畫的“靈魂”呢?
CLIPasso 如何畫抽象畫
其實 AI 畫抽象簡筆畫比人更難。既要準(zhǔn)確地理解語義,又要在幾何上相似,才能讓抽象畫看起來有“像”的感覺。
具體實現(xiàn)上,模型會根據(jù)圖像的特征圖先生成初始線條的位置,然后靠 CLIP 構(gòu)建兩個損失函數(shù),來控制抽象畫幾何相似、語義理解準(zhǔn)確。
其中 CLIP 就是 OpenAI 發(fā)布的一個重排序的模型,它會通過打分排名來篩選出和文字匹配度最高的圖片。這樣一來,CLIPasso 的整體結(jié)構(gòu)就比較清晰了:
例如我們要畫一匹馬,首先通過特征圖(saliency)標(biāo)記一些初始線條(S1,S2…Sn)的位置。然后通過光柵化(Rasterizer)把線條投影到成像平面:
接下來就是優(yōu)化線條參數(shù)了。把初始圖像導(dǎo)入 CLIP 模型,計算幾何損失(Lg)和語義損失(Ls)。其中語義損失通過余弦相似度來判斷兩圖的差異,而幾何損失通過中間層來控制。
這樣就能保證在準(zhǔn)確理解語義的情況下保持幾何準(zhǔn)確,再通過反向傳播不斷調(diào)整線條參數(shù),直到損失收斂。那速寫的抽象程度是怎么控制的呢?
就是靠設(shè)置線條的數(shù)量。同樣畫一匹馬,用 32 筆去畫和只用 4 筆去畫,抽象效果肯定是不一樣的:
最后,我們來看一下 CLIPasso 畫出的畫辨識度怎么樣。下圖中這個柱形圖代表的是五類動物的辨識準(zhǔn)確度。不過在猜測的時候還有第六個選項:這五種動物都不是。
從圖中可以看出,無論什么動物,在高度抽象的時候(4 筆畫),辨識度都很低,隨著筆畫越來越多,辨識度也會逐漸提高。畢竟這么抽象的畫,看不出來是啥也很正常。
但是,模型團隊在第二輪測試辨識度時刪除了第六個選項,也就是必須從這五個動物類型中選一個歸類。這時,我們從下面的柱形圖中可以看到,即使是高度抽象的 4 筆畫,辨識度也提高了不少,從 36% 提到了 76%。
這就說明了之前辨認(rèn)不出是太抽象導(dǎo)致的,AI 畢加索的畫仍然抓住了動物的核心特征。目前這個模型已經(jīng)出了 colab 版本,只需在左側(cè)文件夾中添加你想要抽象化的圖片,然后運行三個部分即可得到輸出照片。
作者簡介
CLIPasso 團隊成員主要來自洛桑聯(lián)邦理工學(xué)院、特拉維夫大學(xué)等。其中 Jessica 是蘇黎世聯(lián)邦理工學(xué)院機器人方向的碩士研究生,目前在洛桑聯(lián)邦理工學(xué)院的計算機視覺實驗室 VILAB 實習(xí)。
而 Yale Vinker 是特拉維夫大學(xué)計算機科學(xué)的博士研究生,對藝術(shù)和技術(shù)的交叉領(lǐng)域非常感興趣,也難怪 CLIPasso 有這么豐富的藝術(shù)細(xì)胞。
參考鏈接:
[1]https://clipasso.github.io/clipasso/
[2]https://colab.research.google.com/github/yael-vinker/CLIPasso/blob/main/CLIPasso.ipynb#scrollTo=L7Cp8FFHx3VG
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。