亚洲精品亚洲人成在线观看下载-亚洲精品色情app在线下载观看-欧美孕妇变态孕交粗暴-中国农村熟妇性视频-真人作爱免费视频

工業焊接機器人
閃兔分揀機器人,使用NVIDIA ISAAC和TAO開發AI驅動的機器人
2022-06-01
全自動無人分揀機器人

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

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

物流中心自動分揀機器人

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

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

圖1。概述使用NVIDIAISAACSim對TAO工具包模型進行合成數據培訓的工作流程,以適應現實世界的用例。

先決條件

開始之前,您必須擁有以下用于培訓和部署的資源:

NVIDIAGPU驅動程序版本:》470

NVIDIADocker:2.5.0-1

NVIDIAGPU云端或內部:

NVIDIAA100

NVIDIAV100

NVIDIAT4

NVIDIARTX30×0(NVIDIAISAAC是也支持NVIDIARTX20系列)

NVIDIAJetsonXavier或JetsonXavierNX

NVIDIATAO工具包:4.22。有關更多信息,請參閱TAO工具包快速入門指南

NVIDIAISAACSim和ISAACROS

使用NVIDIAISAACSim生成合成數據

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

NVIDIAISAACSim提供三種生成合成數據的方法:

復制器作曲家

快遞自動分揀機器人價格

Python腳本

小型快遞分揀機器人多少錢一臺

GUI

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

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

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

安裝NVIDIAISAACSim卡后ISAACSim卡應用程序選擇器為包含腳本的在文件夾中打開提供一個選項。這用于運行用于生成數據的腳本。

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

defadd_camera_to_viewport(self):#Addacameratothesceneandattachittotheviewport_rig=(create_prim("/Root/CameraRig","Xform"))=create_prim("/Root/CameraRig/Camera","Camera")

將語義ID添加到樓層:

defadd_floor_semantics(self):#Getthefloorfromthestageandupdateitssemanticsstage=_stage()floor_prim=("/Root/Towel_Room01_floor_bottom_218")add_update_semantics(floor_prim,"floor")

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

自動分揀機器人應用
defload_single_asset(self,object_transform_path,object_path,usd_object):#Randomx,ypointsforthepositionoftheUSDobjecttranslate_x,translate_y=150*(),150*()#LoadtheUSDObjecttry:asset=create_prim(object_transform_path,"Xform",position=([150+translate_x,175+translate_y,-55]),orientation=euler_angles_to_quat(([0,0.0,0]),usd_path=object_path)#Settheobjectwithcorrectphysics(asset,"convexHull",False)

初始化域隨機化組件:

defcreate_camera_randomization(self):#Arangeofvaluestomoveandrotatethecameracamera_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)#CreateaTransformationDRComponentfortheCamera_transform=(prim_paths=[()],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性能。

顏色分揀機器人的用處

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

使用TAO工具包進行培訓、調整和優化

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

!ngcregistrymodellistnvidia/tao/pretrained_semantic_segmentation:*

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

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

下一步是選擇模型。

選擇正確的預訓練模型

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

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

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

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

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

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

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

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

!taounettrain--gpus=1--gpu_index=$GPU_INDEX\-e$SPECS_DIR/spec_vanilla_\-r$USER_EXPERIMENT_DIR/semseg_experiment_unpruned\-m$USER_EXPERIMENT_DIR/\-nmodel_freespace\-k$KEY

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

!taounetevaluate--gpu_index=$GPU_INDEX-e$SPECS_DIR/spec_vanilla_\-m$USER_EXPERIMENT_DIR/semseg_experiment_unpruned/weights/model_\-o$USER_EXPERIMENT_DIR/semseg_experiment_unpruned/\-k$KEY

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

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

Pruning:TAO工具包中的修剪功能會自動刪除不需要的層和神經元,有效地減小模型的大小。必須重新訓練模型,以恢復修剪過程中丟失的精度。

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

首先,刪減模型:

!taounetprune\-e$SPECS_DIR/spec_vanilla_\-m$USER_EXPERIMENT_DIR/semseg_experiment_unpruned/weights/model_\-o$USER_EXPERIMENT_DIR/unet_experiment_pruned/model_unet_\-equnion\-pth0.1\-k$KEY

重新訓練并修剪模型:

!taounettrain--gpus=1--gpu_index=$GPU_INDEX\-e$SPECS_DIR/spec_vanilla_unet_\-r$USER_EXPERIMENT_DIR/unet_experiment_retrain\-m$USER_EXPERIMENT_DIR/unet_experiment_pruned/model_unet_\-nmodel_unet_retrained\-k$KEY

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

!taounettrain--gpus=1--gpu_index=$GPU_INDEX\-e$SPECS_DIR/spec_vanilla_unet_domain_\-r$USER_EXPERIMENT_DIR/semseg_experiment_domain_adpt\-m$USER_EXPERIMENT_DIR/semseg_experiment_retrain/model_unet_\-nmodel_domain_adapt\-k$KEY

后果

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

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

部署NVIDIAISAACROS

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

快遞分揀機器人有哪些難點

本例使用/isaac_ros_image_segmentation/isaac_ros_unetGitHubrepo部署空閑空間分段。

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

創建Docker交互式工作區:

$isaac_ros_common/scripts/run_your_ws

克隆所有包依賴項:

isaac_ros_dnn_encodersisaac_ros_nvengine_interfaces推理包isaac_ros_tensor_rtisaac_ros_triton

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

$cd/workspaces/isaac_ros-dev$colconbuild.install/

從您的工作機器下載經過培訓的自由空間標識模型:

$scp:

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

taoconverter-ktlt_encode\-e\-pinput_1,1x3x544x960,1x3x544x960,1x3x544x960\unet_

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

將TensorRT模型引擎文件保存在正確的目錄中。創建更新isaac_ros_unet啟動文件中的模型引擎路徑和名稱。重新生成并運行以下命令:
$colconbuild--packages-up-toisaac_ros_unet.install/$ros2launchisaac_ros_unetisaac_ros_unet_

總結

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

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

AmeyKulkarni是NVIDIA的開發技術工程師,專注于將深度學習解決方案有效地部署到邊緣。在2019年加入NVIDIA之前,他完成了馬里蘭大學計算機工程博士學位。他的研究興趣是在嵌入式平臺上部署數字信號處理、計算機視覺和深度學習系統。

RishabhChadha是NVIDIA的嵌入式工程實習生——AI,他專注于為NVIDIAJetson平臺集成深度學習和機器人技術框架。他將于2021年畢業于伍斯特理工學院,獲得機器人學碩士學位。他的興趣主要包括深度學習、醫學成像和機器人感知。DanielLee是NVIDIA的產品經理,專注于專業可視化解決方案的軟件。

審核

菜鳥agv分揀機器人鋁模板分揀機器人北京順豐快遞分揀機器人
主站蜘蛛池模板: 久久久久久亚洲精品a片成人| 国产精品午夜无码体验区| 亚洲尤码不卡av麻豆| 国产亚洲日韩在线播放更多| 爆乳护士一区二区三区在线播放| 亚洲va中文字幕无码一区| 国内精品伊人久久久久7777| 亚洲欧美第一成人网站7777| 18禁美女裸体网站无遮挡| 国产午夜成人免费看片app| 少妇又色又紧又爽又刺激视频| 久久精品人妻一区二区蜜桃| 亚洲2022国产成人精品无码区| 一本加勒比hezyo无码资源网| 精品久久久久国产免费| 国产av电影区二区三区曰曰骚网| 伊人久久无码中文字幕 | 美女扒开尿口让男人桶| 色婷婷六月亚洲综合香蕉| 成人精品综合免费视频| 久久婷婷五月综合色奶水99啪| 免费情侣作爱视频| 国产精品无码一本二本三本色| 午夜福利啪啪片| 久久久久久伊人高潮影院| 国产亚洲精品久久午夜玫瑰园 | 草草久久久无码国产专区| 亚洲自偷自偷在线成人网站传媒| 成年在线观看免费视频| 欧美老妇与zozoz0交| 少妇人妻丰满做爰xxx| 国产?少萝??视频| 九九视频免费精品视频| 亚洲国产一区二区三区在观看 | av无码人妻波多野结衣| 国产精品亚洲片在线观看不卡| 中文字幕无码热在线视频| 欧洲日本一线二线三线区本庄铃| 国产精品激情| 春药玩弄少妇高潮吼叫| 噜噜噜亚洲色成人网站|