博客專欄

EEPW首頁 > 博客 > AI也能「抽象派」作畫,圓形+方塊組合,可微2D渲染下生成抽象人臉

AI也能「抽象派」作畫,圓形+方塊組合,可微2D渲染下生成抽象人臉

發(fā)布人:機(jī)器之心 時間:2021-12-02 來源:工程師 發(fā)布文章

有人將一張方塊圖、圓形圖的組合生成了抽象的人臉!還有人將帆布油畫《阿尼埃爾的浴場》還原為直線。

繪畫,尤其是草圖可以說是傳達(dá)概念、對象和故事的一種方式。計算機(jī)視覺和人機(jī)交互方面的草圖研究歷史悠久,可追溯到 1960 年代。近年來,由于深度學(xué)習(xí)技術(shù)的快速發(fā)展,草圖應(yīng)用越來越多,這些技術(shù)可以成功地處理草圖識別、生成、基于草圖的檢索、語義分割、分組、解析和抽象等任務(wù)。

關(guān)于草圖的研究也不時的被網(wǎng)友頂上熱搜,近日新聞網(wǎng)站 reddit 上就有一篇帖子熱度爆表,短短十幾個小時熱度就達(dá)到 800+,原貼內(nèi)容為:從形狀到「臉」- 使用神經(jīng)網(wǎng)絡(luò)進(jìn)行形狀抽象的可微 2D 渲染。

1.png

它的效果是這樣的:從動圖展示效果來看,一開始輸入為 4x4 不同形狀的圖像,最后生成了人臉輪廓(盡管生成的人臉輪廓有些抽象,但我們還是可以看出是人臉):

2.gif

針對這一展示效果,網(wǎng)友紛紛表示驚艷,但可惜的是,原貼作者并沒有給出更多的技術(shù)細(xì)節(jié),但在評論區(qū)中,我們可以從原貼作者的回答中得出一些信息:

原貼作者即項目作者表示:「這是我用于神經(jīng)渲染的 POC。該模型只是試圖最小化輸出與真值圖像(在本例中為 celeb 數(shù)據(jù)集)之間的 L2 距離。動圖中展示的是訓(xùn)練運(yùn)行期間驗證過程,遵循單一形狀收斂。輸入形狀可以以任何形式開始,但 4x4 網(wǎng)格輸入應(yīng)該是最有趣的, 這一實現(xiàn)效果可擴(kuò)展到很多應(yīng)用。我正在考慮寫一篇簡短的文章,把自己的想法表達(dá)出來?!?/p>

3.png

上面的回復(fù)中,項目作者提到了自己并沒有寫技術(shù)文檔,不過,也有網(wǎng)友分享了一篇今年 7 月的文章《 Differentiable Drawing and Sketching 》。項目作者表示:「這真的很酷!其實我一直在找類似的東西,但找不到,所以做了這個?!?/p>

4.png

具體而言:這篇文章是來自南安普敦大學(xué)的研究者提出了一種自底向上的可微松弛(relaxation)過程:即將點(diǎn)、線和曲線繪制到一個像素光柵(pixel raster)。這種松弛過程允許模型學(xué)習(xí)和優(yōu)化端到端的可微程序和深度網(wǎng)絡(luò),此外,松弛過程還為網(wǎng)絡(luò)提供了幾個構(gòu)建塊,以控制如何對組合繪圖過程建模。值得注意的是,該研究所提方法是自底向上的,這一特性允許繪圖操作以能夠模擬繪圖的物理現(xiàn)實而不是被束縛的方式組成,例如,現(xiàn)代計算機(jī)圖形學(xué)的方法。

5.png

論文地址:https://arxiv.org/pdf/2103.16194.pdf

GitHub 地址:https://github.com/jonhare/DifferentiableSketching

論文展示了如何通過直接優(yōu)化照片生成草圖,以及在沒有監(jiān)督的情況下如何構(gòu)建自動編碼器將柵格化手寫數(shù)字轉(zhuǎn)換為矢量。

6.png

雖然論文與reddit項目作者的最終實現(xiàn)效果不同,論文是將圖像抽象為點(diǎn)或線段的草圖,項目則是將方塊和圓形最終生成抽象人臉,但論文采用的方法對項目具有借鑒意義。因此,機(jī)器之心對論文《 Differentiable Drawing and Sketching 》中的技術(shù)細(xì)節(jié)進(jìn)行了介紹。

技術(shù)解讀:可微光柵化松弛

在這部分內(nèi)容中,研究者討論了如何將連續(xù)世界空間(continuous world space) W 中定義的點(diǎn)、線和曲線繪制或光柵化到圖像空間1638436435560653.png中。 

他們的目標(biāo)是提出一種形式化方法(formalisation),使得最終可以定義相對于世界空間參數(shù)(如點(diǎn)坐標(biāo)或線段起點(diǎn)和終點(diǎn)的坐標(biāo))可微的光柵化函數(shù)。

一維光柵化

研究者首先考慮了對一維點(diǎn) p ? W 進(jìn)行光柵化的問題,其中 W = R。具體來講,點(diǎn) p 的光柵化過程可以由函數(shù) f(n; p) 來定義,該函數(shù)為圖像空間1638436463665854.png中的每個像素計算一個值(通常為 [0 , 1])。這個圖像空間的位置又由1638436479838732.png給出。

先來看看簡單的最近像素(closest-pixel)光柵化函數(shù)。如果假設(shè)第 0 個像素覆蓋點(diǎn) p 的世界空間中的域 [0, 1),第一個像素覆蓋 [1, 2) ,如此類推。然后,最近鄰光柵化將真值點(diǎn) p 映射到一個圖像,如下等式(1)所示:

10.png

這一過程如下圖 2a 所示。2b 則是另一種光柵化方案,其中在兩個最近的像素上進(jìn)行插值。

11.png

假設(shè)當(dāng)被光柵化的點(diǎn)位于中點(diǎn)(midpoint)時,像素具有最大值,則如下等式(2)所示:

12.png

實際上,這些可以擴(kuò)展至 2D 的函數(shù)在很多計算機(jī)圖形系統(tǒng)中得到隱式地使用,但很少以我們編寫它們的形式出現(xiàn)。

接下來是可微松弛。理想情況下,研究者希望能夠定義一個相對于點(diǎn) p 可微的光柵化函數(shù),這允許 p 優(yōu)化。等式(1)給出的光柵化函數(shù)對于 p 是分段可微的,但梯度幾乎在所有地方都為零,這是沒有用的。等式 (2) 在最鄰近 p 的兩個像素中具有一定的梯度,但總體而言它的梯度也幾乎處處為零。

因此,研究者想定義一個光柵化函數(shù),它對所有(或至少大部分)可能的 n 值都具有梯度。這個函數(shù)幾乎在任何地方都應(yīng)該是連續(xù)的和可微的??逛忼X光柵化方法對如何實現(xiàn)這一點(diǎn)給出了一些提示:該函數(shù)可以根據(jù) n 和 p 之間的距離為每個 n 計算一個值。

N 維中的松弛光柵化

以往定義的所有一維光柵化函數(shù)都可以簡單地擴(kuò)展為「在二維或更多維度上對一個點(diǎn)進(jìn)行光柵化」。

線段可以通過其起始坐標(biāo) s = [s_x, s_y] 和結(jié)束坐標(biāo) e = [e_x, e_y] 來定義。為了開發(fā)一組通用、潛在可微的光柵化函數(shù),研究者需要考慮光柵的形式化,就像在一維情況下所做的那樣:找到一個函數(shù),該函數(shù)在給定線段 f (n; s, e) 的情況下,能夠在圖像中所有像素位置集合 n 上定義一個標(biāo)量場。

光柵化線段需要考慮像素與線段的接近程度。研究者高效地計算了任意像素 n 到線段上最近點(diǎn)的平方歐幾里德距離,如下所示:

13.jpg

在最近鄰光柵化的情況下,有人會問「這條線段是否穿過談?wù)撝械南袼亍?。只有在以下這種情況下才填充:

14.jpg

為了以相對于參數(shù)可微的方式光柵化曲線(與參數(shù)化無關(guān)),研究者遵循了與線段相同的通用方法:計算每個坐標(biāo)1638436580762459.png與曲線之間的最小平方歐幾里德距離 :

與線段的情況一樣,接下來這一距離變換(distance transform)能夠與「根據(jù)距離運(yùn)行的光柵化函數(shù)」相結(jié)合:

16.jpg

擴(kuò)展至多條線段

為了光柵化多條線段,研究者考慮論了將不同線段的光柵化組合成單個圖像。具體而言,他們將光柵化不同線段 {s_1, e_1}, {s_2, e_2}, . . . , {s_i, e_i} 生成的圖像表示為在相同圖像空間1638436612640168.png上定義的矩陣 I ^(1) , I^ (2) , . . . , I^ (n)。

在最簡單的二進(jìn)制光柵化情況下,研究者認(rèn)為相應(yīng)像素的邏輯或(logical-or)可能會產(chǎn)生所需的效果,即將單個光柵化中著色的任何像素作為最終輸出中的著色,如下等式(9)所示:

18.png

研究者還將這種 composition 松弛為可微的,并允許像素值為非二進(jìn)制(但限于 [0, 1]),如下等式(10)所示:

19.png

最終,研究者得到了點(diǎn)或線段構(gòu)圖所需要的全部組件。 

 圖像優(yōu)化示例

為了證明針對真實圖像優(yōu)化原語(primitives)方法的有效性,該研究提供了許多示例。例如圖 4 和圖 5 利用圖 3a 中大小為 200 × 266 輸入圖像作為目標(biāo)圖像進(jìn)行優(yōu)化。

圖 4 顯示了使用模糊 MSE 損失優(yōu)化 1000 個點(diǎn)和 1000 條線的結(jié)果,并展示了可以實現(xiàn)的整體效果。圖 5 顯示了使用一系列不同損失從同一起點(diǎn)優(yōu)化 500 條線段的效果。

此外,該研究還將自動生成的草圖與人類繪制的圖像進(jìn)行了比較。圖 3b 是用筆(pen and ink)繪制的草圖,用于生成圖 4 和 5。很明顯,草圖廣泛地捕捉了場景的整體結(jié)構(gòu)和明暗區(qū)域。

20.jpg

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉