一張照片就能生成3D模型,GAN和自動編碼器碰撞出奇跡
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
2D圖片“腦補”3D模型,這次真的只用一張圖就行了——
只需要給AI隨便喂一張照片,它就能從不一樣的角度給你生成“新視圖”:
不僅能搞定360°的椅子和汽車,連人臉也玩出了新花樣,從“死亡自拍”角度到仰視圖都能生成:
更有意思的是,這只名叫Pix2NeRF的AI,連訓(xùn)練用的數(shù)據(jù)集都有點“與眾不同”,可以在沒有3D數(shù)據(jù)、多視角或相機參數(shù)的情況下學(xué)會生成新視角。
可以說是又把NeRF系列的AI們卷上了一個新高度。
用GAN+自動編碼器學(xué)會“腦補”
在此之前,NeRF能通過多視圖訓(xùn)練AI模型,來讓它學(xué)會生成新視角下的3D物體照片。
然而,這也導(dǎo)致一系列采用NeRF方法的模型,包括PixelNeRF和GRF,都需要利用多視圖數(shù)據(jù)集才能訓(xùn)練出比較好的2D生成3D模型效果。
而多視圖數(shù)據(jù)集往往有限,訓(xùn)練時間也比較長。
因此,作者們想出了一個新方法,也就是用自動編碼器來提取物體姿態(tài)和形狀特征,再用GAN直接生成全新的視角圖片。
Pix2NeRF包含三種類型的網(wǎng)絡(luò)架構(gòu),即生成網(wǎng)絡(luò)G,判別網(wǎng)絡(luò)D和編碼器E。
其中,生成網(wǎng)絡(luò)G和判別網(wǎng)絡(luò)D組成生成對抗網(wǎng)絡(luò)GAN,而編碼器E和生成網(wǎng)絡(luò)G用于構(gòu)成自動編碼器:
首先,自動編碼器可以通過無監(jiān)督學(xué)習(xí),來獲取輸入圖像的隱藏特征,包括物體姿態(tài)和物體形狀,并利用學(xué)習(xí)到的特征重建出原始的數(shù)據(jù);
然后,再利用GAN來通過姿態(tài)和形狀數(shù)據(jù),重構(gòu)出與原來的物體形狀不同的新視圖。
這里研究人員采用了一種叫做π-GAN的結(jié)構(gòu),生成3D視角照片的效果相比其他類型的GAN更好(作者們還對比了采用HoloGAN的一篇論文):
那么,這樣“混搭”出來的AI模型,效果究竟如何?
用糊圖也能生成新視角
作者們先是進行了一系列的消融實驗,以驗證不同的訓(xùn)練方法和模型架構(gòu),是否真能提升Pix2NeRF的效果。
例如,針對模型去掉GAN逆映射、自動編碼器,或不采用warmup針對學(xué)習(xí)率進行預(yù)熱等,再嘗試生成新視角的人臉:
其中,GAN逆映射(inversion)的目的是將給定的圖像反轉(zhuǎn)回預(yù)先訓(xùn)練的GAN模型的潛在空間中,以便生成器從反轉(zhuǎn)代碼中重建圖像。
實驗顯示,除了完整模型(full model)以外,去掉各種方法的模型,生成人臉的效果都不夠好。
隨后,作者們又將生成照片的效果與其他生成新視圖的AI模型進行了對比。
結(jié)果表明,雖然Pix2NeRF在ShapeNet-SRN的生成效果上沒有PixelNeRF好,但效果也比較接近:
而在CelebA和CARLA數(shù)據(jù)集上,Pix2NeRF基本都取得了最好的效果。
而且模型還自帶一些“美顏”功能,即使是糊圖送進去,也能給GAN出更絲滑的輪廓:
整體而言,除了人臉能生成不同角度的新視圖以外,物體還能腦補出360°下不同姿態(tài)的效果:
看來,AI也和人類一樣,學(xué)會“腦補”沒見過的物體形狀了。
作者介紹
這次論文的作者均來自蘇黎世聯(lián)邦理工學(xué)院(ETH)。
論文一作Shengqu Cai,ETH碩士研究生,本科畢業(yè)于倫敦國王學(xué)院,研究方向是神經(jīng)渲染、生成模型和無監(jiān)督學(xué)習(xí)等,高中畢業(yè)于遼寧省實驗中學(xué)。
Anton Obukhov,ETH博士生,此前曾在英偉達等公司工作,研究方向是計算機視覺和機器學(xué)習(xí)。
Dengxin Dai,馬普所高級研究員和ETH(外部)講師,研究方向是自動駕駛、傳感器融合和有限監(jiān)督下的目標(biāo)檢測。
Luc Van Gool,ETH計算機視覺教授,谷歌學(xué)術(shù)上的引用量達到15w+,研究方向主要是2D和3D物體識別、機器人視覺和光流等。
目前這項研究的代碼還在準(zhǔn)備中。
感興趣的小伙伴可以蹲一波了~
論文地址:
https://arxiv.org/abs/2202.13162
項目地址:
https://github.com/sxyu/pixel-nerf