在人工智能和计算机视觉中,数据采集成本高、耗时长,并且基于人的标记容易出错。模型的准确性还受到数据不足和不平衡以及改进深度学习模型所需的时间延长的影响。它总是要求在现实世界中重新获取数据。
基于人工智能培训的数据收集、准备和准确可靠的软件解决方案的开发是一个极其艰苦的过程。所需的投资成本抵消了部署该系统的预期收益。
用合成数据代替真实数据进行训练是缩小数据差距、加速模型训练的一种方法 天空发动机 提供了一个 AI 平台,将深度学习转移到虚拟现实中。可以使用模拟生成合成数据,其中合成图像带有可直接用于训练 AI 模型的注释。
合成数据现在可以直接导出到 NVIDIA 迁移学习工具包 ( TLT )上运行, TLT 是一个人工智能训练工具箱,通过抽象出人工智能/ DL 框架的复杂性来简化训练。这使您能够更快地构建生产质量模型,而不需要任何人工智能专业知识。有了 SKY ENGINE AI 平台和 TLT ,您可以快速迭代和构建 AI 。
在这篇文章中,您将学习如何通过获取预先说明的合成数据并在 TLT 上对其进行训练来利用合成数据的威力。我演示了一个简单的检查用例,使用分段来识别电信塔上的天线。
关于天空引擎人工智能方法
SKY ENGINE 推出了一个用于虚拟现实深度学习的全栈 AI 平台,这是下一代用于图像和视频分析应用的主动学习 AI 系统。 SKY ENGINE 人工智能平台可以使用一个专有的、专用的模拟系统生成数据,在这个系统中,图像已经经过注释,可以进行深入学习。
输出数据流可以包括以下任一项:
- 所选模式中的渲染图像或其他模拟传感器数据
- 对象边界框
- 三维边界框
- 语义遮罩
- 二维或三维骨架
- 深度贴图
- 法向量映射
天空引擎人工智能还包括先进的领域适应算法,可以了解真实数据的特点的例子。它们保证了推理过程中任何经过训练的人工智能模型的高质量性能。

天空引擎模拟系统支持物理驱动的传感器模拟(相机、热视觉、红外、激光雷达、雷达等) 传感器数据融合。它与深度学习管道紧密结合,以确保进化。在训练过程中,天空引擎人工智能可以发现模糊的情况,从而降低人工智能模型的准确性。它可以获得更多的图像数据来反映那些深层次学习精度可以瞬间提高的问题情境。天空引擎 AI 通过每一个执行的实验学到了更多。
天空引擎 AI 提供了一个完全实现、测试和优化的深度神经网络花园。提供的模型专用于流行的计算机视觉任务,如目标检测和语义分割。它们还可以作为更复杂的拓扑结构,用于三维位置和姿态估计、三维几何推理或表示学习。
天空引擎人工智能还包括先进的领域适应算法,可以了解实际数据的特点,并确保训练模型推理的性能。天空引擎 AI 不需要复杂的渲染和成像知识,因此入门门槛非常低。它有一个 Python API ,包括大量的帮助程序来快速构建和配置环境。
神经网络优化
SKY ENGINE AI 平台可以生成数据集,并支持深度学习模型的培训,该模型可以使用来自任何来源的输入数据。在 NVIDIA TLT 和 AI 驱动推理中训练 AI 模型的输入流可以有效地包括使用智能手机获得的低质量图像、来自 CCTV 摄像机或安装在无人机上的摄像机的数据。
您可以在云上部署用于电信网络性能优化的分析模块,包括数据存储和多 GPU 扩展。在这个领域,大多数由机器学习驱动的软件项目都无法达到解决方案部署的最后阶段。这可能是因为机器学习能力高度依赖于输入数据的质量。 SKY ENGINE 提供的人工智能模型的开发以及对合成数据的深入培训,是一个具有可预测的项目开发和在多个工业业务流程中保证部署的解决方案。
电信设备检测与分类
计算机视觉的一个常见任务是对感兴趣的设备进行定位和分类。在这篇文章中,我提出了一个基于 MaskRCNN 的 NVIDIA TLT 环境的神经网络优化过程,用于电信塔天线实例的包围盒定位。你使用来自天空引擎 AI 的合成数据来训练 MaskRCNN 模型。高层工作流程如下:
- 生成带注释的合成数据。
- 根据 NVIDIA TLT-MaskRCNN 模型的要求将数据格式转换为 COCO 。
- 配置 NGC 环境和数据预处理。
- 在合成数据上训练和评估 MaskRCNN 模型。
- 使用训练好的人工智能模型对合成和真实的电信塔进行推理。
接下来,请参阅 GitHub 上的 天空引擎 AI Jupyter 笔记本 。
给出了电信塔的真实示例,我使用 SE 呈现引擎创建了一个带注释的合成数据集。
要使用 SKY ENGINE AI 启动标记数据的自动生成并准备数据源对象,必须定义基本工具(如空渲染器上下文)以及合成场景资源所在的路径。
在这个渲染场景中,我随机化了以下内容:
- 给定电信塔上天线的数目
- 光的方向
- 摄像机的位置
- 摄像机的水平视野
- 背景图
在许多项目中, SKY 引擎返回的样本洗牌不够。一个例子是渲染过程遵循摄影机轨迹。因此,我建议在将数据划分为训练集和测试集之前对其进行额外的洗牌。
生成图像后,利用 SKY 引擎的数据输出模块将图像转换为 COCO 格式。这是 NVIDIA TLT 框架所要求的。根据文档准备好配置文件后,可以使用 TensorFlow 后端运行 TLT 预训练掩码 RCNN 模型的培训:
!tlt mask_rcnn train -e $SPECS_DIR/maskrcnn_train_telco_resnet50.txt \ -d $USER_EXPERIMENT_DIR/experiment_telco_anchors \ -k $KEY \ --gpus 1
最后一步,运行一个经过训练的深度学习模型,对真实数据进行推理,以查看该模型是否准确地执行了感兴趣的任务。
!tlt mask_rcnn inference -i $DATA_DIR/valid_images \ -o $USER_EXPERIMENT_DIR/se_telco_maskrcnn_inference_synth \ -e $SPECS_DIR/maskrcnn_train_telco_resnet50.txt \ -m $USER_EXPERIMENT_DIR/experiment_telco_anchors/model.step-20000.tlt \ -l $SPECS_DIR/telco_labels.txt \ -t 0.5 \ -b 1 \ -k $KEY \ --include_mask
图 3 显示了电信天线检测的一些结果。
概括
在本文中,我演示了如何使用 SKY ENGINE 的合成数据,并使用 NVIDIA TLT 对其进行训练和优化,从而减少数据收集和注释工作。我提出了一个用于电信行业的单天空引擎人工智能用例。然而,这个平台打开了更多潜在应用的大门,提供了一些高级功能:
- 自动数据集平衡(主动学习)
- 域适配
- 三维推理的预训练深度学习模型
- 传感器仿真与传感器融合深度学习模型训练
有关更多信息,请参阅 GitHub 上的 天空引擎 AI 解决方案 。有关在 SKY ENGINE AI 平台中开发的更多计算机视觉用例,请参阅以下视频: