在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何使用NVIDIA Isaac平臺和TAO框架解決數據挑戰和模型創建挑戰

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-05-13 10:48 ? 次閱讀

從制造汽車到幫助外科醫生和送披薩,機器人不僅逐漸自動化,而且將完成任務的速度提高了許多倍。隨著人工智能的出現,機器人可以更加智能化,更好地感知周圍環境,并在最少的人工干預下做出決策。

例如,一個用于倉庫的自主機器人將有效載荷從一個地方移動到另一個地方。它必須感知周圍的自由空間,檢測并避免路徑中的任何障礙,并做出“即時”決定,選擇路徑。

而這就是挑戰所在,這意味著需要構建一個由人工智能模型支持的應用程序,該模型經過訓練和優化,可以在這種環境下工作。訓練和優化模型需要收集大量高質量的數據,并開發一個高度精確的人工智能模型來驅動應用程序。這些是將應用程序從實驗室轉移到生產環境的關鍵障礙。

在這篇文章中,我們將展示如何使用 NVIDIA Isaac 平臺TAO 框架解決數據挑戰和模型創建挑戰。NVIDIAIsaac Sim是一個機器人模擬應用程序,用于創建虛擬環境和生成合成數據。NVIDIA TAO 工具套件是一種低代碼人工智能模型開發解決方案,與從頭開始的訓練相比,它具有內置的轉移學習功能,可以用一小部分數據微調預訓練模型。最后,使用 NVIDIA Isaac ROS 將優化模型部署到機器人上,并將其應用于現實世界。

fc854a4e-d1de-11ec-bce3-dac502259ad0.png

▲圖 1 概述使用 NVIDIA Isaac Sim 對 TAO 模型進行合成數據訓練的工作流程,以適應現實世界的用例

先決條件

開始之前,請確認擁有以下用于訓練和部署的資源:

  • NVIDIA GPU 驅動程序版本:> 470

  • NVIDIA Docker:2.5.0-1

  • NVIDIA GPU 云端或內部:

  • NVIDIA A100

  • NVIDIA V100

  • NVIDIA T4

  • NVIDIA RTX 30 × 0 ( NVIDIA Isaac 也支持 NVIDIA RTX 20 系列)

  • NVIDIA Jetson Xavier 或 Jetson Xavier NX

  • NVIDIA TAO 工具套件:4.22 。

  • NVIDIA Isaac Sim 和 NVIDIA Isaac ROS

使用 NVIDIA IsaacSim 生成合成數據

在本節中,我們將概述在 NVIDIA Isaac Sim 中生成合成數據的步驟。Synthetic Data 是計算機模擬或算法生成的注釋信息。當真實數據難以獲取或成本高昂時,合成數據可以幫助解決數據難題。

NVIDIA Isaac Sim 提供三種生成合成數據的方法:

在這個實驗中,我們選擇使用 Python 腳本生成具有領域隨機化的數據。Domain randomization 改變在模擬環境中定義場景的參數,包括場景中各種對象的位置、比例、模擬環境的照明、對象的顏色和紋理等。

添加域隨機化以同時改變場景的多個參數,通過將其暴露于現實世界中看到的各種域參數,提高了數據集質量并增強了模型的性能。

本例中使用了兩個環境來訓練數據:一個倉庫和一個小房間。接下來的步驟包括向場景中添加符合物理定律的對象。我們使用了 NVIDIA Isaac Sim 中的示例對象,其中還包括 YCB dataset 中的日常對象。

fc9fa812-d1de-11ec-bce3-dac502259ad0.png

圖 2 簡單房間和倉庫環境中的模擬圖像示例

安裝 NVIDIA Isaac Sim 后 Isaac Sim App選擇器提供了一個在文件夾中打開的選項,其中包含一個python.sh 腳本。這將用于運行數據生成的腳本。

按照下方列出的步驟生成數據。

  1. 選擇環境并將攝影機添加到場景中:

def add_camera_to_viewport(self): # Add a camera to the scene and attach it to the viewport self.camera_rig = UsdGeom.Xformable(create_prim("/Root/CameraRig", "Xform")) self.camera = create_prim("/Root/CameraRig/Camera", "Camera")

2. 添加語義 ID:

def add_floor_semantics(self): # Get the floor from the stage and update its semantics stage = kit.context.get_stage() floor_prim = stage.GetPrimAtPath("/Root/Towel_Room01_floor_bottom_218") add_update_semantics(floor_prim, "floor")

3. 在具有物理特性的場景中添加對象:

def load_single_asset(self, object_transform_path, object_path, usd_object): # Random x, y points for the position of the USD object translate_x , translate_y = 150 * random.random(), 150 * random.random() # Load the USD Object try: asset = create_prim(object_transform_path, "Xform", position=np.array([150 + translate_x, 175 + translate_y, -55]), orientation=euler_angles_to_quat(np.array([0, 0.0, 0]), usd_path=object_path) # Set the object with correct physics utils.setRigidBody(asset, "convexHull", False)

4. 初始化域隨機化組件:

def create_camera_randomization(self): # A range of values to move and rotate the camera camera_tranlsate_min_range, camera_translate_max_range = (100, 100, -58), (220, 220, -52) camera_rotate_min_range, camera_rotate_max_range = (80, 0, 0), (85, 0 ,360) # Create a Transformation DR Component for the Camera self.camera_transform = self.dr.commands.CreateTransformComponentCommand( prim_paths=[self.camera.GetPath()], translate_min_range=camera_tranlsate_min_range, translate_max_range=camera_translate_max_range, rotate_min_range=camera_rotate_min_range, rotate_max_range=camera_rotate_max_range, duration=0,5).do()

確保模擬中的攝影機位置和屬性與真實世界的屬性相似。添加語義ID對于生成正確的自由空間分割掩碼是非常重要的。如前所述,應用領域隨機化來幫助提高模型的 sim2real 性能。

NVIDIA Isaac Sim 說明中提供的離線數據生成示例是我們腳本的起點。對這個用例進行了更改,包括使用物理向場景添加對象、更新域隨機化,以及添加語義。我們已經為數據集生成了近 30,000 張帶有相應分割模板的圖像。

使用 TAO 工具套件進行訓練、適應和優化

在本節中,您將使用 TAO 工具套件生成的合成數據對模型進行微調。為了完成這項任務,我們選擇了 NGC 提供的 UNET 模型進行實驗。

!ngc registry model list nvidia/tao/pretrained_semantic_segmentation:*

設置數據、規格文件( TAO 規格)和實驗目錄:

%set_envKEY=tlt_encode%set_envGPU_INDEX=0%set_envUSER_EXPERIMENT_DIR=/workspace/experiments%set_envDATA_DOWNLOAD_DIR=/workspace/freespace_data%set_env SPECS_DIR=/workspace/specs

下一步是選擇模型。

選擇正確的預訓練模型

預訓練人工智能和深度學習模型是在代表性數據集上進行訓練并使用權重和偏差進行微調的模型。與從頭開始的訓練相比,只需使用一小部分數據就可以應用遷移學習,您可以快速輕松地微調預訓練模型。

在預訓練模型領域中,有一些模型執行特定任務,比如檢測人、汽車、車牌等。

我們首先選擇了一個帶有 ResNet10 和 ResNet18 主干的 U-Net 模型。從模型中獲得的結果顯示,在真實數據中,墻和地板合并為一個實體,而不是兩個單獨的實體。即使模型在模擬圖像上的性能顯示出較高的精度,這也是事實。

fcbc927e-d1de-11ec-bce3-dac502259ad0.png

表 1 不同預訓練模型的實驗可從 TAO 的 NGC 平臺獲得

我們用不同的主干和圖像大小進行實驗,觀察延遲( FPS )與準確性之間的權衡。表中所有型號均相同( UNET ),只有 backbones 不同。

fcd6f236-d1de-11ec-bce3-dac502259ad0.png

圖 3 ResNet18 模型的預測。(左)模擬圖像;(右)真實世界的圖像

根據結果,我們顯然需要一個更適合用例的不同模型。我們選擇了 NGC 目錄中提供的 PeopleSemSeg 型號。該模型在“ person ”類的 500 萬個對象上進行了預訓練,數據集由相機高度、人群密度和視野( FOV )組成。該模型還可以將背景和自由空間分割為兩個獨立的實體。

在使用相同的數據集對該模型進行訓練后,平均 IOU 增加了 10% 以上,得到的圖像清楚地顯示了地板和墻壁之間更好的分割。

fd026cb8-d1de-11ec-bce3-dac502259ad0.png

表 2 PeopleSegNet 可訓練模型的實驗

fd20f688-d1de-11ec-bce3-dac502259ad0.png

圖 4 網絡遷移學習的預測結果 PeopleSegTAO 包含合成數據(左)和真實數據(右)的模型

圖 4 顯示了在使用真實數據對 PeopleSeg 模型進行微調之前,從機器人的角度在模擬圖像和真實圖像上識別自由空間。也就是說,使用純 NVIDIA Isaac Sim 數據訓練的模型。

關鍵的一點是,雖然可能有許多經過預訓練的模型可以完成這項任務,但選擇一個最接近當前應用程序的模型是很重要的。這就是 TAO 的特制模型有用的地方。

!tao unet train --gpus=1 --gpu_index=$GPU_INDEX  -e $SPECS_DIR/spec_vanilla_unet.txt  -r $USER_EXPERIMENT_DIR/semseg_experiment_unpruned  -m $USER_EXPERIMENT_DIR/peoplesemsegnet.tlt  -n model_freespace  -k $KEY

訓練模型后,根據驗證數據評估模型性能:

!taounetevaluate--gpu_index=$GPU_INDEX-e$SPECS_DIR/spec_vanilla_unet.txt-m $USER_EXPERIMENT_DIR/semseg_experiment_unpruned/weights/model_freespace.tlt  -o $USER_EXPERIMENT_DIR/semseg_experiment_unpruned/  -k $KEY

當您對 NVIDIA Isaac Sim 數據的模型性能和 Sim2Sim 驗證性能感到滿意時,請刪減模型。

要以最小的延遲運行此模型,請將其優化為在目標 GPU 上運行。有兩種方法可以實現這一點:

  • Pruning :TAO 工具套件中的修剪功能會自動刪減,有效地控制模型的大小。必須重新訓練模型,以恢復修剪過程中損失的精度。

  • Post-training quantization :TAO 工具套件中的另一項功能可以進一步縮小模型尺寸。這將其精度從 FP32 更改為 INT8 ,在不犧牲精度的情況下提高了性能。

首先,刪減模型:

!tao unet prune  -e $SPECS_DIR/spec_vanilla_unet.txt  -m $USER_EXPERIMENT_DIR/semseg_experiment_unpruned/weights/model_freespace.tlt  -o $USER_EXPERIMENT_DIR/unet_experiment_pruned/model_unet_pruned.tlt  -eq union  -pth 0.1  -k $KEY

重新訓練并修剪模型:

!tao unet train --gpus=1 --gpu_index=$GPU_INDEX  -e $SPECS_DIR/spec_vanilla_unet_retrain.txt  -r $USER_EXPERIMENT_DIR/unet_experiment_retrain  -m $USER_EXPERIMENT_DIR/unet_experiment_pruned/model_unet_pruned.tlt  -n model_unet_retrained  -k $KEY

當您對修剪模型的 Sim2Sim 驗證性能感到滿意時,請轉至下一步,對真實數據進行微調。

!tao unet train --gpus=1 --gpu_index=$GPU_INDEX  -e $SPECS_DIR/spec_vanilla_unet_domain_adpt.txt  -r $USER_EXPERIMENT_DIR/semseg_experiment_domain_adpt  -m $USER_EXPERIMENT_DIR/semseg_experiment_retrain/model_unet_pruned.tlt -n model_domain_adapt  -k $KEY

結果

表 1 顯示了未運行和修剪模型之間的結果摘要。最終選擇用于部署的經過修剪和量化的模型比在 NVIDIA Jetson Xavier NX 上測量的原始模型小 17 倍,推理性能快 5 倍。

fd39b330-d1de-11ec-bce3-dac502259ad0.png

表 3 Sim2Sim 和 Sim2Real 的結果

sim 數據的訓練數據集由 25K 個圖像組成,而用于微調的真實圖像的訓練數據僅由 44 個圖像組成。真實圖像的驗證數據集僅包含 56 幅圖像。對于真實世界的數據,我們收集了三種不同室內場景的數據集。模型的輸入圖像大小為 960 × 544。推理性能是使用 NVIDIA TensorRT trtexec 工具進行測量的。

fd56590e-d1de-11ec-bce3-dac502259ad0.png

圖 5 在對真實世界數據進行微調后,機器人真實世界圖像的結果

部署 NVIDIA IsaacROS

在本節中,我們展示了采用經過訓練和優化的模型并使用 NVIDIA Isaac ROS 在 Jetson XavierNX 驅動的 iRobot 的 Create 3 機器人上進行部署的步驟。Create 3 和 NVIDIA Isaac ROS 圖像分割節點均在 ROS2 上運行。

本例使用 /isaac_ros_image_segmentation/isaac_ros_unet GitHub repo 部署空閑空間分段。

fd82ebea-d1de-11ec-bce3-dac502259ad0.png

圖 6 使用 ROS2 中的 rqt _圖像_查看器進行圖像和分割遮罩

(左)在 Create 3 機器人上使用 USB 攝像頭;(右)使用 Isaac ros 圖像分割節點

要使用自由空間分段模型,請從 /NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation GitHub repo 執行以下步驟。

創建 Docker 交互式工作區:

$isaac_ros_common/scripts/run_dev.sh your_ws

克隆所有軟件包的相關項:

  • isaac_ros_dnn_encoders

  • isaac_ros_nvengine_interfaces

  • 推理包(您可以選擇其中一個)

  • isaac_ros_tensor_rt

  • isaac_ros_triton

構建并獲取工作區的源代碼:

$cd/workspaces/isaac_ros-dev$colcon build && . install/setup.bash

從您的工作機器上下載經過訓練的自由空間標識(. etlt )模型:

$scp:

加密的 TLT 模型(. etlt )和格式轉換為 TensorRT 引擎計劃。對 INT8 模型運行以下命令:

tao converter -k tlt_encode  -e trt.fp16.freespace.engine  -p input_1,1x3x544x960,1x3x544x960,1x3x544x960  unet_freespace.etlt

按照以下步驟進行演練:Isaac ROS 圖像分割 :

  • 將 TensorRT 模型引擎文件保存在正確的目錄中

  • 創建 config.pbtxt.

  • 更新 isaac_ros_unet 啟動文件中的模型引擎路徑和名稱

  • 重新生成并運行以下命令:

$colconbuild--packages-up-toisaac_ros_unet&&.install/setup.bash$ ros2 launch isaac_ros_unet isaac_ros_unet_triton.launch.py

總結

在本文中,我們向您展示了一個端到端的工作流程,首先是在 NVIDIA Isaac Sim 中生成合成數據,使用 TAO 工具套件進行微調,然后使用 NVIDIA Isaac ROS 部署模型。

NVIDIA Isaac Sim 和 TAO Toolkit 都是抽象出人工智能框架復雜性的解決方案,使您能夠在生產中構建和部署人工智能驅動的機器人應用程序,而無需任何人工智能專業知識。

原文標題:使用NVIDIA Isaac Sim和NVIDIA TAO開發和部署人工智能驅動的機器人

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

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

    關注

    211

    文章

    28534

    瀏覽量

    207603
  • NVIDIA
    +關注

    關注

    14

    文章

    5038

    瀏覽量

    103307
  • TAO
    TAO
    +關注

    關注

    0

    文章

    10

    瀏覽量

    7001

原文標題:使用NVIDIA Isaac Sim和NVIDIA TAO開發和部署人工智能驅動的機器人

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

收藏 人收藏

    評論

    相關推薦

    NVIDIA推出Isaac GR00T Blueprint

    用于合成數據Isaac GR00T 工作流以及 NVIDIA Cosmos 世界基礎模型,為通用人形機器人的開發注入強大動力。
    的頭像 發表于 01-09 11:13 ?195次閱讀

    堅米智能借助NVIDIA Isaac Lab加速四足機器人開發

    堅米智能(中堅科技)借助NVIDIA Isaac Lab平臺,通過NVIDIA Isaac Sim的 3D 生成與建模技術構建高度逼真的虛擬
    的頭像 發表于 12-29 14:01 ?182次閱讀

    NVIDIA Isaac Sim滿足模型的多樣化訓練需求

    光輪智能借助?NVIDIA Isaac Sim,通過 3D 生成與建模技術構建高度逼真的虛擬場景,將現實世界的復雜場景抽象并轉化為高質量的訓練數據源,從而更有效地滿足模型的多樣化訓練需
    的頭像 發表于 11-23 14:55 ?578次閱讀

    NVIDIA與谷歌量子AI部門達成合作

    NVIDIA CUDA-Q 平臺使谷歌量子 AI 研究人員能夠為其量子計算機創建大規模的數字模型,以解決設計中面臨的各種挑戰
    的頭像 發表于 11-20 09:39 ?279次閱讀

    MCT8316A-設計挑戰和解決方案應用說明

    電子發燒友網站提供《MCT8316A-設計挑戰和解決方案應用說明.pdf》資料免費下載
    發表于 09-13 09:52 ?0次下載
    MCT8316A-設計<b class='flag-5'>挑戰和</b>解決方案應用說明

    MCF8316A-設計挑戰和解決方案應用說明

    電子發燒友網站提供《MCF8316A-設計挑戰和解決方案應用說明.pdf》資料免費下載
    發表于 09-13 09:51 ?1次下載
    MCF8316A-設計<b class='flag-5'>挑戰和</b>解決方案應用說明

    TMCS110x 布局挑戰和最佳實踐

    電子發燒友網站提供《TMCS110x 布局挑戰和最佳實踐.pdf》資料免費下載
    發表于 09-12 09:23 ?0次下載
    TMCS110x 布局<b class='flag-5'>挑戰和</b>最佳實踐

    NVIDIA為AI城市挑戰賽構建合成數據

    在一年一度的 AI 城市挑戰賽中,來自世界各地的數百支參賽隊伍在 NVIDIA Omniverse 生成的基于物理學的數據集上測試了他們的 AI 模型
    的頭像 發表于 09-09 10:04 ?506次閱讀

    NVIDIA提供一套服務、模型以及計算平臺 加速人形機器人發展

    的發展,NVIDIA 于今日宣布,為全球領先的機器人制造商、AI 模型開發者和軟件制造商提供一套服務、模型以及計算平臺,以開發、訓練和構建下一代人形機器人。 整套產品包括用于機器人仿真
    的頭像 發表于 07-31 10:41 ?706次閱讀

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發展

    觀眾展示了用于人形機器人學習的通用基礎模型 Project GR00T(代表通用機器人 00 技術)。Project GR00T 利用 NVIDIA Isaac 機器人平臺的各種工具來
    的頭像 發表于 06-04 18:00 ?7738次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> 機器人<b class='flag-5'>平臺</b>利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發展

    NVIDIA Isaac Manipulator助力讓下一代機器人技術觸手可及

    兩家公司在芝加哥 Automate 展會上宣布將圍繞 NVIDIA AI、Isaac Manipulator 和 Intrinsic 平臺的使用展開合作。
    的頭像 發表于 05-13 14:15 ?907次閱讀

    NVIDIA Isaac機器人平臺升級,加速AI機器人技術革新

    NVIDIA Isaac機器人平臺近期實現重大升級,通過引入最新的生成式AI技術和先進的仿真技術,顯著加速了AI機器人技術的發展步伐。該平臺正不斷擴展其基礎
    的頭像 發表于 03-27 10:36 ?710次閱讀

    NVIDIA入局人形機器人!Isaac平臺迎來重要更新

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發展。
    的頭像 發表于 03-26 09:07 ?1100次閱讀
    <b class='flag-5'>NVIDIA</b>入局人形機器人!<b class='flag-5'>Isaac</b><b class='flag-5'>平臺</b>迎來重要更新

    Edge Impulse發布新工具,助 NVIDIA 模型大規模部署

    借助 Edge Impulse 和 NVIDIA TAO 工具包的協同效應,工程師得以快速構建并部署至邊緣優化硬件(如上述型號)的計算機視覺模型。該平臺還支持用戶運用經由 GPU 優化
    的頭像 發表于 03-25 16:00 ?776次閱讀

    汽車網絡安全-挑戰和實踐指南

    汽車網絡安全-挑戰和實踐指南
    的頭像 發表于 02-19 16:37 ?548次閱讀
    汽車網絡安全-<b class='flag-5'>挑戰和</b>實踐指南
    主站蜘蛛池模板: 日本三级a| 午夜黄色网址| 日本福利网址| 国产成人亚洲毛片| 99香蕉国产| 欧美射射射| 有坂深雪在线| 激情六月天| 日韩二级| 四虎中文| 奇米99| 奇米影视婷婷| 五月天婷五月天综合网在线| 狠狠色丁香婷婷综合欧美| 日本系列 1页 亚洲系列| 欧美精品成人久久网站| 色媚网| 午夜爱爱网站| 伊人成伊人成综合网2222| 嗯!啊!使劲用力在线观看| 亚洲一区日韩一区欧美一区a| 1024 在线观看视频免费| 国内精品久久久久影院免费| 人人艹人人草| 欧美综合色区| 五月天婷婷在线免费观看| 人人人人草| 啪啪午夜| tom影院亚洲国产日本一区| 美女扒开尿口给男人爽免费视频| tube69hdxxxx日本| 日本69xxx18hd| 女性私密部位扒开的视频| 午夜三级a三点| 欧美三级在线视频| 免费人成网址在线观看国内| 欧美日韩精品一区二区另类| www黄色大片| 午夜禁片| 色 ed2k| 一区二区三区四区免费视频|