為機(jī)器人仿真構(gòu)建逼真的 3D 環(huán)境可能是一項(xiàng)耗時(shí)且勞動(dòng)密集型的任務(wù)?,F(xiàn)在,借助NVIDIA Omniverse NuRec,您只需使用智能手機(jī)即可完成整個(gè)流程。本文將逐步介紹操作方法:從使用 iPhone 拍攝照片,到利用3DGUT進(jìn)行 3D 場(chǎng)景重建,再到將重建的場(chǎng)景導(dǎo)入NVIDIA Isaac Sim并添加機(jī)器人。若要跳過(guò)重建步驟(步驟 1–3),直接在 Isaac Sim(步驟 4)中探索該場(chǎng)景,可前往NVIDIA Physical AI上的 Hugging Face 獲取相關(guān)資源。
第 1 步:捕捉真實(shí)場(chǎng)景
第一步是拍攝需要重建的真實(shí)環(huán)境的照片。如今已無(wú)需特殊硬件,使用普通的智能手機(jī)攝像頭即可完成。
當(dāng)您在場(chǎng)景中移動(dòng)時(shí),可以使用手機(jī)進(jìn)行拍攝。以下是一些攝影測(cè)量的實(shí)用建議:
照明和焦點(diǎn)應(yīng)準(zhǔn)確且穩(wěn)定。避免畫(huà)面快速移動(dòng)或出現(xiàn)模糊。若條件允許,建議使用更快的快門(mén)速度(例如 1/100 秒或更快)。
在內(nèi)置相機(jī)應(yīng)用中,您無(wú)法直接設(shè)置快門(mén)速度,但可以采取以下措施進(jìn)行優(yōu)化:
鎖定對(duì)焦與曝光:長(zhǎng)按畫(huà)面主體可啟用 AE/AF 鎖定,隨后輕微向下拖動(dòng)曝光滑塊(+0.3 至 +0.7 EV),有助于保留高光細(xì)節(jié)。
保持穩(wěn)定:建議使用三腳架或?qū)⒃O(shè)備靠在穩(wěn)固表面上;每一幀越清晰,COLMAP 在特征追蹤時(shí)的表現(xiàn)就越出色。
避免自動(dòng)切換微距模式:若使用 iPhone Pro 機(jī)型,為防止鏡頭間焦距突然切換,請(qǐng)前往“設(shè)置” →“相機(jī)” → 關(guān)閉“自動(dòng)微距”功能。
如需手動(dòng)控制快門(mén)速度和 ISO,可選用以下支持固定快門(mén)與 ISO 的 iOS 應(yīng)用程序:Lumina:手動(dòng)相機(jī)、Halide、ProCamera、ProCam 8、Moment Pro Camera、Lightroom Mobile。
建議快門(mén)速度設(shè)置為:戶外 1/120 至 1/250 秒,室內(nèi) 1/100 秒。ISO 值應(yīng)盡量調(diào)低,以在保證合理曝光的同時(shí)減少噪點(diǎn)。
同時(shí)建議鎖定白平衡,避免不同幀之間出現(xiàn)色彩偏移。
為實(shí)現(xiàn)遮擋效果,請(qǐng)圍繞該區(qū)域進(jìn)行緩慢環(huán)繞,并從多個(gè)高度和角度進(jìn)行捕捉。建議保持 60% 的重疊率以確保安全。
提示:COLMAP 需要標(biāo)準(zhǔn)圖像格式。如果您的 iPhone 保存的是 HEIC 格式,請(qǐng)前往“Settings” (設(shè)置) + “Camera” (相機(jī)) + “Formats” (格式),然后選擇“Most Compatible” (兼容性優(yōu)先),以拍攝 JPEG 格式;或者在使用 COLMAP 前,將圖像導(dǎo)出或轉(zhuǎn)換為 JPG 格式。
第 2 步:利用 COLMAP 生成稀疏重建
當(dāng)您擁有照片后,下一步是從這些圖像中恢復(fù)出三維結(jié)構(gòu)并確定相機(jī)的位置。本示例采用流行的開(kāi)源運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(Structure-from-Motion,SfM)與多視角立體匹配(Multi-View Stereo)工作流COLMAP來(lái)實(shí)現(xiàn)這一目標(biāo)。COLMAP 將生成場(chǎng)景的稀疏點(diǎn)云,并估算每張照片對(duì)應(yīng)的相機(jī)參數(shù)。
COLMAP 還提供了以下命令行路徑。但請(qǐng)注意,使用 GUI 進(jìn)行自動(dòng)重建是更簡(jiǎn)便的入門(mén)方式。為了與 3DGUT 兼容,請(qǐng)選擇針孔或簡(jiǎn)單針孔相機(jī)模型。
# Feature detection & extraction
$ colmap feature_extractor \
--database_path ./colmap/database.db \
--image_path ./images/ \
--ImageReader
# Feature detection & extraction
$ colmap feature_extractor \
--database_path ./colmap/database.db \
--image_path ./images/ \
--ImageReader.single_camera 1 \
--ImageReader.camera_model PINHOLE \
--SiftExtraction.max_image_size 2000 \
--SiftExtraction.estimate_affine_shape 1 \
--SiftExtraction.domain_size_pooling 1
# Feature matching
$ colmap exhaustive_matcher \
--database_path ./colmap/database.db \
--SiftMatching.use_gpu 1
# Global SFM
$ colmap mapper \
--database_path ./colmap/database.db \
--image_path ./images/ \
--output_path ./colmap/sparse
# Visualize for verification
$ colmap gui --import_path ./colmap/sparse/0 \
--database_path ./colmap/database.db \
--image_path ./images/
COLMAP 將輸出項(xiàng)目文件夾(通常包含 database.db、images/ 文件夾,以及存放重建數(shù)據(jù)的稀疏/ 目錄)。完成 COLMAP 處理后,您將獲得:
稀疏點(diǎn)云場(chǎng)景
所有圖像的相機(jī)位姿數(shù)據(jù)
這是使用 3DGUT 進(jìn)行 3D 重建所需輸入的信息(第 3 步)。
第 3 步:使用 3DGUT 進(jìn)行密集 3D 重建的訓(xùn)練,并將結(jié)果導(dǎo)出為 USD
現(xiàn)在來(lái)看看效果。下一步,利用 3DGUT 算法將稀疏模型和圖像轉(zhuǎn)換為更加逼真的密集 3D 場(chǎng)景:
設(shè)置 3DGUT 環(huán)境:3DGUT 存儲(chǔ)庫(kù)需要在配備 CUDA 11.8、GCC ≤ 11 和 NVIDIA GPU 的 Linux 系統(tǒng)上運(yùn)行。如需查看官方 3DGUT 代碼,請(qǐng)?jiān)L問(wèn)nv-tlabs/3dgrut倉(cāng)庫(kù),并按照說(shuō)明安裝所需的依賴庫(kù)。
克隆 3DGUT 存儲(chǔ)庫(kù): 使用指定命令克隆并安裝 3DGUT 存儲(chǔ)庫(kù)。為確??寺〕晒?,在繼續(xù)操作前,請(qǐng)使用存儲(chǔ)庫(kù)中的示例數(shù)據(jù)集運(yùn)行測(cè)試重建,以驗(yàn)證其功能是否正常。
|
git clone --recursive https://github.com/nv-tlabs/3dgrut.git cd 3dgrut chmod +x install_env.sh ./install_env.sh 3dgrut conda activate 3dgrut |
準(zhǔn)備 COLMAP 輸出:請(qǐng)確認(rèn)您已知曉第 2 步中生成的 COLMAP 輸出目錄的路徑。本示例采用apps/colmap_3dgut_mcmc.yaml配置,該配置將 3DGUT 與MCMC(Markov Chain Monte Carlo)密集化策略相結(jié)合。在實(shí)際應(yīng)用中,該方法能夠?qū)χ亟ㄟ^(guò)程中存在不確定性的高斯進(jìn)行采樣與密集化處理,有效增強(qiáng)薄結(jié)構(gòu)和邊緣的清晰度,提升整體重建保真度,同時(shí)相較于基準(zhǔn)配置,訓(xùn)練耗時(shí)更少。
運(yùn)行 3DGUT 訓(xùn)練腳本并導(dǎo)出 USDZ:在激活當(dāng)前環(huán)境后,您可通過(guò)執(zhí)行提供的 train.py 腳本并指定 COLMAP 配置來(lái)啟動(dòng)訓(xùn)練。例如,命令可能類似于以下形式:
|
$ conda activate 3dgrut $ python train.py --config-name apps/colmap_3dgut_mcmc.yaml \ path=/path/to/colmap/ \ out_dir=/path/to/out/ \ experiment_name=3dgut_mcmc \ export_usdz.enabled=true \ export_usdz.apply_normalizing_transform=true |
運(yùn)行命令后,3DGUT 將開(kāi)始訓(xùn)練,讀取您的圖像和 COLMAP 數(shù)據(jù),并對(duì) 3D 表征進(jìn)行優(yōu)化。所需時(shí)間取決于場(chǎng)景的復(fù)雜程度和 GPU 性能,小型場(chǎng)景可能只需幾分鐘,而細(xì)節(jié)豐富的場(chǎng)景則可能需要數(shù)小時(shí)。
此過(guò)程完成后,應(yīng)對(duì)場(chǎng)景進(jìn)行密集重建,輸出結(jié)果包含一個(gè)含有模型檢查點(diǎn)的目錄。設(shè)置export_usdz.enabled=true和export_usdz.apply_normalizaing_transform=true標(biāo)志還會(huì)生成 USDZ 文件。
export_usdz.enabled=truewrites a USDZ of your reconstructed scene, so you can load it straight into Isaac Sim.
export_usdz.apply_normalizing_transform=trueapplies a primitive normalization (centers/scales the scene near the origin). It does not guarantee the floor is exactly atz = 0. In Isaac Sim, you can add a Ground Plane or nudge the scene root (translate/rotate) for alignment.
將重建的場(chǎng)景導(dǎo)出為 USD 格式后,即可在 Isaac Sim 中使用。生成的 USDZ 文件采用自定義 USD 模式,本質(zhì)上是一個(gè)打包的 USD 場(chǎng)景,包含 3D 重建中的全部高斯拼接數(shù)據(jù)。需要注意的是,AOUSD 正在討論該模式的標(biāo)準(zhǔn)化。
第 4 步:在 Isaac Sim 中部署重建的場(chǎng)景,并添加機(jī)器人
有趣的是,隨著現(xiàn)實(shí)世界場(chǎng)景在 USD 中被完整重建,它們便可在 Isaac Sim 中用于虛擬機(jī)器人的訓(xùn)練與測(cè)試。
要加載場(chǎng)景并插入機(jī)器人,請(qǐng)按以下步驟操作:
1. 啟動(dòng)支持 NuRec/3DGUT 功能的 Isaac Sim 5.0 或更高版本。打開(kāi) Isaac Sim 后,從空階段開(kāi)始(文件 > 新建)。
2. 導(dǎo)入 USD 場(chǎng)景: 從菜單中選擇“File” (文件) > “Import” (導(dǎo)入),然后定位到場(chǎng)景的 USDZ 文件。 alternatively,也可將 USDZ 文件從 Isaac Sim 內(nèi)容瀏覽器直接拖拽至場(chǎng)景中。當(dāng) Isaac Sim 加載該文件時(shí),您將在視口中看到重建的環(huán)境,呈現(xiàn)為彩色點(diǎn)云或高斯點(diǎn)的集合。通過(guò)相機(jī)視角觀察時(shí),其效果近乎一張逼真的 3D 圖像。
提示:您可以通過(guò) Isaac Sim 導(dǎo)航功能使用 WASD 鍵,或右鍵單擊并拖動(dòng),在場(chǎng)景中自由移動(dòng),從不同角度進(jìn)行查看和檢查。
3. 為物理效果添加地平面: 您重建的場(chǎng)景僅包含視覺(jué)幾何圖形(來(lái)自 3DGUT 的點(diǎn)或體素),不具備固有的碰撞屬性。為了讓機(jī)器人能夠在場(chǎng)景中移動(dòng),需要添加一個(gè)地面,使其有可支撐的表面。在 Isaac Sim 中,此操作非常簡(jiǎn)便:點(diǎn)擊“Create”(創(chuàng)建)>“Physics”(物理效果)>“Ground Plane”(地面平面)。此時(shí)會(huì)生成一個(gè)平面(通常位于z = 0),覆蓋場(chǎng)景的占地面積。您可能需要調(diào)整其縮放比例(例如,將 x 和 y 均設(shè)為 100,如視頻 1 所示)。請(qǐng)進(jìn)一步調(diào)節(jié)該平面的位置、旋轉(zhuǎn)和縮放,使其與重建的地板對(duì)齊。
接下來(lái),連接代理網(wǎng)格以接收陰影。代理網(wǎng)格是一種簡(jiǎn)單的支撐結(jié)構(gòu),通過(guò)提供可投射陰影的表面,使場(chǎng)景中的物體在視覺(jué)上更好地與地面銜接。您已經(jīng)創(chuàng)建了一個(gè)網(wǎng)格,即地平面。要將其設(shè)置為代理網(wǎng)格,請(qǐng)執(zhí)行以下步驟:
選擇 NuRec Prim(位于全局 xform 下的體積 Prim)。在“Raw USD Properties”(原始 USD 屬性)面板中,找到 NuRec/Volume 部分,并定位到“Proxy”(代理)字段。
點(diǎn)擊以添加您的代理網(wǎng)格基元。
再次選擇您的地平面,確保“Geometry”(幾何圖形)>“Matte Object”(啞光對(duì)象)屬性已啟用。
4. 從 Isaac Sim 資產(chǎn)中插入機(jī)器人: Isaac Sim 提供了多種 SimReady 機(jī)器人模型。要在場(chǎng)景中添加機(jī)器人,請(qǐng)前往頂部菜單欄,選擇“Create” (創(chuàng)建) > “Robots” (機(jī)器人),然后從列表中選取所需的機(jī)器人。例如,可選擇廣受好評(píng)的 Franka Emika Panda 機(jī)械臂,也可根據(jù) Isaac Sim 庫(kù)中的可用資源,選擇 LeatherBack、Carter 或 TurtleBot 等移動(dòng)機(jī)器人,甚至人形機(jī)器人。
單擊您選擇的機(jī)器人素材后,該素材將被添加到場(chǎng)景中。請(qǐng)使用“Move/ Rotate” (移動(dòng)/ 旋轉(zhuǎn)) 工具,將機(jī)器人調(diào)整至重建場(chǎng)景中的合適位置。
5. 按下“Play”(播放)并觀看: 此時(shí),機(jī)器人應(yīng)位于逼真的 3D 場(chǎng)景中,可以坐姿或站姿呈現(xiàn)。如果是機(jī)械臂,您還可以為其添加動(dòng)畫(huà),甚至運(yùn)行強(qiáng)化學(xué)習(xí),具體取決于您的應(yīng)用場(chǎng)景?,F(xiàn)在,現(xiàn)實(shí)世界環(huán)境已導(dǎo)入 Isaac Sim,您可以像操作其他仿真環(huán)境一樣對(duì)其進(jìn)行處理。
在 NVIDIA Isaac Sim 中開(kāi)始重建場(chǎng)景
這個(gè)簡(jiǎn)潔而真實(shí)感十足的仿真工作流,可將日常的 iPhone 拍攝照片轉(zhuǎn)化為交互式、機(jī)器人就緒的場(chǎng)景。整個(gè)流程就像在 NVIDIA Isaac Sim 中完成圖像采集、COLMAP 處理、3DGUT 重建、USDZ 導(dǎo)出并加載使用一樣簡(jiǎn)單。該工作流用一種簡(jiǎn)單且可復(fù)現(xiàn)的數(shù)字孿生路徑,取代了傳統(tǒng)耗時(shí)的攝影測(cè)量流程,讓你能夠快速進(jìn)行驅(qū)動(dòng)、路徑規(guī)劃與測(cè)試。準(zhǔn)備好開(kāi)始體驗(yàn)了嗎?
準(zhǔn)備好開(kāi)始體驗(yàn)了嗎?
打開(kāi)現(xiàn)成場(chǎng)景:從 Hugging Face 的NVIDIA 物理 AI集合中獲取 NuRec 樣本,并在 Isaac Sim 中加載運(yùn)行。
試用真實(shí)到仿真的參考工作流:基于 Isaac Sim、Isaac ROS、3DGUT、cuSFM、nvBlox 和 FoundationStereo,按照從立體攝像頭數(shù)據(jù)重建場(chǎng)景的流程,為機(jī)器人開(kāi)發(fā)構(gòu)建高保真的 3D 環(huán)境,請(qǐng)遵循從立體攝像頭數(shù)據(jù)重建場(chǎng)景的步驟。
-
智能手機(jī)
+關(guān)注
關(guān)注
66文章
18690瀏覽量
186036 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
31065瀏覽量
222131 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5589瀏覽量
109702
原文標(biāo)題:僅使用智能手機(jī)在 NVIDIA Isaac Sim 中重建場(chǎng)景
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
僅使用智能手機(jī)在NVIDIA Isaac Sim中重建場(chǎng)景
評(píng)論