女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用OpenUSD構建支持生成式AI的合成數據工作流

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 2024-11-20 09:50 ? 次閱讀

訓練用于驅動自主機器(例如機器人自動駕駛汽車)的物理 AI 模型需要大量數據。獲取大量多樣化的訓練數據可能很困難、耗時且昂貴。數據通常因隱私限制或擔憂而受到限制,或者對于新穎的用例來說可能根本不存在。此外,可用數據可能不適用于各種潛在情況的全部范圍,從而限制了模型準確預測和響應各種場景的能力。

合成數據,通過計算機模擬從數字孿生中生成,可替代真實數據,使開發者能夠啟動物理 AI 模型訓練。您可以快速生成大量多樣化的數據集,通過改變許多不同的參數,如布局、資產放置、位置、顏色、物體大小和光照條件。然后,利用這些數據幫助創建通用模型。

實現逼真度對縮小模擬與現實領域的差距至關重要。該過程旨在使用正確的屬性(例如材質和紋理)表示虛擬環境中的每個對象,以準確地模仿其真實世界的表示。如果沒有 AI 的幫助,這是一個耗時的手動過程。生成式 AI 可以幫助加速從資產創建到代碼生成等過程的許多方面,支持開發者構建穩健且多樣化的訓練數據集。

本文介紹了如何使用適用于通用場景描述的 NVIDIA NIM 微服務以及 NVIDIA Omniverse Replicator 構建自定義合成數據生成(SDG)管線。NVIDIA NIM 是一套加速推理微服務,允許組織在任何位置——云、數據中心、工作站和 PC 上——在 NVIDIA GPU上運行 AI 模型。Omniverse Replicator 是基于通用場景描述(OpenUSD)和 NVIDIA RTX 構建的 SDK。

本文還將介紹如何獲取生成的圖像,并使用示例 ComfyUI 工作流程作為參考管線的一部分進一步增強這些圖像。然后,生成的圖像可用于預訓練模型和工具,例如 TAO、PyTorch 或 TensorFlow

參考工作流程概述

該工作流程從現有倉庫的 3D 場景開始,該場景包含所有必要的 3D 資產,例如貨架、箱子、托盤等。如需了解有關創建工廠數字孿生的更多信息,請參閱工作流程示例。為了進一步增強 3D 場景,可以使用 3D NIM 微服務添加更多資產,并更改 360 HDRI 背景圖像以實現更多隨機化。

7559dcf2-a016-11ef-93f3-92fbcf53809c.png

圖 1. NVIDIA Isaac Sim 中的機器人基礎模型端到端參考工作流

下一步是使用 USD Code NIM 生成域隨機化所需的代碼,USD Code NIM 是一種先進的大型語言模型(LLM),可回答 OpenUSD 知識查詢并生成 USD-Python 代碼。域隨機化是創建合成數據的強大且必要的步驟。在 Omniverse Replicator 中,許多場景參數可以以編程方式進行更改。

生成帶注釋的合成數據后,我們將執行生成式 AI 增強,使用簡單的提示進一步分散和擴展數據集。

使用 USD NIM 微服務生成場景

USD Code 使您能夠在現有的 3D 開發工作流程中更高效地學習和開發 OpenUSD,只需通過輸入提示并獲得回復。USD Code 既可以回答問題,也可以編寫自定義的 OpenUSD Python 代碼。

您可以在 NVIDIA NIM API 目錄中或通過 Visual Studio Code 試用 USD Code,在 Omniverse Kit 中將其用作修改 OpenUSD 階段的示例擴展程序。有關詳細信息,請參閱USD Code NIM 文檔。

請參閱下面的示例提示以生成代碼:

編寫一個 Python 函數,在給定的 stage 中,在 x 和 y 軸上的 6×5 網格中添加矩形 lights,尺寸為 x:5 和 y:10。每個矩形 lights 的強度應為 5000,曝光值應為 1,大小為 (10,3)。lights 應在 z 軸上對齊,并嵌入在名為 Lights 的 xform 中。

生成的代碼如下所示:

from pxr import Sdf, Usd, UsdGeom, UsdLux


def create_rect_lights(stage: Usd.Stage) -> None:
    """Create a 6x5 grid of rect lights on the x and y axis."""
    lights_xform = UsdGeom.Xform.Define(stage, Sdf.Path("/Lights"))


    for i in range(6):
        for j in range(5):
            light_path = Sdf.Path(f"/Lights/Light_{i}_{j}")
            rect_light = UsdLux.RectLight.Define(stage, light_path)
            rect_light.CreateIntensityAttr().Set(5000)
            rect_light.CreateExposureAttr().Set(1)
            rect_light.CreateSizeAttr().Set((10, 3))
            rect_light.AddTranslateOp().Set((i * 5, j * 10, 0))
lights_xform.AddChild(rect_light.GetPrim())

執行后生成的代碼會在倉庫中按照規定的間距創建并填充 30 個新 lights (圖 2)。此過程可用于添加更多資產 (如 shelves、boxes 和 forklifts),以完成場景。

7581fd86-a016-11ef-93f3-92fbcf53809c.png

圖 2. 使用 USD Code NIM 從代碼生成的倉庫場景

如果需要其他資產或背景來增強場景,還可以使用使用 NVIDIA Edify 構建的服務。NVIDIA Edify 是一種功能強大的多模態架構,用于構建 AI 模型,生成視覺內容,例如 4K 圖像、詳細的 3D 網格、16K 360 HDRi、PBR 材質和視頻。然后,我們會對 AI 模型進行優化和打包,以通過 NVIDIA NIM 實現最大性能。這將加速內容創作過程。

借助 NVIDIA Edify 提供支持的 Shutterstock Generative 3D,您可以在 10 秒內通過文本提示或參考圖像生成網格預覽。然后在幾分鐘內使用 PBR 材質生成可隨時編輯的網格,從而實現快速的布景、概念或原型設計。此外,360 HDRi 生成功能也由 NVIDIA Edify 提供支持,使用戶能夠使用文本或圖像提示生成 16K 360 HDRi,以生成背景并匹配 3D 場景的照明。

Shutterstock Generative 3D API 已進入商業測試階段,可通過 TurboSquid by Shutterstock 進行訪問。

此外,fVDB 是一個開源深度學習框架,可用于生成大規模場景,利用真實世界的 3D 數據訓練空間智能。它基于 OpenVDB 構建 AI 運算符,以創建真實環境的高保真虛擬表示,包括神經輻射場神經輻射場(NeRF)、點云表面重建,甚至大規模生成式 AI。這些豐富的 3D 數據集都是 AI-ready 的,支持高效的模型訓練和推理。

生成域隨機化代碼

域隨機化是向數據集添加多樣性的一項重要技術。它是 Omniverse Replicator 的核心功能之一。您可以通過編程更改給定場景中的任意數量的變量,包括照明、對象位置、材質和紋理等。創建多樣化的數據集有助于感知模型在許多不同的場景中執行操作。

但是,為大規模域隨機化編寫代碼可能會很繁瑣,并且會拖慢數據生成的迭代過程。解決方案是什么?利用 USD Code NIM 的強大功能充當 copilot。

本節介紹如何使用 USD Code NIM 生成代碼,以此作為域隨機化的起點。您可以選擇在 Visual Studio Code 中激活 USD Code,也可以直接在任何基于 Omniverse Kit 的應用程序中激活 USD Code,其中 ChatUSD 代理擴展程序可以打開 USD Code 窗口,以便輸入提示。

75bf9ac4-a016-11ef-93f3-92fbcf53809c.png

圖 3. Omniverse 中可以激活 ChatUSD 代理擴展程序

首先,輸入以下提示:

在開放舞臺中,我想使用一個函數,僅在 x 軸上隨機移動名為 “/Root/RectLight_03” 的光線,距離在 0 到 -20 米之間。

import omni.replicator.core as rep
from omni.replicator.core.distribution import uniform
import asyncio
import omni.kit


stage = omni.usd.get_context().get_stage()
camera = '/OmniverseKit_Persp'
render_product = rep.create.render_product(camera, (1024, 1024))


def move_light() -> None:
    pass


# Initialize and attach writer
writer = rep.writers.get("BasicWriter")
writer.initialize(output_dir="_output", rgb=True)
writer.attach([render_product])


async def go(num_frames=10):
    for _ in range(num_frames):
         move_light()
         await rep.orchestrator.step_async()


asyncio.ensure_future(go())”

75e51380-a016-11ef-93f3-92fbcf53809c.png

圖 4. USD Code NIM 的初始響應,用于將倉庫照明設備填充到倉庫中

用戶可以通過限制光線的 Y 和 Z 位置、檢查光線是否具有正確的變換等方法進一步改進。需要注意的是,雖然這是一個迭代過程,但使用 USD Code 作為 copilot 會比自己編寫代碼更快地實現無差錯代碼。

最終代碼如下所示:

import omni.replicator.core as rep
from omni.replicator.core.distribution import uniform
from pxr import Usd, UsdGeom, Gf
import asyncio
import omni.kit


stage = omni.usd.get_context().get_stage()
camera = '/OmniverseKit_Persp'
render_product = rep.create.render_product(camera, (1024, 1024))


import random


def move_light() -> None:
    """Randomly move the light named "/Root/RectLight_03" between 0 and -20 meters on only the x-axis."""
    light_prim = stage.GetPrimAtPath("/Root/RectLight_03")
    translate_attr = light_prim.GetAttribute("xformOp:translate")
    if translate_attr:
        current_translation = translate_attr.Get()
        new_x = random.uniform(-20, 0)  # random x value between -20 and 0
        new_translation = Gf.Vec3d(new_x, current_translation[1], current_translation[2])
        translate_attr.Set(new_translation)
    else:
        new_x = random.uniform(-20, 0)  # random x value between -20 and 0
        light_prim.AddAttribute("xformOp:translate", Sdf.ValueTypeNames.Float3).Set(Gf.Vec3d(new_x, 0, 0))


# Initialize and attach writer
writer = rep.writers.get("BasicWriter")
writer.initialize(output_dir="_output", rgb=True, normals=True, distance_to_image_plane=True, semantic_segmentation=True)
writer.attach([render_product])


async def go(num_frames=10):
    for _ in range(num_frames):
         move_light()
         await rep.orchestrator.step_async()


asyncio.ensure_future(go())

在 Replicator 腳本編輯器中執行代碼將實現倉庫中的燈光隨機地打開和關閉(圖 5)。

76060900-a016-11ef-93f3-92fbcf53809c.gif

圖 5. 作為場景隨機化的一部分,倉庫燈在 Replicator 代碼的指導下開啟和關閉

此示例代碼只是使用 USD Code NIM進行域隨機化的眾多示例之一。您可以通過在場景中添加隨機化并增加數據集的多樣性來繼續迭代。您還可以指定 Python 編寫以支持開發可在不同場景中輕松重復使用的輔助函數,從而提高未來運行的效率。

導出帶注釋的圖像

通過在 Replicator 中設置域隨機化,就可以導出第一批帶注釋的圖像。Replicator 具有許多開箱即用的注釋器,例如二維邊界框、語義分割、深度、法線等。輸出類型 (例如邊界框或分割) 取決于模型類型或用例。數據可以使用 BasicWriter 輸出為基本數據,使用 KittiWriter 輸出為 KITTI 數據,或使用自定義寫入器輸出為 COCO 數據。

更重要的是,Replicator 生成的數據可捕捉各種物理交互,如剛體動力學(例如運動和碰撞)或光在環境中的交互。圖 6 顯示了可以從 Replicator 導出的帶注釋數據類型示例。

76427f98-a016-11ef-93f3-92fbcf53809c.png

圖 6. Replicator 可以生成各種帶注釋的數據,包括(從左上角順時針開始) Normals, RGB, Depth, 和 Semantic Segmentation。

使用 ComfyUI 增強合成數據集

進一步增強合成數據集可以創建新的變體,例如更改背景以及添加額外的紋理和材質細節,所有這些操作都使用文本提示。這樣可以生成廣泛的變體,不僅有益,還可以縮小外觀領域差距,獲得高度逼真的結果。總體而言,在數據集上花費的時間、大型高質量數字資產的負擔,以及在增強階段重新生成新變體的靈活性可節省大量時間。

ComfyUI 是一個基于 Web 的后端和 GUI,用于使用擴散模型構建和執行管線。這是一個功能強大的開源工具,可在 GitHub 上下載。它可以與 SDXL、其他擴散模型或您選擇的微調模型一起使用。更廣泛的社區為 ComfyUI 創建了一個包含額外技術和功能的生態系統,作為 ComfyUI 的節點,您可以將其集成到您的圖表中。

有關 ComfyUI 圖形的入門參考,請參閱Generative AI for Digital Twins Guide:https://docs.omniverse.nvidia.com/genai-nim-digitaltwin.html

767e3e0c-a016-11ef-93f3-92fbcf53809c.png

圖 7. 使用擴散模型增強合成生成圖像的 ComfyUI 工作流程示例

從高層次上講,該圖形可被視為“基于模型的編程”。區域提示用于引導數據集圖像中的擴散生成輸出。ControlNet 節點接收從法線和分割創建的輪廓圖像。ControlNet 與區域提示相結合,是控制變化的關鍵因素,同時也保留了此數據集一致性的重要結構。

啟動‘queue prompt’后,在圖 7 的最右側可以看到增強輸出。這些輸出是傳統渲染的合成數據和增強區域的組合。模型通常能夠從更廣泛的圖像中獲取照明線索和上下文,并對增強區域進行適當的照明或陰影處理。

地板類型和物體顏色等細節可以在現有圖像中進行更改。以下四個提示的結果圖像如圖 8 所示。

提示 1

白色平鋪油氈地板
綠色閃亮的新平衡重叉車

木托盤淺色松木、軟木
垃圾容器

提示 2

深色開裂的臟混凝土地板
黃色平衡重叉車
木托盤淺色松木、軟木
和黑色垃圾桶

提示 3

開裂的混凝土地板
白色平衡重叉車
木托盤淺色松木、軟木
垃圾容器

提示 4

綠色切口油氈地板
藍色生銹平衡重叉車
木托盤淺色松木、軟木
垃圾容器

訓練模型

雖然本文并未明確介紹,但下一步邏輯上應該是訓練計算機視覺模型。您可以啟動 NVIDIA 預訓練計算機視覺模型或選擇您自己的模型。然后,可以使用 NVIDIA TAO 等訓練框架對預訓練模型進行微調。TAO 基于 TensorFlow 和 PyTorch 構建,并使用遷移學習來加速模型訓練過程。與使用真實數據一樣,您可能必須經過多次迭代才能對模型 KPI 感到滿意。

如果您已經設置了管線,就可以返回 3D 仿真環境,通過更改附加參數和使用 ComfyUI 工作流增強參數來生成新數據。自動化管線減少了生成和標注新數據所需的時間,而這通常是訓練模型時的瓶頸。

總結

正如本文所述,您可以使用 NVIDIA NIM 微服務和 NVIDIA Omniverse Replicator 快速輕松地構建自定義合成數據生成管線。然后,您可以使用 ComfyUI 進一步增強生成的圖像。這些生成的圖像隨后可以與預訓練模型和工具,如 NVIDIA TAO、PyTorch 或 TensorFlow 等一起使用。

我們很期待看到您如何使用這一工作流程來開發自己的 SDG 管道。要開始使用,請查看詳細的端到端工作流。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    213

    文章

    29482

    瀏覽量

    211535
  • NVIDIA
    +關注

    關注

    14

    文章

    5240

    瀏覽量

    105768
  • 生成式AI
    +關注

    關注

    0

    文章

    527

    瀏覽量

    704

原文標題:如何使用 OpenUSD 構建支持生成式 AI 的合成數據工作流

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于工作流的動態Web服務合成模型的研究

    本文提出基于工作流的動態Web 服務合成模型DSC-WF,給出了DSC-WF 的分層模型和應用流程。
    發表于 12-22 13:25 ?14次下載

    動態工作流技術的應用研究

    在基于工作流的應用系統中,業務過程的不可預見性往往會要求工作流能夠適應不斷改變的業務環境,而傳統的工作流技術通常對業務動態可變的支持度不夠。本文在傳統
    發表于 01-15 14:08 ?7次下載

    利用合成數據和NVIDIA ISAAC Sim加速機器人訓練

      在模擬器中, ISAAC Sim 強大的合成數據功能使生成所需數據集變得簡單。您可以提供合成數據,以實現更高效的培訓工作流和更安全的自主
    的頭像 發表于 04-19 09:45 ?2167次閱讀
    利用<b class='flag-5'>合成數據</b>和NVIDIA ISAAC Sim加速機器人訓練

    NVIDIA提供用于AI訓練的合成數據生成工具

    提供合成數據生成工具和服務的企業以及開發者現在可以使用 Omniverse Replicator SDK 構建自定義、物理級精確的合成數據生成
    的頭像 發表于 07-03 10:06 ?1996次閱讀

    使用Omniverse Replicator SDK構建自定義、物理級精確的合成數據生成管線

    Omniverse Replicator 為開發者提供了一個可以根據他們的神經網絡要求構建特定合成數據生成應用的特殊平臺。它建立在通用場景描述(USD)、PhysX 和材質定義語言(MDL)等開放標準之上并帶有易于使用的 pyt
    的頭像 發表于 07-11 11:49 ?1328次閱讀

    用于對象檢測的合成數據生成

    電子發燒友網站提供《用于對象檢測的合成數據生成.zip》資料免費下載
    發表于 06-25 11:00 ?0次下載
    用于對象檢測的<b class='flag-5'>合成數據</b><b class='flag-5'>生成</b>

    Rendered.ai 將 NVIDIA Omniverse 集成到其合成數據生成平臺

    NVIDIA 初創加速計劃成員 Rendered.ai 將 Omniverse Replicator 集成到其合成數據生成平臺,使 AI 訓練變得更加簡單易用。 Rendered.
    的頭像 發表于 07-12 19:10 ?793次閱讀
    Rendered.<b class='flag-5'>ai</b> 將 NVIDIA Omniverse 集成到其<b class='flag-5'>合成數據</b><b class='flag-5'>生成</b>平臺

    SIGGRAPH 2023 | NVIDIA 發布支持生成 AIOpenUSD 的重大 Omniverse 升級

    使用 OpenUSD 框架和生成 AI 來優化并強化其 3D 工作流程。 Omniverse 是一個
    的頭像 發表于 08-09 19:10 ?594次閱讀

    SIGGRAPH 2023 | 生成 AI 開啟汽車行業新時代,為設計、工程、生產和銷售帶來改進

    AI 技術的進步將改變汽車生命周期,大大提高生產力,并激發創新。 生成內容和代碼、創建圖像和視頻、使用合成數據測試算法等生成
    的頭像 發表于 08-14 17:20 ?914次閱讀
    SIGGRAPH 2023 | <b class='flag-5'>生成</b><b class='flag-5'>式</b> <b class='flag-5'>AI</b> 開啟汽車行業新時代,為設計、工程、生產和銷售帶來改進

    洞悉 Omniverse:Marmoset 帶來渲染方面的突破,通過擴展對 OpenUSD支持改進 3D 藝術創作

    的情況下構建復雜的 3D 模型,改進他們的創意工作流。 最新發布的 Marmoset Toolbag 4.06 版本增加了對? OpenUSD(通用場景描述) 的支持,實
    的頭像 發表于 10-27 19:55 ?790次閱讀
    洞悉 Omniverse:Marmoset 帶來渲染方面的突破,通過擴展對 <b class='flag-5'>OpenUSD</b> 的<b class='flag-5'>支持</b>改進 3D 藝術創作<b class='flag-5'>流</b>

    洞悉 Omniverse:Autodesk Maya 的 OpenUSD 增強功能讓 3D 工作流變得簡單高效

    藝術家提高了生成 AI 內容創作工作流的生產力和效率。 在 3D 藝術和設計領域,高效率的工作流對于快速實現創意構想至關重要。 通用場景
    的頭像 發表于 11-30 19:35 ?891次閱讀
    洞悉 Omniverse:Autodesk Maya 的 <b class='flag-5'>OpenUSD</b> 增強功能讓 3D <b class='flag-5'>工作流</b>變得簡單高效

    NVIDIA發布適用于OpenUSD語言、幾何體、物理學和材質的生成AI模型與NIM微服務

    )的重大成果。這將擴大這一通用3D數據交換框架在機器人、工業設計和工程領域的應用,提高開發者為AI新一輪發展構建高精度虛擬世界的能力。 ? 通過基于OpenUSD的全新
    發表于 07-30 09:20 ?262次閱讀
    NVIDIA發布適用于<b class='flag-5'>OpenUSD</b>語言、幾何體、物理學和材質的<b class='flag-5'>生成</b><b class='flag-5'>式</b><b class='flag-5'>AI</b>模型與NIM微服務

    NVIDIA發布全新AI和仿真工具以及工作流

    NVIDIA 在本周于德國慕尼黑舉行的機器人學習大會(CoRL)上發布了全新 AI 和仿真工具以及工作流。機器人開發者可以使用這些工具和工作流,大大加快 AI 機器人(包括人形機器人)
    的頭像 發表于 11-09 11:52 ?718次閱讀

    寶馬集團將OpenUSD用于合成數據生成

    通?場景描述,又稱為OpenUSD,是?個開放且可擴展的?態系統,?于在 3D 世界中描述、合成、模擬和協作。
    的頭像 發表于 11-20 10:22 ?567次閱讀

    AI工作流自動化是做什么的

    AI工作流自動化是指利用人工智能技術,對工作流程中的重復性、規則明確的任務進行自動化處理的過程。那么,AI工作流自動化是做什么的呢?接下來,
    的頭像 發表于 01-06 17:57 ?601次閱讀