98、Text2Room: Extracting Textured 3D Meshes from 2D Text-to-Image Models

簡介

github
在這里插入圖片描述
利用預訓練的2D文本到圖像模型來合成來自不同姿勢的一系列圖像。為了將這些輸出提升為一致的3D場景表示,將單目深度估計與文本條件下的繪畫模型結合起來,提出了一個連續的對齊策略,迭代地融合場景幀與現有的幾何形狀,以創建一個無縫網格

實現流程

在這里插入圖片描述
在這里插入圖片描述

Iterative 3D Scene Generation

隨著時間的推移而生成場景表示網格 M = ( V , C , S ) M=(V,C,S) M=(V,C,S),V——頂點,C——頂點顏色,S——面集合,輸入的文本prompts { P t } t = 1 T \{P_t\}^T_{t=1} {Pt?}t=1T?,相機位姿 { E t } t = 1 T \{ E_t \}^T_{t=1} {Et?}t=1T?,遵循渲染-精煉-重復模式,對于第 t 代的每一步,首先從一個新的視點渲染當前場景
在這里插入圖片描述
r 是沒有陰影的經典柵格化函數, I t I_t It?\是渲染的圖像, d t d_t dt? 是渲染的深度, M t M_t Mt? 圖像空間掩碼標記沒有觀察到內容的像素

使用文本到圖像模型

在這里插入圖片描述
在深度對齊中應用單目深度估計器 F d F_d Fd? b來繪制未觀察到的深度
在這里插入圖片描述
利用融合方案將新內容 { I ^ t , d ^ t , m t } \{ \hat{I}_t,\hat{d}_t,m_t \} {I^t?,d^t?,mt?} 與現有網格結合起來
在這里插入圖片描述

Depth Alignment Step

要正確地結合新舊內容,就必須使新舊內容保持一致。換句話說,場景中類似的區域,如墻壁或家具,應該放置在相似的深度

直接使用預測深度進行反向投影會導致3D幾何結構中的硬切割和不連續,因為后續視點之間的深度尺度不一致

應用兩階段的深度對齊方法,使用預訓練的深度網絡(Irondepth: Iterative refinement of single-view depth using surface normal and its uncertainty),將圖像中已知部分的真實深度d作為輸入,并將預測結果與之對齊 d ^ p = F d ( I , d ) \hat{d}_p=F_d(I,d) d^p?=Fd?(I,d)

(Infinite nature: Perpetual view generation of natural scenes from a single image) 優化尺度和位移參數,在最小二乘意義上對齊預測和呈現的差異來改進結果
在這里插入圖片描述
通過 m 屏蔽掉未觀察到的像素,提取對齊深度 d ^ = ( y d ^ p + β ) ? 1 \hat{d}=(\frac{y}{\hat{d}_p}+\beta)^{-1} d^=(d^p?y?+β)?1,在蒙版邊緣應用5 × 5高斯核來平滑 d ^ \hat{d} d^

Mesh Fusion Step

在每一次迭代中插入新的內容 { I ^ t , d ^ t , m t } \{ \hat{I}_t,\hat{d}_t,m_t \} {I^t?,d^t?,mt?} 到場景中,將圖像空間像素反向投影到世界空間點云中
在這里插入圖片描述

K ∈ R 3 x 3 K \in R^{3 x 3} KR3x3 是相機位姿參數,W,H是圖像寬高。使用簡單的三角測量,將圖像中的每四個相鄰像素{(u, v), (u+1, v), (u, v+1), (u+1, v+1)}形成兩個三角形。

估計的深度是有噪聲的,這種簡單的三角測量會產生拉伸的3D幾何形狀。

使用兩個過濾器來去除拉伸的面在這里插入圖片描述

首先,根據邊長對面進行過濾。如果任意面邊緣的歐幾里得距離大于閾值 δ 邊緣,則刪除該面。其次,根據表面法線與觀看方向之間的夾角對面進行過濾
在這里插入圖片描述
S 是面集合, i 0 , i 1 , i 2 i_0,i_1,i_2 i0?,i1?,i2? 為三角形的頂點指數, δ s n \delta_{sn} δsn?為閾值, m ∈ R 3 m \in R^3 mR3 是歸一化法線, v ∈ R 3 v \in R^3 vR3 為世界空間中從相機中心到三角形起始平均像素位置的歸一化視角方向,這是避免了從圖像中相對較少的像素為網格的大區域創建紋理

最后將新生成的網格補丁和現有的幾何形狀融合在一起,所有從像素中反向投影到繪制蒙版 m t m_t mt? 中的面都與相鄰的面縫合在一起,這些面已經是網格的一部分,在 m t m_t mt? 的所有邊緣上繼續三角剖分方案,但使用 m t m_t mt? 的現有頂點位置來創建相應的面

Two-Stage Viewpoint Selection

一種兩階段的視點選擇策略,該策略從最優位置采樣每個下一個攝像機姿態,并隨后細化空區域

Generation Stage
如果每個軌跡都從一個具有大多數未觀察區域的視點開始,那么生成效果最好。這會生成下一個塊的輪廓,同時仍然連接到場景的其余部分

將攝像機位置 T 0 ∈ R 3 T_0∈R^3 T0?R3 沿注視方向 L ∈ R 3 L∈R^3 LR3 進行均勻的平移: T i + 1 = T i ? 0.3 L T_{i+1}=T_i?0.3L Ti+1?=Ti??0.3L,如果平均渲染深度大于0.1,就停止,或者在10步后丟棄相機,這避免了視圖過于接近現有的幾何形狀

創建封閉的房間布局,通過選擇以圓周運動生成下一個塊的軌跡,大致以原點為中心。發現,通過相應地設計文本提示,可以阻止文本到圖像生成器在不需要的區域生成家具。例如,對于看著地板或天花板的姿勢,我們分別選擇只包含單詞“地板”或“天花板”的文本提示

Completion Stage
由于場景是實時生成的,所以網格中包含了沒有被任何相機觀察到的孔,通過采樣額外的姿勢后驗完成場景

將場景體素化為密集的均勻單元,在每個單元中隨機取樣,丟棄那些與現有幾何太接近的,為每個單元格選擇一個姿態,以查看大多數未觀察到的像素,根據所有選擇的相機姿勢繪制場景

清理繪制蒙版很重要,因為文本到圖像生成器可以為大的連接區域生成更好的結果

首先使用經典的繪制算法繪制小的孔,并擴大剩余的孔,移除所有落在擴展區域并且接近渲染深度的面,對場景網格進行泊松曲面重建。這將在完井后關閉任何剩余的井眼,并平滑不連續性。結果是生成的場景的水密網格,可以用經典的柵格化渲染

Result

在這里插入圖片描述
在這里插入圖片描述

Limitations

方法允許從任意文本提示生成3D房間幾何形狀,這些文本提示非常詳細并且包含一致的幾何形狀。然而,方法在某些條件下仍然可能失敗。首先,閾值方案可能無法檢測到所有拉伸的區域,這可能導致剩余的扭曲。此外,一些孔在第二階段后可能仍未完全完井,這導致在應用泊松重建后出現過平滑區域。場景表示不分解光線中的材料,光線會在陰影或明亮的燈中烘烤,這是由擴散模型產生的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167556.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

#Js篇:單線程模式同步任務異步任務任務隊列事件循環setTimeout() setInterval()

單線程模式 之所以采用單線程,而不是多線程,跟歷史有關系。原因是不想讓瀏覽器變得太復雜,因為多線程需要共享資源、且有可能修改彼此的運行結果,對于一種網頁腳本語言來說,太復雜了。 好處 實現起來比較簡單&#…

nginx國密ssl測試

文章目錄 文件準備編譯部署nginx申請國密數字證書配置證書并測試 文件準備 下載文件并上傳到服務器,這里使用centos 7.8 本文涉及的程序文件已打包可以直接下載。 點擊下載 下載國密版openssl https://www.gmssl.cn/gmssl/index.jsp 下載穩定版nginx http://n…

訪問者模式 (Visitor Pattern)

定義 訪問者模式(Visitor Pattern)是一種行為型設計模式,用于將算法與其作用于的對象結構分離。這種模式主要用于執行操作或應用過程,這些操作需要在不同類型的對象上執行,同時避免讓這些對象的類變得過于復雜。 關鍵…

【Python 訓練營】N_5 斐波那契數列

題目 輸出斐波那契數列 分析 斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……。 在數學上,費波那契數列是以遞歸的方法來定義&#xff…

9.9 Windows驅動開發:內核遠程線程實現DLL注入

在筆者上一篇文章《內核RIP劫持實現DLL注入》介紹了通過劫持RIP指針控制程序執行流實現插入DLL的目的,本章將繼續探索全新的注入方式,通過NtCreateThreadEx這個內核函數實現注入DLL的目的,需要注意的是該函數在微軟系統中未被導出使用時需要首…

用XMind2TestCase,測試更輕松

📢專注于分享軟件測試干貨內容,歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!📢交流討論:歡迎加入我們一起學習!📢資源分享:耗時200小時精選的「軟件測試」資…

C++ Qt QByteArray用法介紹

作者:令狐掌門 技術交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目錄 一、QByteArray的基本用法1、初始化和賦值2、訪問和修改元素3、 常用方法4、數據轉換二、QByteArray與文件操作三、QByteArray與網絡編程四、QByteArray數據編碼1、Base64 編解…

數據庫-MySQL之數據庫必知必會10-13章

第10章 創建計算字段 拼接字段 使用Concat()函數 執行算術計算 示例:從 Products 表中返回 prod_id、prod_price 和 sale_price。sale_price 是一個包含促銷價格的計算字段。提示:可以乘以 0.9,得到原價的 90%(即 10%的折扣&…

2023.11.24 海豚調度,postgres庫使用

目錄 海豚調度架構dolphinscheduler DAG(Directed Acyclic Graph), 個人自用啟動服務 DS的架構(海豚調度) 海豚調度架構dolphinscheduler 注:需要先開啟zookeeper服務,才能進行以下操作 通過UI進行工作流的配置操作, 配置完成后, 將其提交執行, 此時執行請求會被…

數組基礎知識

數組基礎(不定時更新) 數組基礎 數組基礎 (1)數組是存放在連續內存空間上的相同類型數據的集合。數組可以方便的通過下標索引的方式獲取到下標下對應的數據。數組下標都是從0開始的。數組內存空間的地址是連續的。 (…

【科普知識】什么是步進電機?

德國百格拉公司于1973年發明了五相混合式步進電機及其驅動器,1993年又推出了性能更加優越的三相混合式步進電機。我國在80年代以前,一直是反應式步進電機占統治地位,混合式步進電機是80年代后期才開始發展。 步進電機是一種用電脈沖信號進行…

Verilog基礎:時序調度中的競爭(一)

相關閱讀 Verilog基礎https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作為一個硬件描述語言,Verilog HDL常常需要使用語句描述并行執行的電路,但其實在仿真器的底層,這些并行執行的語句是有先后順序…

機器學習數據集整理:圖像、表格

前言 如果你對這篇文章感興趣,可以點擊「【訪客必讀 - 指引頁】一文囊括主頁內所有高質量博客」,查看完整博客分類與對應鏈接。 表格數據 Sklearn 提供了 13 個表格型數據,且數據處理接口統一;LIBSVM 提供了 131 個表格型數據&a…

【TypeScript】常見數據結構與算法(二):鏈表

文章目錄 鏈表結構(LinkedList)鏈表以及數組的缺點數組鏈表的優勢 什么是鏈表?封裝鏈表相關方法源碼鏈表常見面試題237-刪除鏈表中的節點206 - 反轉鏈表 數組和鏈表的復雜度對比 鏈表結構(LinkedList) 鏈表以及數組的缺點 鏈表…

AcWing103.電影——離散化

題目 莫斯科正在舉辦一個大型國際會議,有 n n n 個來自不同國家的科學家參會。 每個科學家都只懂得一種語言。 為了方便起見,我們把世界上的所有語言用 1 到 109 之間的整數編號。 在會議結束后,所有的科學家決定一起去看場電影放松一下。…

Interactive Visual Data Analysis

Words&Contents Home | Interactive Visual Data Analysis Book Outline 這本書對視覺、互動和分析方法進行了系統而全面的概述,作為數據可視化方面比較好的讀物; 目錄 Words&Contents Book Outline (一)Introduct…

AIGC 3D即將爆發,混合顯示成為產業數字化的生產力平臺

2023年,大語言模型與生成式AI浪潮席卷全球,以文字和2D圖像生成為代表的AIGC正在全面刷新產業數字化。而容易為市場所忽略的是,3D圖像生成正在成為下一個AIGC風口,AIGC 3D宇宙即將爆發。所謂AIGC 3D宇宙,即由文本生成3D…

VBA_MF系列技術資料1-227

MF系列VBA技術資料 為了讓廣大學員在VBA編程中有切實可行的思路及有效的提高自己的編程技巧,我參考大量的資料,并結合自己的經驗總結了這份MF系列VBA技術綜合資料,而且開放源碼(MF04除外),其中MF01-04屬于定…

安裝compiler version 5

這個compiler version5 在我的資源里面可以免費下載; 另外這個東西還需要安裝,安裝教程在這里:Keil最新版保姆教程(解決缺少V5編譯器問題) - 嗶哩嗶哩 (bilibili.com) 看吧安裝好了year

C語言鏈表使用

目錄 雙鏈表增刪改查鏈表帶功能函數 雙鏈表增刪改查 #include <stdio.h> #include <stdlib.h>// 雙鏈表結點的定義 typedef struct DNode{int data;struct DNode *prev;struct DNode *next; } DNode;// 創建雙鏈表 DNode *createDoublyLinkedList() {int n, i;pri…