使用虚拟合成数据训练对象检测模型

监督式机器学习 (ML) 彻底改变了人工智能,并催生了众多创新产品。然而,对于监督式机器学习,总是需要更大、更复杂的数据集,而收集这些数据集的成本很高。如何确定标签质量?如何确保数据代表生产数据?这个问题的一个令人兴奋的新解决方案,特别是对于目标检测任务,是生成一个大规模的合成数据集。合成数据减轻了获取训练机器学习模型所需的大型标记数据集的挑战。

这篇文章主要介绍如何使用UnrealSynth虚幻合成数据生成器 生成合成数据。

现在,我们将向您展示如何:

  1. 使用 UnrealSynth虚幻合成数据生成器 在新环境中生成所需对象的大型数据集
  2. 使用合成数据集训练对象检测模型
  3. 根据少量实际示例微调此模型。

使用 UnrealSynth虚幻合成数据生成器 生成合成数据集

我们选择使用UnrealSynth虚幻合成数据生成器  来生成检测日常杂货物品的合成数据集。训练此模型需要创建感兴趣对象的 3D 资产、自动创建场景、渲染图像数据以及生成边界框标签。

我们为这个项目的所有 3 个对象创建了 63D 资产扫描,并使用 UnrealSynth虚幻合成数据生成器包自动生成标记数据。如之前的博客文章中所述,我们控制了目标对象的位置和方向,以及每个渲染的背景对象的排列、形状和纹理。此外,我们随机选择了每个渲染图像的照明、物体色调、模糊和噪点。

带有边界框和关联元数据 JSON 的合成数据示例

为了创建我们的环境,我们有两种类型的资产:前台资产和后台资产。前景资产是我们检测到的对象的扫描。相反,背景对象构成了我们的背景或遮挡了我们的目标对象(干扰因素)。

制作这些资产面临着一系列独特的挑战。首先,对于背景和干扰对象,我们需要曝光和改变它们的纹理和色调。其次,前景资产必须是现实的。因此,扫描前景物体需要更多的关注和扫描后的一些修饰。

创建真实世界的数据集

为了确保我们真实世界的数据集是多样化的,我们放置了具有不同照明和背景条件的对象。我们还确保每张照片中的对象集各不相同,并且每张照片中的对象位置、方向和配置都不同。

带有人工注释的边界框标签的真实数据示例

在真实数据和合成数据上训练对象检测模型

我们以 2x10 的初始学习率训练了所有模型-4批量大小为 4 个。在训练之前,我们将训练数据拆分为训练集和验证集。我们选择了 mAP 最高的型号IoU=0.5和 mAR100在验证集上。

当仅使用真实世界的数据进行训练时,我们使用了 760 张图像进行训练。我们使用 mAP 选择了性能最佳的模型IoU=0.5和 mAR100在真实世界的验证数据集上。在合成数据上训练时,我们使用了 400,000 张图像进行训练。我们找到了性能最佳的模型,同样是根据合成验证集的性能确定的。最后,为了进行微调,我们采用了性能最佳的合成模型,并使用真实世界的图像进行了微调。在本例中,我们使用真实世界验证集上的性能选择了性能最佳的模型。

在合成数据和真实世界数据上训练的模型的性能比较

使用合成数据的优点之一是我们可以快速迭代数据集,而无需经历繁琐且耗时的数据收集过程。为了生成可用的合成数据集,我们对数据集生成过程的许多方面进行了迭代。最初,我们没有包括环境照明效果或遮挡效果。在这些数据集上训练的模型在真实世界数据上的表现很糟糕,有许多误报和漏报。为了获得适度成功的结果,我们发现允许背景物体和其他目标物体的环境照明效果和遮挡至关重要。值得庆幸的是,使用 UnrealSynth虚幻合成数据生成器 ,我们创建了一个参数化良好的环境,可以在其中轻松快速地自定义数据集,并且只需几分钟即可生成具有不同域随机化参数的新大型数据集。

包括环境照明和遮挡在内,我们在 400,000 个合成样本上训练了一个模型。该模型在真实图像上表现不佳(见上表),尤其是在遮挡严重和光线不足的情况下表现不佳。然而,当物体具有复杂的方向时,模型的表现相当不错。这些结果表明,该问题是一个领域差距问题。为了验证这一假设,我们尝试使用一些真实世界的训练数据对这个模型进行微调。

我们做的第一件事是在 76 张真实世界图像上微调我们的合成训练模型。我们发现,在10%的真实样本中,我们的表现优于仅使用真实世界数据训练的模型。具体来说,我们发现假阳性和假阴性的数量显着下降。此外,我们还发现边界框定位方面有显著改进。然而,我们仍然看到该模型在复杂照明的情况下苦苦挣扎(图 3 中的第三行第三列)。

然而,用 380 个真实示例微调这个模型,我们发现所有指标都有显着的改进。我们看到 mAP 提高了近 22%IoU=0.5mAR 改善约 12%100与仅真实世界的模型相比。此外,我们发现 mAP 提高了 42%,这表明使用真实数据微调在合成数据上训练的模型也改善了边界框定位。特别是,在杂乱无章的示例中,微调后的模型表现令人钦佩,只有少数误报。此外,在具有挑战性的照明环境中,微调模型几乎可以检测到所有物体。这些结果表明,大型、随机、合成的数据集降低了模型的假阴性率和假阳性率。

关键要点和结论

使用在现实世界中执行的合成数据训练模型会带来一些与如何生成有用数据集相关的挑战。对于对象检测,主要困难在于如何创建目标对象的数字孪生,使合成数据集多样化,以及使用此数据集训练模型。使用资源扫描解决方案,您可以在 Unity 中创建目标资源的合成版本。然后,使用UnrealSynth虚幻合成数据生成器 ,您可以参数化地改变资产和环境的各个方面,并大规模生成合成数据。

立即免费试用

我们发布了一个 UnrealSynth虚幻合成数据生成器 工具包,用于创建虚拟场景生成合成数据。生成的数据可用于YOLO 等 AI 模型的训练提供自动生成的图像和标注数据。

转载:使用虚拟合成数据训练对象检测模型 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/178260.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

100量子比特启动实用化算力标准!玻色量子重磅发布相干光量子计算机

2023年5月16日,北京玻色量子科技有限公司(以下简称“玻色量子”)在北京正大中心成功召开了2023年首场新品发布会,重磅发布了自研100量子比特相干光量子计算机——“天工量子大脑”。 就在3个月前,因“天工量子大脑”在…

关于idea使用的一些操作设置

关于idea使用的一些操作设置 1. 常用的一下设置1.1 快捷键相关1.2 配置自动生成注释(类、方法等)1.3 maven项目相关1.4 常见其他的一些操作设置 2. IntelliJ IDEA 取消param注释中参数报错提示3. idea同时打开多个文件,导航栏不隐藏、自动换行…

1m照片手机怎么拍?这样操作真的很简单!

在生活中,使用手机拍照时,会发现拍摄的照片比较大,而自己的拍摄需求并不需要很清晰的照片,只需要保留照片里的内容信息,那么,1m以内的照片怎么拍?下面介绍了三种方法。 方法一:调整手…

DBA笔记(1)

目录 1、rpm yum 命令的使用,参数的含义 rpm命令: yum命令: 2、上传镜像至虚拟机搭建本地yum源 3、chown chomd 命令每一个参数的含义 chown命令: chmod命令: 4、fdisk partd 硬盘分区命令用法 fdisk命令&am…

windows搭建Cobalt strike

使用cobaltstrike 3.14版本 window10搭建服务器 默认端口可以修改的 window10搭建客户端 双击客服端bat运行连接 监听器 windows/beacon为内置监听器,包括dns、http、https、smb、tcp、extc2六种方式的监听器;windows/foreign为外部监听器 wndows/be…

2023最新ChatGPT商业运营系统源码+支持GPT4/支持ai绘画+支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

蓝桥白皮书16.0版——2、蓝桥等考介绍及代报名方式、报名时间

等级考试综述 蓝桥等考全称为“蓝桥青少年信息技术等级考试” 。等级考试聚焦学生学习过程的跟 踪评价 ,以考促学 ,标准化中小学校教学、校外机构培训和家长学生自学的学习目标及学习进程。 等级考试命题原则 等级考试各组别考试范围是掌握该组别编程知识…

【Java|golang】2103. 环和杆---位运算

总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分别穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环: 第 …

ANGR初识

首页: https://angr.io 项目存储库: GitHub - angr/angr: A powerful and user-friendly binary analysis platform! 文档: https://docs.angr.io API 文档: angr documentation 练习项目: https://github.com/angr/an…

MSQL系列(十一) Mysql实战-Inner Join算法底层原理及驱动表选择

Mysql实战-Inner Join算法驱动表选择 前面我们讲解了BTree的索引结构,及Mysql的存储引擎MyISAM和InnoDB,也详细讲解下 left Join的底层驱动表 选择, 并且初步了解 Inner join是Mysql 主动选择优化的驱动表,知道索引要建立在被驱动表上 那么对于Inner j…

“排队领奖,购物狂欢!开启全新商业模式

欢迎来到这个充满惊喜的商业模式——工会排队奖励模式!在这个时代,你是否感到购物和消费的乐趣被平淡无奇的模式所限制?那么,这个全新的商业模式将带你进入一个充满刺激和惊喜的世界! 想象一下,当你购物时&…

AutoX.js - openCV多分辨率找图

AutoX.js - openCV多分辨率找图 一、起因 AutoXjs 中有两个找图相关的方法 findImage 和 matchTemplate,之前一直没发现什么问题,但最近在一次测试找图时,明明大图和模板图的轮廓都清晰,却怎么也找不到图,降低阈值参…

C语言 每日一题 11

1.使用函数求素数和 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 函数接口定义: int prime(int p); int PrimeSum(int m, int n); 其中…

云原生环境下JAVA应用容器JVM内存如何配置?—— 筑梦之路

Docker环境下的JVM参数非定值配置 —— 筑梦之路_docker jvm设置-CSDN博客 之前简单地记录过一篇,这里在之前的基础上更加细化一下。 场景说明 使用Java开发且设置的JVM堆空间过小时,程序会出现系统内存不足OOM(Out of Memory)的…

Java实验二类编程实验

1.编写一个代表三角形的类(Triangle.java)。 其中,三条边a,b,c(数据类型为double类型)为三角形的属性,该类封装有求三角形的面积和周长的方法。分别针对三条边为3、4、5和7、8、9的两个三角形进行测试&…

【精】UML及软件管理工具汇总

目录 1 老七工具(规划质量) 1.1 因果图(鱼骨图、石川图) 1.2 控制图 1.3 流程图:也称过程图 1.4 核查表:又称计数表 1.5 直方图 1.6 帕累托图 1.7 散点图&#xf…

通过USM(U盘魔术大师)在PE环境下使用分区助手拷贝磁盘——无损升级硬盘

这里写自定义目录标题 背景本次使用技术步骤1、添加新硬盘2、添加PE3、开机进入BIOS,进入PE4、开始拷贝磁盘5、调整分区5.1 删除系统盘前的所有分区5.2 修改硬盘分区表格式为GUID5.3 新建引导分区 6、修复引导7、大功告成 背景 由于硬盘空间不够的时候就需要更换硬盘…

CCF_A 计算机视觉顶会CVPR2024投稿指南以及论文模板

目录 CVPR2024官网: CVPR2024投稿链接: CVPR2024 重要时间节点: CVPR2024投稿模板: WORD: LATEX : CVPR2024_AuthorGuidelines CVPR2024投稿Topics: CVPR2024官网: https://cvpr.thecvf.com/Conferences/2024CV…

【设计模式】第7节:创建型模式之“建造者模式”

Builder模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。 在创建对象时,一般可以通过构造函数、set()方法等设置初始化参数,但当参数比较多,或者参数之间有依赖关系,需要进行复杂校验时&a…

Linux进程概念(2)

Linux进程概念(2) 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容讲解了进程的概念,PCB&am…