基於人工智慧技術快速建構三維模型

PHPz
發布: 2023-04-08 23:11:02
轉載
1516 人瀏覽過

譯者| 朱先忠

審校| 孫淑娟

基於人工智慧技術快速建構三維模型

#圖1:封面

產生立體模型可能很耗時,或需要大量參考圖像。解決這個問題的一種方法是藉助神經輻射場(neural radiance field,簡稱「NeRF」),這是一種生成影像的人工智慧方法。 NERF的主要想法是:先取得一組您拍攝的物件或場景的2D影像,然後使用這些2D影像來有效地建構3D表示。這是透過學習在已有影像之間的轉換來實現的。現在,這種跳躍(也稱為「插值」)技術能夠幫助您創建物體新視角下的圖像!

聽起來不錯,對嗎?借助於一組圖像,你就可以製作一個3D模型!這比標準攝影測量效果要好,因為標準攝影測量需要一個巨大的圖像庫來產生一些圖片(你需要每個角度的鏡頭)。然而,NVIDIA公司一開始確實承諾說NeRFs速度很快;但是,直到最近情況還不是這樣。以前,NeRFs往往會花很長時間來學習如何將一組影像集轉換為3D模型。

但如今,情況不再如此。最近,NVIDIA公司開發出了一種即時NeRF軟體,該軟體能夠利用GPU硬體運行必要的複雜運算。這種方法將創建模型所需的時間從幾天減少到幾秒鐘! NVIDIA對instant-ngp軟體的可用性和速度提出了許多令人興奮的主張。而且,他們提供的結果和範例也給人留下深刻的印象:

基於人工智慧技術快速建構三維模型

#圖2:NeRF影像展示-NVIDIA擁有一個酷炫的機器人實驗室

我覺得很難不被這個演示打動——它看起來太棒了!於是,我想看看把它轉移到我自己的圖像上並生成我自己的NeRF模型有多麼容易。所以,我決定自己安裝並使用這款軟體。在本文中,我將介紹我的試驗體驗,並詳細介紹我製作的模型!

主要任務劃分

那我們該怎麼辦?大致階段性任務分割如下:

  • 首先,我們需要引用一些連續鏡頭。讓我們去錄製一些我們想要3D化的影片!
  • 然後,我們開始場景拍攝,並將拍攝的影片轉換成多張靜止影像。
  • 我們將上面取得的連續影像資料傳遞到instant-ngp。然後,訓練人工智慧來理解我們生成的圖像之間的空間。這實際上與製作三維模型相同。
  • 最後,我們想創建一個展示我們的創作成果的影片!在NVIDIA開發的軟體中,我們將繪製一條路徑,讓攝影機帶我們參觀我們製作的模型,然後渲染影片。

我不會深入討論這一切是如何運作的,但我會提供我發現有用的很多資源的連結。所以,接下來,我將專注於我製作的視頻,以及我在旅途中偶然發現的一些小知識。

開始我的試驗

NVIDIA公司的即時NeRF軟體並不容易安裝。雖然軟體的說明很清楚,但我覺得當涉及到個人需要的特定軟體版本時,說明中要求的部分所提供的迴旋餘地並不大。對我來說,使用CUDA 11.7或VS2022似乎是不可能的,但我認為正是切換回CUDA 11.6版本和VS2019最終促進了安裝成功。其中,我遇到很多錯誤,例如“CUDA_ARCHITECTURES is empty for target”,等等。這是因為CUDA與Visual Studio配合並不友善所導致。因此,我真誠地推薦有興趣的讀者參考影片以及Github上的倉庫資源,以便進一步幫助你順利地做好一切設置工作!

除此之外,這過程算是進展順利。官方還提供了Python腳本,用於幫助指導將拍攝的影片轉換為影像,以及隨後將其轉換為模型和影片的步驟。

試驗1:樂高小汽車

起初,我試著在辦公室裡把一輛小樂高汽車NeRF化。我覺得我的攝影技巧遠遠不夠,因為我根本無法創造出任何有意義的影像。只是一個奇怪的3D污點而已。算了,還是讓我們來看看NVIDIA提供給我們的一個例子吧。請注意圖中攝影機的位置:

基於人工智慧技術快速建構三維模型

圖3:NVIDIA提供的挖土機預設NeRF模型的“相機”位置

一個能夠很好地進行訓練的準備設定之一就是在場景中放置如上圖所述的“攝影機” 。這些攝影機是軟體認為你在拍攝影片時所面對的角度。它應該是一個漂亮的圓圈。當然,我的第一輛樂高車根本不是這個樣子的,而是一個被壓扁的半圓。

試驗2:稍大點的樂高小汽車

為了從第一次試驗中學習,我找到了一張可以完全走動的桌子,並找到了一輛更大的樂高車。我試著確保我抓拍的時間也比以前長。最後,我從各個角度拍攝了1分鐘流暢的影片。我訓練模型的時間總共不到30秒。在720p下渲染4小時後,下圖是我製作的影片:

基於人工智慧技術快速建構三維模型

圖4:我的第二個NeRF模型-一部樂高技術車!

試驗3:植物

結果證明上面的試驗2更好一些了,至少在技術上可行。然而,還是存在著一團奇怪的霧,當然這還不算是超級麻煩。在我的下一次試驗中,我也試著從更遠的背面拍攝(我假設霧是由人工智慧對那裡的東西感到「困惑」引起的)。我試圖更多地控制aabc_scale參數(該參數用於衡量場景有多大),然後對其進行幾分鐘的訓練。渲染最後,得到如下圖的影片結果:

基於人工智慧技術快速建構三維模型

圖5:我用客廳桌上的一棵植物做成的一個NeRF模型

#好多了!令人印象深刻的是,它是如何將鉤針植物盆、木頭上的凹槽以及樹葉的複雜性表現得如此精確的。看看攝影機在樹葉上做的俯衝動作吧!

試驗4:

現在,我們的試驗效果越來越好了!然而,我想要一個室外的視頻。我在公寓外拍攝了不到2分鐘的視頻,並開始處理。這對於渲染/訓練來說尤其笨重。我在這裡的猜測是,我的aabc_scale值相當高(8),因此渲染“光線”必須走得很遠(即,我想要渲染的東西數量更多)。於是,我必須切換到480p,並將渲染FPS從30降到10。事實表明,設定參數的選擇確實會影響渲染時間。經過8小時的渲染,我完成了以下操作:

基於人工智慧技術快速建構三維模型

圖6:一個我在公寓外面使用的NeRF模型

#不過,我認為第三次試驗仍然是我最喜歡的。我想我可以把第四次試驗做得更好一點。但是,當渲染時間變得很長時,很難遍歷各個版本並試驗不同的渲染和訓練設定。現在甚至設定渲染的攝影機角度都很困難了,這導致我的程式變得極其緩慢。

不過,這真正是一個相當驚人的輸出,因為僅僅使用了一兩分鐘的視訊資料。最後,我終於有了詳細的逼真的立體模型!

利弊分析

我認為最令人印象深刻的是,在1-2分鐘的拍攝時間內,完全沒有受過攝影測量訓練的人(我)可以創造一個可行的3D模型。過程的確需要一些技術訣竅,但一旦你把所有設備都安裝好了,也就很容易使用了。使用Python腳本將視訊轉換為圖像效果很好。一旦這些都做了,輸入到人工智慧就會順利進行。

然而,儘管很難因這一方面而指責英偉達,但我覺得我還是應該提出來:這件事需要一個相當強大的GPU。我的筆記型電腦裡有一個T500,這項任務簡直把它推到了絕對極限。訓練時間確實比宣傳的5秒鐘時間長得多,嘗試在1080p情況下渲染時會導致程式崩潰(我是選擇在135*74指標左右動態渲染的)。現在,這仍然算是一個巨大的改進,因為先前的NeRF模型實驗花了好幾天時間。

我不認為每個人都會有一個3090p設備用於這樣的項目,所以值得簡要說明一下。低效能配置的電腦使程式難以使用,尤其是當我試圖讓攝影機「飛起來」以便更有利於設定渲染影片時。儘管如此,這過程的成果還是讓人印象深刻。

還有,我面臨的另一個問題是無法尋找渲染檔案render.py(正如您可能猜測的那樣,它對於渲染影片至關重要)。非常奇怪的是,它不在官方提供的開源程式碼倉庫中,儘管在大多數廣告文章和其他文件中都有大量提及。因此,我必須從連結處https://www.php.cn/link/b943325cc7b7422d2871b345bf9b067f挖出這個寶貝。

最後,我也希望能夠把上面的3D模型轉換成.obj檔。也許現在,這已經成為可能的事了。

基於人工智慧技術快速建構三維模型

圖7:狐狸的gif動畫-這不是我做的,是英威達做的。效果不錯,對不?

總結和下一步的想法

上面的實驗過程讓我聯想到OpenAI公司開發的DALL-E,這也是一種能夠產生影像的人工智慧技術。現在,這種技術已經變得非常流行,部分原因在於它非常容易使用。此外,DALL-E展示給人們一個非常酷的例子,說明人工智慧模型可以做什麼,以及它們的限制。它如今甚至已經成為了一種流行的文化現象(或至少在我的推特上就體現了許多特色內容)——人們製作自己各自奇怪的DALL-E圖片並相互分享。我可以想像這種技術也會發生類似這樣的事情:一個可以讓任何人上傳影片並創建一個可以與朋友分享的3D模型的網站,其病毒傳播的潛力是巨大的。最終有人肯定會做到這一點!

就我個人而言,我期待這方面更多的實驗成果。我希望能夠產生超逼真的模型,然後將它們轉儲到AR/VR中。基於這些技術,你甚至可以主持網路會議——那不是很有趣嗎?因為你只需要藉助手機上的相機即可實現這一目標,而如今大部分用戶手機中已經擁有了這種硬體配置。

總地來說,我印象深刻。能夠在手機上錄製1分鐘的視頻,並將其轉換為一個你可以逐步通過的模型,這真是太棒了。雖然渲染需要一段時間,而且安裝有點困難,但效果很好。經過幾次試驗,我已經得到了非常酷的輸出!我期待更多的實驗!

參考資料

#NVIDIA Git

#NVIDIA blog

#Supplemental Git

譯者介紹

朱先忠,51CTO社群編輯,51CTO專家部落格、講師,滄坊一所高校電腦教師,自由程式設計界老兵一枚。早期專注各種微軟技術(編著成ASP.NET AJX、Cocos 2d-X相關三本技術圖書),近十多年投身於開源世界(熟悉流行全端Web開發技術),了解基於OneNet/AliOS Arduino/ ESP32/樹莓派等物聯網開發技術與Scala Hadoop Spark Flink等大數據開發技術。

原文標題:Using AI to Generate 3D Models, Fast!#,作者:Andrew Blance

以上是基於人工智慧技術快速建構三維模型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!