你要「老婆」不要?谷歌程序員20行代碼把二次元老婆帶到現實世界
用 GAN 生成的 2D 二次元「老婆」已經過時了。
還記得前不久的「東升發型生成器」嗎?在那個視頻中,B 站 up 主 Mars 隆重推出了自制的禿頭生成器。不管你現在有多年輕,頭發有多么濃密,那個生成器都能讓你一眼望穿二十年后的自己。
這一充滿「惡意」的項目引發了讀者的集體不適,大家紛紛請求 up 主「整點兒陽間的東西」(聽說粉絲毫不見漲,這鍋機器之心不背)。

本著對讀者的尊重和愛護,up 主這次換了個方向,開始研究起了「一鍵『老婆』生成器」。
先來看一下效果:


當然,除了「老婆」,其他手辦也是可以的:

效果看上去不錯,還省了買手辦的錢,這是怎么做到的呢?
Mars 在視頻中提到,因為生成二次元「老婆」這個主題有很多人都做過了,而且效果不錯,所以他就想到一個主題類似但表達方式不同的點子——用 AR 來做。

在 Waifu Labs 網站上生成的 2D「老婆」。
他介紹說,現在市面上大部分的 AR(比如寶可夢 Go)都是通過指定 App 中的相機才可以看到增強現實的內容,但他想做的卻是一個網頁版 AR,也就是說,你只需要打開一個網頁,從網頁中再打開相機就能看到增強現實的內容。
那么具體要怎么實現呢?
他的思路可以概括為:先做一個網站,你可以在上面上傳一個 3D 模型,網站就會自動生成一個二維碼。然后你用手機(相機)去掃這個二維碼,你剛剛上傳的模型就會出現在現實世界里了。

思路有了,接下來就是尋找解決方案了。
備選的解決方案有這么幾個:谷歌的 WebXR、AR.js 和 Argon.js。其中,WebXR 可能是所有解決方案中效果最好的,也是文檔最為完善的,但問題在于它只支持極少部分安卓設備;后兩個方案各方面表現都差不多,區別在于前者是完全開源的,因此 Mars 毫不猶豫地選擇了前者。
選定了解決方案之后,先來嘗試一個官方的例子。在寫了一個靜態文件服務器、創建 index.html、將例子中的代碼復制進去運行服務器等一系列操作之后,預想中的增強現實畫面并沒有出現,只有一個報錯頁面彈了出來:

報錯的原因在于,從 ios11 開始,只有通過 https 訪問的網站才有打開相機的權限,Mars 通過安裝一個名為 ngrok 的程序解決了這個問題。
問題解決了,再來試一下,果然,這次真的出現了增強現實的畫面。
測試成功,接下來就是使用自己的模型了。
AR.js 提供了一個接口,可以將自己的模型對應到二維碼或者圖案上。但這里有一個問題:精美的 3D 模型要從哪里找呢?在視頻中,Mars 推薦的是一個叫 Sketchfab 的網站。Sketchfab 和普通的圖片網站類似,但不同之處在于,上面的模型都是 3D 的,而且大多渲染精良,既有付費模型,也有免費模型。
Sketchfab 網站首頁。
下載到模型之后,將鏈接復制到之前創建的 index.html 文件里,就大功告成了!

為了方便大家自己動手,此次 Mars 還開源了整個項目的代碼并在第二個視頻(代碼詳解)中對代碼和各個步驟進行了詳細講解,感興趣的同學可以自己動手試一下。
代碼地址:https://github.com/MarsWang42/AR-Laopo
最后再介紹一下寶藏 up 主 Mars。他本科畢業于同濟大學土木工程系,2015 年進入 UC Irvine 開始學習計算機知識,后來成為一名程序員,并進入谷歌工作。在以往的視頻中,他也分享過自己轉專業和求職的諸多經驗。
在視頻的最后,Mars 表示,他將盡快將這個項目做成網頁版跟大家分享。