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