AI靠語意理解把照片變抽像畫:無需相應數據集只畫4筆也保留神韻
只用幾筆,如何勾勒一隻動物的簡筆劃,很多人從小都沒整明白的問題—— 如今AI 也能實現了。下面圖中,左邊是三張不同的動物照片,右邊是AI 僅用線條來描出它們的外形和神態。從32筆到4筆,即使大量信息都抽象略去了,但我們還是能辨識出對應動物,尤其是最下面的貓貓,只需4筆曲線也能展示出貓的神韻:
再看這匹馬,抽像到最後只保留了馬頭、馬鬃和揚蹄飛奔的動作,真有點畢加索那幅公牛那味兒了。
更神奇的是,其背後的模型CLIPasso 並沒有在速寫畫數據集上訓練—— 等於說,沒“學”過怎麼畫抽像畫,按照文字描述就能完成簡筆速寫。
要知道,日常速寫都比較抽象,即使是人來畫,要想抓住物體的“靈魂”,也需要經過很久的訓練。那為什麼這個CLIPasso 甚至連速寫畫數據集訓練都沒做,就能get 到抽像簡筆劃的“靈魂”呢?
CLIPasso 如何畫抽像畫
其實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 有這麼豐富的藝術細胞。
來源:量子位