Omniverse Replicator环境配置和使用说明

这篇具有很好参考价值的文章主要介绍了Omniverse Replicator环境配置和使用说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Omniverse Replicator使用说明

本教程将介绍Omniverse Replicator的环境配置和使用说明, 参加Sky Hackathon的同学可以参考本教程来合成训练数据集.

1. Omniverse环境配置

NVIDIA Omniverse 可以在任何搭载了 RTX 的设备上运行。为了获得理想性能,我们建议使用显存不低于 8GB 的 GeForce RTX 3070 或 NVIDIA RTX A4000 显卡。

组成部分 最低规格
支持的操作系统 Windows 11/ Windows 10(64 位 版本 1909 及更高版本)
CPU Intel I7 /AMD Ryzen 2.5 GHz 或更高
CPU Core 核心数 4 个或更多
RAM 16Gb 或更多
存储 500Gb SSD 或更多
GPU 任何 RTX GPU
VRAM 6Gb 或更多
最低 视频驱动版本 单击 此处,查看新版驱动

Omniverse中的应用需要GPU和安装驱动, 如果您已安装则无需重复操作.

如果您未安装, 请参考:

  • Windows: https://blog.csdn.net/kunhe0512/article/details/124331221
  • Linux: https://blog.csdn.net/kunhe0512/article/details/125061911

您可能需要根据最新版本调整上面文章中的步骤

下面的步骤以Windows 10系统为例

1.a.安装Omniverse Launcher

1.a.1.在下面的地址下载Omniverse Launcher

https://www.nvidia.com/en-us/omniverse/download/

Omniverse Replicator环境配置和使用说明

1.a.2.安装Omniverse Launcher

双击下载omniverse-launcher-win.exe, 按照要求安装.

1.a.3.登录

如果您没有账号, 请创建账号. 如果您已经有账号, 登录Omniverse Launcher

Omniverse Replicator环境配置和使用说明

1.b 安装Omniverse CODE

在EXCHANGE中找到CODE, 点击并安装.

Omniverse Replicator环境配置和使用说明

安装完之后, 在LIBRARY页面中选择CODE并加载

Omniverse Replicator环境配置和使用说明

当出现以下页面, 意味着安装成功了

Omniverse Replicator环境配置和使用说明

注意: 这里一定要等到RTX Loading字样消失在操作CODE, 否则可能会出现卡顿或者程序以外关闭

2. Omniverse Code介绍

Omniverse Code是我们生成图像数据集主要操作的工具, 我们使用的Replicator也是可以在里面操作的一个扩展库.

您可以在Omniverse Code里面输入准备好的代码, 然后生成您想创建的场景, 并通过Replicator合成训练数据集

下面是Omniverse Code的页面展示:

Omniverse Replicator环境配置和使用说明

注意:在每次生成生成一个新的场景是, 需要点击左上角的File -> New -> Don’t Save. 连续更新代码, 然后点击Run(Ctrl + Enter)可能会出现程序意外关闭.

3.使用Omniverse Code/Replicator生成场景并合成图像数据集

  1. 打开Omniverse Code
  2. 在Script Editor里面输入以下代码:
# import replicator envirnoment 
import omni.replicator.core as rep

# setup random view range for camera: low point, high point
sequential_pos = [(-800, 220, -271),(800, 220,500)]

# position of look-at target
look_at_position = (-212, 78, 57)


# setup working layer 
with rep.new_layer():

# define 3d models: usd format file source link, class, initial position  
        WORKSHOP = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/ArchVis/Industrial/Buildings/Warehouse/Warehouse01.usd'
        CONVEYOR = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/DigitalTwin/Assets/Warehouse/Equipment/Conveyors/ConveyorBelt_A/ConveyorBelt_A23_PR_NVD_01.usd'
        BOX1     = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/ArchVis/Industrial/Containers/Cardboard/Cardbox_A3.usd'
        BOX2     = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/ArchVis/Industrial/Containers/Cardboard/Cardbox_B3.usd'
        BOX3     = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/ArchVis/Industrial/Containers/Cardboard/Cardbox_C3.usd'
        BOX4     = 'http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/ArchVis/Industrial/Containers/Cardboard/Cardbox_D3.usd'
        workshop = rep.create.from_usd(WORKSHOP)
        conveyor1 = rep.create.from_usd(CONVEYOR)
        conveyor2 = rep.create.from_usd(CONVEYOR)
        box1 = rep.create.from_usd(BOX1,semantics=[('class', 'box')])
        box2 = rep.create.from_usd(BOX2,semantics=[('class', 'box')])
        box3 = rep.create.from_usd(BOX3,semantics=[('class', 'box')])
        box4 = rep.create.from_usd(BOX4,semantics=[('class', 'box')])
       
        with workshop:
            rep.modify.pose(
                position=(0,0,0),
                rotation=(0,-90,-90)
                )
        with conveyor1:
            rep.modify.pose(
                position=(-40,0,0),
                rotation=(0,-90,-90)
                )
        with conveyor2:
            rep.modify.pose(
                position=(-40,0,100),
                rotation=(-90,90,0)
                )        
                              
        with box1:
            rep.modify.pose(
                position=(-350,78,57),
                rotation=(0,-90,-90),
                scale=rep.distribution.uniform(1,1)
                )
        with box2:
            rep.modify.pose(
                position=(-100,78,57),
                rotation=(0,-90,-90),
                scale=rep.distribution.uniform(1,1)
                )   
        with box3:
            rep.modify.pose(
                position=(100,78,57),
                rotation=(0,-90,-90),
                scale=rep.distribution.uniform(1,1)
                )  
        with box4:
            rep.modify.pose(
                position=(200,78,57),
                rotation=(0,-90,-90),
                scale=rep.distribution.uniform(1,1)
                ) 

# define lighting function
        def sphere_lights(num):
               lights = rep.create.light(
                     light_type="Sphere",
                     temperature=rep.distribution.normal(3500, 500),
                     intensity=rep.distribution.normal(15000, 5000),
                     position=rep.distribution.uniform((-300, -300, -300), (300, 300, 300)),
                     scale=rep.distribution.uniform(50, 100),
                     count=num
               )
               return lights.node
        rep.randomizer.register(sphere_lights)

# define function to create random position range for target  
        def get_shapes():
            shapes = rep.get.prims(semantics=[('class', 'box')])
            with shapes:
                rep.modify.pose(
                    position=rep.distribution.uniform((0, -50, 0), (0, 50, 0)))
            return shapes.node
        rep.randomizer.register(get_shapes)

# Setup camera and attach it to render product
        camera = rep.create.camera(position=sequential_pos[0], look_at=look_at_position)
        render_product = rep.create.render_product(camera, resolution=(512, 512))

        with rep.trigger.on_frame(num_frames=100): #number of picture
               rep.randomizer.sphere_lights(4)    #number of lighting source 
               rep.randomizer.get_shapes()
               with camera:
                        rep.modify.pose(
                          position=rep.distribution.uniform(sequential_pos[0],sequential_pos[1]), look_at=look_at_position)

# Initialize and attach writer for Kitti format data 
        writer = rep.WriterRegistry.get("KittiWriter")
        writer.initialize(
                 output_dir="D:/sdg", 
                 bbox_height_threshold=25,
                 fully_visible_threshold=0.95,
                 omit_semantic_type=True
               )
        writer.attach([render_product])
        rep.orchestrator.preview()

  1. 单击左下角的Run(Ctrl + Enter)按钮

  2. 选择上面的’Replicator -> Start’

  3. 在D:/sdg文件夹内查看生成的内容. 图片在Camera/rgb文件夹内, label把文件在Camera/object_detection文件夹内, 如下图所示
    Omniverse Replicator环境配置和使用说明

  4. 完成上述步骤, 说明您已经可以成功使用Omniverse Replicator来合成数据文章来源地址https://www.toymoban.com/news/detail-455542.html

到了这里,关于Omniverse Replicator环境配置和使用说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用nginx进行负载均衡配置详细说明

    nginx应用场景之一就是负载均衡。在访问量较多的时候,可以通过负载均衡,将多个请求分摊到多台服务器上,相当于把一台服务器需要承担的负载量交给多台服务器处理,进而提高系统的吞吐率;另外如果其中某一台服务器挂掉,其他服务器还可以正常提供服务,以此来提

    2024年02月07日
    浏览(35)
  • Git忽略提交(.gitignore文件)配置规则使用说明

     目录 前言 一、使用说明 Git是一个广泛使用的分布式版本控制系统,它允许开发者在本地提交和跟踪代码更改,然后将这些更改传输到远程仓库。在Git中, .gitignore 文件用于指定一些特定的文件或文件夹在提交时不被跟踪。这些文件和文件夹不会被Git添加到版本控制系统中

    2024年02月11日
    浏览(41)
  • 21.1 stm32使用LTDC驱动LCD--配置说明

    本文讲解如何配置LTDC驱动LCD的参数配置,以及CubeMx参数配置说明 本文使用的是淘宝买的一块带电容触摸的液晶显示屏:5寸TFT液晶显示屏高清800*480免驱40P通用RGBIPS全视角彩屏GT911 说实话,价格还是相对挺便宜的,值得入手,哈哈哈 这款屏幕采用的是RGB888格式 这里面也就是常

    2024年02月05日
    浏览(37)
  • GNSS定位模块串口配置说明,亲测(使用ATGM332D模块,通用)

    CAS00-设置保存配置指令 拓展指令只有当前上电有效,重启后恢复默认。如果想要配置一次永久生效,可使用该指令。 例:$PCAS00*01 0x24,0x50,0x43,0x41,0x53,0x30,0x30,0x2A,0x30,0x31, 0x0D,0x0A CAS01-设置串口波特率 两种方案: 1、先用9600波特率配置波特率,然后重新初始化串口即可; 2、生

    2023年04月11日
    浏览(40)
  • 基于Python开发的DIY字符画程序(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

    本项目是一套基于Python开发的DIY字符画程序,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 本系统的软件开发及运

    2024年02月09日
    浏览(35)
  • 基于Python开发的玛丽大冒险小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

    本项目是一套基于Python开发的玛丽冒险小游戏程序,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 本系统的软件开发及运行环境

    2024年02月09日
    浏览(34)
  • springboot 集成 Swagger2 配置以及常用注解的说明和使用 ( 超详细)

    一、注解的使用 和 说明 结构化说明如下: @Api:用在请求的类上,表示对类的说明      tags=\\\"说明该类的作用,可以在UI界面上看到的注解\\\"    (也就是给类取别名)     value=\\\"该参数没什么意义,在UI界面上也看到,所以不需要配置\\\"    @ApiOperation:用在请求的方法上,说

    2024年02月03日
    浏览(34)
  • nginx绑定tomcat与tomcat联合使用的配置(nginx反向代理tomcat的配置说明)

    nginx反向代理tomcat通信配置 (内容来自网上,注解部分才是原创)   切记: url的意思就是 unifed resource location  统一资源定位   其中location就是定位的意思 所以上文中的location就有 对应匹配的 url 标识的资源的相关配置之意 本文目的仅仅供学习交流,无任何商业目的,主要

    2024年02月07日
    浏览(34)
  • ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明

    TP 框架提供的内置类: thinkmiddlewareAllowCrossDomain::class 开启跨域 今天,在用ThinkPHP8做前后端分离配置跨域时,发现了一个小小的问题,就是我这块儿微信小程序发送token是完全正常的,但是使用web端网页发送请求它就会出现下面的错误 Access to XMLHttpRequest at \\\'http://robin.com/Art

    2024年02月07日
    浏览(24)
  • 【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年04月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包