用神經(jīng)網(wǎng)絡(luò)嘗試在《堡壘之夜》中重現(xiàn)《絕地求生》的畫面風(fēng)格。
本文旨在了解如何將CycleGAN用于風(fēng)格遷移并探索其在游戲圖形模型中的應(yīng)用。
如果你是一名游戲玩家,肯定聽說過如今最火的兩款「吃雞」游戲:《堡壘之夜》(Fortnite)和《絕地求生》。這兩個游戲很相似,都是 100 名玩家降落在一個小島上,然后淘汰至最后一人「吃雞」。作者之前比較喜歡《堡壘之夜》的游戲風(fēng)格,但現(xiàn)在更喜歡《絕地求生》的寫實畫面。于是他不禁開始思考,是否有可能創(chuàng)建一個圖形模式,讓我們選擇喜歡的畫面風(fēng)格而不必依賴于開發(fā)者給我們提供的畫面選擇?如果有個圖形模式能夠?qū)ⅰ督^地求生》的畫風(fēng)渲染至《堡壘之夜》呢?于是作者決定用深度學(xué)習(xí)來探索這一模式,然后發(fā)現(xiàn)了一種叫 CycleGAN 的神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)非常擅長圖像風(fēng)格遷移。在本文中,作者將介紹 CycleGAN 的工作原理,然后訓(xùn)練它們將《堡壘之夜》可視化地轉(zhuǎn)為《絕地求生》。
卡通風(fēng)格的《堡壘之夜》(左)和寫實風(fēng)格的《絕地求生》(右)
CycleGAN 是什么?
CycleGAN 是一種用于跨域圖像風(fēng)格遷移的生成對抗網(wǎng)絡(luò),它能將圖像從一個域遷移到另一個域,例如從《堡壘之夜》到《絕地求生》的遷移。任務(wù)是以無監(jiān)督方式執(zhí)行的,即兩個域的圖像沒有一一映射的關(guān)系。
Github 實現(xiàn)及其結(jié)果:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
該網(wǎng)絡(luò)能夠理解原始域圖像中的對象,并對目標域圖像中相同對象的外觀做相應(yīng)的變換。該網(wǎng)絡(luò)的算法實現(xiàn)經(jīng)訓(xùn)練后,可以將馬轉(zhuǎn)化為斑馬,將蘋果轉(zhuǎn)化為橙子,將照片轉(zhuǎn)化為漂亮的油畫等等。
如何實現(xiàn)?
我們簡單分析一下如何使用 CycleGAN 將《堡壘之夜》和《絕地求生》分別作為輸入域和目標域進行風(fēng)格遷移。
首先,我們通過截屏的方式分別獲得兩個游戲的大量圖像作為數(shù)據(jù)集。
其次,我們訓(xùn)練一對 GAN,一個用來學(xué)習(xí)《堡壘之夜》的畫風(fēng),另一個學(xué)習(xí)《絕地求生》的畫風(fēng)。這兩個網(wǎng)絡(luò)通過循環(huán)的方式同時訓(xùn)練,從而在兩個游戲中學(xué)到相同對象之間的關(guān)系,以進行恰當?shù)漠嬶L(fēng)變換。
下圖是 CycleGAN 的基本架構(gòu):
從「Real Fortnite」到「Fake PUBG」,再到「Reconstructed Fortnite」的循環(huán)。
我們從《堡壘之夜》的原始圖像開始整個訓(xùn)練過程。訓(xùn)練包括兩個深度網(wǎng)絡(luò),一個是生成器,一個是鑒別器。鑒別器將隨著時間推移而學(xué)習(xí)到區(qū)分「Real Fortnite」和「Fake Fortnite」。生成器將使用從訓(xùn)練數(shù)據(jù)集中隨機取出的《絕地求生》截圖進行訓(xùn)練,從而學(xué)習(xí)如何將原始域圖像遷移到目標域圖像。
為了確保這種遷移是有意義的,我們同時訓(xùn)練了另一組生成器和鑒別器(即生成器 P2F 和鑒別器 P),它們的作用是從偽域重建原始域的圖像。另外,我們通過最小化訓(xùn)練過程中的循環(huán)損失(Cycle loss),使重建后的圖像與原始圖像相似。這個過程類似自動編碼,只是我們不在中間步驟的潛在空間中尋找編碼,而是在目標域中尋找整個圖像。
F2P 框架
這里使用的生成器網(wǎng)絡(luò)(F2P)由三個主要的卷積模塊組成:第一個模塊在較低維度的潛在空間中找到《堡壘之夜》截屏的編碼;然后,第二個模塊將該編碼轉(zhuǎn)換成在相同潛在空間中表示《絕地求生》的編碼;在第三個模塊中,解碼器根據(jù)轉(zhuǎn)換的編碼構(gòu)建出輸出圖像,于是便得到了《絕地求生》版的《堡壘之夜》圖像。
在訓(xùn)練過程中,由于 GPU 內(nèi)存限制,所以只能處理大小為 256x256 的圖像,這很影響最終結(jié)果。如果你有超過 8GB 的視頻內(nèi)存,可以嘗試生成大小為 512x512 的圖像。
結(jié)果
經(jīng)過 12 小時的訓(xùn)練之后,CycleGAN 生成的圖像看起來很有前景。該網(wǎng)絡(luò)能夠成功地將《堡壘之夜》中天空、樹和草地的顏色轉(zhuǎn)換成《絕地求生》中的畫風(fēng)?!侗局埂分羞^度渲染的顏色被轉(zhuǎn)換成了《絕地求生》中那種更真實的顏色。
天空看起來沒那么藍了,卡通風(fēng)格的草地和樹看起來也更接近《絕地求生》了。它甚至學(xué)會了把底部的 health meter 替換成了《絕地求生》中的槍支和彈藥指標了!amazing!兩個域中無法聯(lián)系起來的是玩家的外表,這也是為什么它周圍的像素有點模糊。總體來看,網(wǎng)絡(luò)在兩個域中識別目標并轉(zhuǎn)換它們的外觀方面做得還不錯。
在游戲中應(yīng)用圖形模式
雖然結(jié)果看起來很好,但要真正實現(xiàn)《絕地求生》畫面風(fēng)格的《堡壘之夜》,還有很長的路要走。一旦我們能夠用這些網(wǎng)絡(luò)實時生成更高分辨率的圖像,那將來為游戲構(gòu)建圖形模式引擎而不必依賴開發(fā)者不是沒有可能的。
我們可以把自己喜歡的游戲畫風(fēng)應(yīng)用到任何其它游戲上!
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4749瀏覽量
100434 -
圖像
+關(guān)注
關(guān)注
2文章
1080瀏覽量
40381 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120904
原文標題:我有個大膽的想法,用風(fēng)格遷移玩《絕地》版的《堡壘之夜》
文章出處:【微信號:aicapital,微信公眾號:全球人工智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論