Omniverse合成数据生成【城市交通场景】

2023-11-23 12:20

本文主要是介绍Omniverse合成数据生成【城市交通场景】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智慧城市是城市生活的未来。 然而,它们可能给城市规划者带来各种挑战,尤其是在交通领域。 为了取得成功,城市的各个方面—从环境和基础设施到商业和教育—必须在功能上整合。

这可能很困难,因为单独管理交通流量是一个复杂的问题,充满了拥堵、事故应急响应和排放等挑战。

为了应对这些挑战,开发人员正在创建具有现场可编程性和灵活性的人工智能软件。 这些软件定义的物联网解决方案可以为交通管理、车牌识别、智能停车和事故检测等实时环境提供可扩展、可立即部署的产品。

尽管如此,构建有效的人工智能模型说起来容易做起来难。 遗漏值、重复示例、错误标签和错误特征值是训练数据的常见问题,可能导致模型不准确。 对于自动驾驶汽车来说,不准确的结果可能是危险的,还可能导致交通系统效率低下或城市规划不良。

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 

1、实时城市交通的数字孪生

NVIDIA Metropolis 合作伙伴、端到端 AI 工程公司 SmartCow 在 NVIDIA Omniverse 上创建了交通场景的数字孪生。 这些数字孪生生成合成数据集并验证人工智能模型的性能。

该团队通过使用 NVIDIA Omniverse Replicator 生成合成数据,解决了由于缺乏足够数据来构建优化的 AI 训练管道而导致的常见挑战。

所有 Omniverse 扩展的基础是通用场景描述,称为 OpenUSD。 USD 是一种功能强大的交换工具,具有高度可扩展的属性,虚拟世界就建立在其基础上。 智慧城市的数字孪生依赖于高度可扩展和可互操作的 USD 功能来实现准确模拟现实世界的大型高保真场景。

Omniverse Replicator 是 Omniverse 平台的核心扩展,使开发人员能够以编程方式生成带注释的合成数据,以引导 AI 模型感知的训练。 当真实数据集有限或难以获取时,合成数据特别有用。

通过使用数字孪生,SmartCow 团队生成了准确代表现实世界交通场景和违规情况的合成数据。 这些合成数据集有助于验证人工智能模型并优化人工智能训练管道。

2、构建车牌检测扩展

智能交通管理系统面临的最重大挑战之一是车牌识别。 开发一个适用于具有不同规则、法规和环境的多个国家和城市的模型需要多样化且强大的训练数据。 为了为模型提供充足且多样化的训练数据,SmartCow 在 Omniverse 中开发了一个扩展来生成合成数据。

Omniverse 中的扩展是可重用的组件或工具,可提供强大的功能来增强管道和工作流程。 在 Omniverse Kit 中构建扩展后,开发人员可以轻松地将其分发给客户,以便在 Omniverse USD Composer、Omniverse USD Presenter 和其他应用程序中使用。

SmartCow 的扩展名为车牌合成生成器 (LP-SDG),它使用环境随机化器和物理随机化器来使合成数据集更加多样化和真实。

环境随机发生器模拟数字孪生环境中的照明、天气和其他因素(例如雨、雪、雾或灰尘)的变化。 物理随机发生器模拟可能影响模型识别车牌号码的能力的划痕、污垢、凹痕和变色。

3、用Omniverse Replicator 生成合成数据

数据生成过程从在 Omniverse 中创建 3D 环境开始。 Omniverse 中的数字孪生可用于许多模拟场景,包括生成合成数据。 最初的 3D 场景是由 SmartCow 的内部技术艺术家构建的,确保数字孪生尽可能与现实相匹配。

生成场景后,将使用域随机化来改变光源、纹理、相机位置和材质。 整个过程是使用内置的 Omniverse Replicator API 以编程方式完成的。

生成的数据与边界框标注和训练所需的其他输出变量一起导出。

4、模型训练

初始模型使用 3,000 张真实图像进行训练。 目标是了解基线模型性能并验证正确的边界框尺寸和光线变化等方面。

接下来,该团队进行了实验,以比较综合生成的 3,000 个样本、30,000 个样本和 300,000 个样本的数据集的基准。

SmartCow 软件工程师 Natalia Mallia 表示:“凭借 Omniverse 获得的真实感,基于合成数据训练的模型有时会优于基于真实数据训练的模型。” “使用合成数据实际上消除了真实图像训练数据集中自然存在的偏差。”

为了提供准确的基准测试和比较,该团队在对三种大小的综合生成的数据集进行训练时,将数据随机化到一致的参数(例如一天中的时间、划痕和视角)。 真实世界数据不会与合成数据混合进行训练,以保持比较准确性。 每个模型都根据大约 1,000 张真实图像的数据集进行了验证。

SmartCow 的团队将 Omniverse LP-SDG 扩展的训练数据与 NVIDIA TAO 集成,后者是一个低代码 AI 模型训练工具包,利用迁移学习的力量来微调模型。

该团队使用 NGC 目录中提供的预训练车牌检测模型,并使用 TAO 和 NVIDIA DGX A100 系统对其进行微调。

5、使用 NVIDIA DeepStream 进行模型部署

然后使用 NVIDIA DeepStream SDK 将 AI 模型部署到自定义边缘设备上。

然后,他们实施了一个持续学习循环,其中包括从边缘设备收集漂移数据,将数据反馈回 Omniverse Replicator,并合成可重新训练的数据集,这些数据集通过自动标记工具传递并反馈回 TAO 进行训练。

这个闭环管道有助于创建准确有效的人工智能模型,用于自动检测每条车道的交通方向以及任何异常时间停滞的车辆。

6、结束语

用于生成合成数据集和验证人工智能模型性能的数字孪生工作流程是为智慧城市交通构建更有效的人工智能模型的重要一步。 使用合成数据集有助于克服数据集有限的挑战,并提供准确有效的人工智能模型,从而实现高效的交通系统和更好的城市规划。


原文链接:Omniverse合成数据生成 - BimAnt

这篇关于Omniverse合成数据生成【城市交通场景】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417912

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S