AI也能「抽象派」作畫,圓形+方塊組合,可微2D渲染下生成抽象人臉
有人將一張方塊圖、圓形圖的組合生成了抽象的人臉!還有人將帆布油畫《阿尼埃爾的浴場(chǎng)》還原為直線。
繪畫,尤其是草圖可以說(shuō)是傳達(dá)概念、對(duì)象和故事的一種方式。計(jì)算機(jī)視覺(jué)和人機(jī)交互方面的草圖研究歷史悠久,可追溯到 1960 年代。近年來(lái),由于深度學(xué)習(xí)技術(shù)的快速發(fā)展,草圖應(yīng)用越來(lái)越多,這些技術(shù)可以成功地處理草圖識(shí)別、生成、基于草圖的檢索、語(yǔ)義分割、分組、解析和抽象等任務(wù)。
關(guān)于草圖的研究也不時(shí)的被網(wǎng)友頂上熱搜,近日新聞網(wǎng)站 reddit 上就有一篇帖子熱度爆表,短短十幾個(gè)小時(shí)熱度就達(dá)到 800+,原貼內(nèi)容為:從形狀到「臉」- 使用神經(jīng)網(wǎng)絡(luò)進(jìn)行形狀抽象的可微 2D 渲染。
它的效果是這樣的:從動(dòng)圖展示效果來(lái)看,一開(kāi)始輸入為 4x4 不同形狀的圖像,最后生成了人臉輪廓(盡管生成的人臉輪廓有些抽象,但我們還是可以看出是人臉):
針對(duì)這一展示效果,網(wǎng)友紛紛表示驚艷,但可惜的是,原貼作者并沒(méi)有給出更多的技術(shù)細(xì)節(jié),但在評(píng)論區(qū)中,我們可以從原貼作者的回答中得出一些信息:
原貼作者即項(xiàng)目作者表示:「這是我用于神經(jīng)渲染的 POC。該模型只是試圖最小化輸出與真值圖像(在本例中為 celeb 數(shù)據(jù)集)之間的 L2 距離。動(dòng)圖中展示的是訓(xùn)練運(yùn)行期間驗(yàn)證過(guò)程,遵循單一形狀收斂。輸入形狀可以以任何形式開(kāi)始,但 4x4 網(wǎng)格輸入應(yīng)該是最有趣的, 這一實(shí)現(xiàn)效果可擴(kuò)展到很多應(yīng)用。我正在考慮寫一篇簡(jiǎn)短的文章,把自己的想法表達(dá)出來(lái)?!?/p>
上面的回復(fù)中,項(xiàng)目作者提到了自己并沒(méi)有寫技術(shù)文檔,不過(guò),也有網(wǎng)友分享了一篇今年 7 月的文章《 Differentiable Drawing and Sketching 》。項(xiàng)目作者表示:「這真的很酷!其實(shí)我一直在找類似的東西,但找不到,所以做了這個(gè)?!?/p>
具體而言:這篇文章是來(lái)自南安普敦大學(xué)的研究者提出了一種自底向上的可微松弛(relaxation)過(guò)程:即將點(diǎn)、線和曲線繪制到一個(gè)像素光柵(pixel raster)。這種松弛過(guò)程允許模型學(xué)習(xí)和優(yōu)化端到端的可微程序和深度網(wǎng)絡(luò),此外,松弛過(guò)程還為網(wǎng)絡(luò)提供了幾個(gè)構(gòu)建塊,以控制如何對(duì)組合繪圖過(guò)程建模。值得注意的是,該研究所提方法是自底向上的,這一特性允許繪圖操作以能夠模擬繪圖的物理現(xiàn)實(shí)而不是被束縛的方式組成,例如,現(xiàn)代計(jì)算機(jī)圖形學(xué)的方法。
論文地址:https://arxiv.org/pdf/2103.16194.pdf
GitHub 地址:https://github.com/jonhare/DifferentiableSketching
論文展示了如何通過(guò)直接優(yōu)化照片生成草圖,以及在沒(méi)有監(jiān)督的情況下如何構(gòu)建自動(dòng)編碼器將柵格化手寫數(shù)字轉(zhuǎn)換為矢量。
雖然論文與reddit項(xiàng)目作者的最終實(shí)現(xiàn)效果不同,論文是將圖像抽象為點(diǎn)或線段的草圖,項(xiàng)目則是將方塊和圓形最終生成抽象人臉,但論文采用的方法對(duì)項(xiàng)目具有借鑒意義。因此,機(jī)器之心對(duì)論文《 Differentiable Drawing and Sketching 》中的技術(shù)細(xì)節(jié)進(jìn)行了介紹。
技術(shù)解讀:可微光柵化松弛
在這部分內(nèi)容中,研究者討論了如何將連續(xù)世界空間(continuous world space) W 中定義的點(diǎn)、線和曲線繪制或光柵化到圖像空間中。
他們的目標(biāo)是提出一種形式化方法(formalisation),使得最終可以定義相對(duì)于世界空間參數(shù)(如點(diǎn)坐標(biāo)或線段起點(diǎn)和終點(diǎn)的坐標(biāo))可微的光柵化函數(shù)。
一維光柵化
研究者首先考慮了對(duì)一維點(diǎn) p ? W 進(jìn)行光柵化的問(wèn)題,其中 W = R。具體來(lái)講,點(diǎn) p 的光柵化過(guò)程可以由函數(shù) f(n; p) 來(lái)定義,該函數(shù)為圖像空間中的每個(gè)像素計(jì)算一個(gè)值(通常為 [0 , 1])。這個(gè)圖像空間的位置又由給出。
先來(lái)看看簡(jiǎn)單的最近像素(closest-pixel)光柵化函數(shù)。如果假設(shè)第 0 個(gè)像素覆蓋點(diǎn) p 的世界空間中的域 [0, 1),第一個(gè)像素覆蓋 [1, 2) ,如此類推。然后,最近鄰光柵化將真值點(diǎn) p 映射到一個(gè)圖像,如下等式(1)所示:
這一過(guò)程如下圖 2a 所示。2b 則是另一種光柵化方案,其中在兩個(gè)最近的像素上進(jìn)行插值。
假設(shè)當(dāng)被光柵化的點(diǎn)位于中點(diǎn)(midpoint)時(shí),像素具有最大值,則如下等式(2)所示:
實(shí)際上,這些可以擴(kuò)展至 2D 的函數(shù)在很多計(jì)算機(jī)圖形系統(tǒng)中得到隱式地使用,但很少以我們編寫它們的形式出現(xiàn)。
接下來(lái)是可微松弛。理想情況下,研究者希望能夠定義一個(gè)相對(duì)于點(diǎn) p 可微的光柵化函數(shù),這允許 p 優(yōu)化。等式(1)給出的光柵化函數(shù)對(duì)于 p 是分段可微的,但梯度幾乎在所有地方都為零,這是沒(méi)有用的。等式 (2) 在最鄰近 p 的兩個(gè)像素中具有一定的梯度,但總體而言它的梯度也幾乎處處為零。
因此,研究者想定義一個(gè)光柵化函數(shù),它對(duì)所有(或至少大部分)可能的 n 值都具有梯度。這個(gè)函數(shù)幾乎在任何地方都應(yīng)該是連續(xù)的和可微的??逛忼X光柵化方法對(duì)如何實(shí)現(xiàn)這一點(diǎn)給出了一些提示:該函數(shù)可以根據(jù) n 和 p 之間的距離為每個(gè) n 計(jì)算一個(gè)值。
N 維中的松弛光柵化
以往定義的所有一維光柵化函數(shù)都可以簡(jiǎn)單地?cái)U(kuò)展為「在二維或更多維度上對(duì)一個(gè)點(diǎn)進(jìn)行光柵化」。
線段可以通過(guò)其起始坐標(biāo) s = [s_x, s_y] 和結(jié)束坐標(biāo) e = [e_x, e_y] 來(lái)定義。為了開(kāi)發(fā)一組通用、潛在可微的光柵化函數(shù),研究者需要考慮光柵的形式化,就像在一維情況下所做的那樣:找到一個(gè)函數(shù),該函數(shù)在給定線段 f (n; s, e) 的情況下,能夠在圖像中所有像素位置集合 n 上定義一個(gè)標(biāo)量場(chǎng)。
光柵化線段需要考慮像素與線段的接近程度。研究者高效地計(jì)算了任意像素 n 到線段上最近點(diǎn)的平方歐幾里德距離,如下所示:
在最近鄰光柵化的情況下,有人會(huì)問(wèn)「這條線段是否穿過(guò)談?wù)撝械南袼亍?。只有在以下這種情況下才填充:
為了以相對(duì)于參數(shù)可微的方式光柵化曲線(與參數(shù)化無(wú)關(guān)),研究者遵循了與線段相同的通用方法:計(jì)算每個(gè)坐標(biāo)與曲線之間的最小平方歐幾里德距離 :
與線段的情況一樣,接下來(lái)這一距離變換(distance transform)能夠與「根據(jù)距離運(yùn)行的光柵化函數(shù)」相結(jié)合:
擴(kuò)展至多條線段
為了光柵化多條線段,研究者考慮論了將不同線段的光柵化組合成單個(gè)圖像。具體而言,他們將光柵化不同線段 {s_1, e_1}, {s_2, e_2}, . . . , {s_i, e_i} 生成的圖像表示為在相同圖像空間上定義的矩陣 I ^(1) , I^ (2) , . . . , I^ (n)。
在最簡(jiǎn)單的二進(jìn)制光柵化情況下,研究者認(rèn)為相應(yīng)像素的邏輯或(logical-or)可能會(huì)產(chǎn)生所需的效果,即將單個(gè)光柵化中著色的任何像素作為最終輸出中的著色,如下等式(9)所示:
研究者還將這種 composition 松弛為可微的,并允許像素值為非二進(jìn)制(但限于 [0, 1]),如下等式(10)所示:
最終,研究者得到了點(diǎn)或線段構(gòu)圖所需要的全部組件。
圖像優(yōu)化示例
為了證明針對(duì)真實(shí)圖像優(yōu)化原語(yǔ)(primitives)方法的有效性,該研究提供了許多示例。例如圖 4 和圖 5 利用圖 3a 中大小為 200 × 266 輸入圖像作為目標(biāo)圖像進(jìn)行優(yōu)化。
圖 4 顯示了使用模糊 MSE 損失優(yōu)化 1000 個(gè)點(diǎn)和 1000 條線的結(jié)果,并展示了可以實(shí)現(xiàn)的整體效果。圖 5 顯示了使用一系列不同損失從同一起點(diǎn)優(yōu)化 500 條線段的效果。
此外,該研究還將自動(dòng)生成的草圖與人類繪制的圖像進(jìn)行了比較。圖 3b 是用筆(pen and ink)繪制的草圖,用于生成圖 4 和 5。很明顯,草圖廣泛地捕捉了場(chǎng)景的整體結(jié)構(gòu)和明暗區(qū)域。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。