合成数据加速机器视觉学习

news2024/12/29 8:11:31

 

虽然机器学习在基于视觉的自动化中的应用正在增长,但许多行业都面临着挑战,并难以在其计算机视觉应用中实施它。这在很大程度上是由于需要收集许多图像,以及与准确注释这些图像中的不同产品相关的挑战。

该领域的最新趋势之一是利用合成数据来加快数据收集和训练过程。合成数据通常被视为由计算机模拟生成的任何数据。

然而,将合成数据用于视觉用例需要合成图像生成方面的专业知识,并且可能很复杂、耗时且成本高昂。此外,虽然已经存在一些在现实生活中使用合成数据训练的机器学习模型的技术和最佳实践,但这些技术尚未普遍使用。

需要有一种有效的方法来连接视觉系统传统上所需的技能,以便对其进行训练和部署。这些技能包括数据收集和注释、机器学习模型训练和验证,以及集成到完整的自动化系统中。

提供一种自动化的方式来解决上述任务是扩大技术规模并使其易于访问且具有成本效益的关键。好消息是,有一种方法可以做到这一点!请继续阅读,了解如何操作。

合成数据在基于机器学习的视觉系统中的潜力

到 25 年,机器视觉市场的 AI 预计将达到 $2023B,复合年增长率为 26.3%(来源:MarketsandMarkets)。该市场包括行业用例,例如配套、分拣、拣选、车间安全、吞吐量分析、质量检查等等。例如,视觉系统利用异议检测算法自动识别物体的位置并引导机器人拾取它们。

机器人料箱拣选

机器人根据摄像头输入从垃圾箱中拾取金属部件。

物体检测的步骤是什么?

为了了解合成数据的潜力,让我们回顾一下部署典型目标检测视觉系统的工作流程:

部署基于视觉的目标检测系统的典型工作流程。

合成数据可以通过解决数据收集和注释阶段中的一些痛点来帮助缩短此工作流程并使其更加健壮:

  • 数据收集 – 从理论上讲,无需设置物理环境即可提供无限量的合成数据。这对于数据受限的方案特别有益,即可以收集的实际数据量仅限于不存在或很难获得。例如,如果必须停止现有生产线以收集训练数据,则可能会造成潜在的生产损失。合成数据还可以提供比收集真实数据时通常观察到的更大的变化。例如,在虚拟 3D 环境中,很容易创建不同的光线或其他物理条件,而在真实环境中,对这些参数的控制通常有限。因此,利用合成数据可以提高机器学习模型在以前从未遇到过的环境中部署时的泛化能力。
  • 注释 – 手动注释数据通常被视为一项重复的、平凡的任务。或者,正如谷歌研究院最近的一篇文章中所说的那样:“每个人都想做模型工作,而不是数据工作”。通常,注释对象的人工缺乏领域专业知识或适当的指导,这会导致注释不准确或完全错误。另一方面,合成数据总是被准确地注释,因为注释(边界框、对象轮廓等)是根据对合成数据如何形成的完整了解自动生成的。这样可以减少手动注释项目中常见的注释错误。

弥合合成与真实之间的差距

虽然 3D CAD 和仿真工具已经成熟了很长时间,但最近的进展在将仿真中学到的功能转化为现实方面取得了重大进展。这些计算机视觉技术通常被称为“Sim2Real”。

有一些现有的方法来生成合成数据,这些方法可以训练机器学习模型在输入真实数据时表现良好。

域随机化

合成数据生成方法介于“接近真实”和“域随机化”之间。

所有这些方法都介于接近真实模拟和域随机化之间。

接近真实 – 在这种方法中,您需要努力使模拟尽可能接近真实的预期场景。以瓶子包装线为例,假设您需要在封盖和运输之前对瓶子进行基于视觉的自动计数。在开始生成合成数据之前,某些属性是已知的:

  • 相机属性 – 确切位置、视野、分辨率等。
  • 照明条件
  • 瓶子和周围材料的特性——颜色、纹理、反射、折射、透明度等。
  • 瓶子在测试站中的可能位置
  • 由于相机的光学和电子特性而产生的典型噪声或伪影

给定其中一些属性,您可以手动创建模拟其中许多属性的 3D 模拟场景。

  • 优点:
  • 经过训练的机器学习模型可能在高度相似的场景中表现良好。
  • 缺点:
  • 对变化和扰动敏感。
  • 需要更高的努力才能准确模拟场景。
  • 在其他有细微差异的方案中更难自动化或重用。

域随机化 (DR) – 在这里,您可以随机化许多环境属性,从对象的数量及其位置到材质属性、相机属性、周围环境等。当基于这种随机数据集训练机器学习模型时,生成的训练模型将知道如何忽略随机化的属性,并专注于非随机化的属性(例如零件几何形状)。这样,经过训练的模型可以泛化到各种环境和领域,包括实际的预期环境。

  • 优点:
  • 可以轻松实现自动化。
  • 节省宝贵的工程时间。
  • 对环境变化不太敏感。
  • 缺点:
  • 需要更多数据,因为随机化会导致更高的方差(环境外观的更多选项)。
  • 在某些情况下,机器学习模型在真实环境中的表现不够好,需要一些手动调整,例如,设置相机位置、视野、图像分辨率和对象纹理。

域随机化示例

域随机化示例 – 对象位置、外观和光照条件被随机化,以便模型学会忽略这些属性并专注于几何形状。图像来源:Fangyi Zhang et al. – Adversarial Discriminative Sim-to-real Transfer of Visuo-motor policies

  • 微调 – 我们用来采用以前针对特定任务在某个数据集上训练的机器学习模型,并继续在不同的数据集上训练它,可能使用不同的参数和不同的任务。在纯粹基于合成数据训练模型后,有时模型可以立即在真实数据中表现得足够好。在某些情况下,根据环境和任务的不同,机器学习模型可能需要使用少量真实(通常带注释的)图像进行一些微调,然后才能正常运行。
  • 域适应 (DA) – 能够在一个或多个“源域”中训练的算法应用于不同(但相关)的“目标域”。在我们的例子中,合成数据集是我们的源域,我们希望训练一个模型在现实生活中表现良好。

域转移

“域转移”技术有助于缩小数据集源域与不同但相关的目标域之间的差距。

有几种技术可以缩小这种差距(通常称为“域转移”)。一些技术使用 GAN 来生成看起来更接近目标域的图像。其他方法使用基于导数的方法来生成逼真的图像。一般来说,DA是一个广泛而迷人的研究领域。

在工业用例中采用合成数据的挑战

您可以使用游戏引擎或模拟器,如 Blender、Unity3D、Unreal、Gazebo 等,并创建自定义 3D 模拟以生成合成注释数据集。通常,要使用这些工具实现您的目标,需要 3D 环境和编程方面的特定专业知识和知识。您需要知道如何创建场景,在不同图像之间创建方差(随机化),调整虚拟摄像机和其他传感器,最后创建图像,并以所需的格式进行注释。

合成数据专业知识

很少能找到具有使用某些常用工具所需的各种专业知识的工程师。

除了所需的专业知识外,与任何其他工程或开发过程一样,此过程需要时间。特别是如果您选择对接近真实的模拟进行建模。这通常非常耗时。有时甚至达到这样的程度:创建模拟的工作量远高于手动收集和注释真实数据的工作量。

最后,即使您选择自己创建数据集,也需要在域随机化和微调的上下文中使用正确的方法创建和训练数据集。对于没有此类方法经验的工程师,培训结果可能不理想。

UnrealSynth软件如何提供帮助

UnrealSynth 虚幻合成数据生成器 利用虚幻引擎的实时渲染能力搭建逼真的三维场景,为 YOLO 等 AI 模型的训练提供自动生成的图像和标注数据。UnrealSynth 生成的合成数据可用于深度学习模型的训练和验证,可以极大地提高各种行业细分场景中目标识别任务的实施效率,例如:安全帽检测、交通标志检测、施工机械检测、车辆检测、行人检测、船舶检测等。

转载:合成数据加速机器视觉学习 (mvrlink.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)

PCF8591数字电压表数码管显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…

C++以数组作为参数,传递数组地址

文章目录 函数如何使用指针来处理数组将数组作为参数意味着什么数组名和指针对应是好的吗? 参考资料 函数如何使用指针来处理数组 在大多数情况下,C和 C 语言一样,也将数组名视为指针。 C将数组名解释为其第一个元素的地址: cookies &…

YOLOv8 Ultralytics:使用Ultralytics框架训练RT-DETR实时目标检测模型

YOLOv8 Ultralytics:使用Ultralytics框架训练RT-DETR实时目标检测模型 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 制作自己的数据集训练自己的数据集创建自己数据集的yaml文件football.yaml文件内容 进行训练进行验证进行预测 数据集获取参考文献 …

NAS 扩容简明指南:使用各种外设给 NAS 们扩容

说起来有趣,NAS 除了“不同设备共享存储”这个功能之外,最重要的功能就是为设备扩容,但是 NAS 自己的存储容量不够了,又该如何。 ​这篇文章分享下我目前使用外设给 NAS 扩容的思路,如何以相对低的成本来获取更大的容…

IPV6网络技术详细介绍

无状态和有状态并不是相互对立的,他们可以同时存在,也就是一张网卡上可以同时出现通过RA生成的IP以及通过DHCPv6获得的IP。 从图中可以看到,顺序为: 1、Stateless自动配置“链路本地地址”2、Stateless自动配置“全球地址”&…

mysql基础 --子查询

文章目录 子查询 子查询 一个查询语句,嵌套在另一个查询语句内部;子查询先执行,其结果被外层主查询使用;子查询放入括号内;子查询放在比较条件的右侧;子查询返回一条,为单行子查询;…

普华永道于进博会首发“企业数据资源会计处理一体化平台”

11月6日,在第六届中国国际进口博览会上,普华永道发布企业数据资源会计处理一体化平台(英文名为Data Accounting Platform,简称DAP)。该产品以普华永道“五步法”数据资源入表路径为理论依据,依托多年来普华…

c: CLion 2023.1.1

/** # encoding: utf-8 # 版权所有 2023 涂聚文有限公司 # 许可信息查看:https://www.learnc.net/c-data-structures/c-linked-list/ # 描述:https://blog.jetbrains.com/clion/2016/05/keep-your-code-documented/ # Author : geovindu,Geovin Du 涂…

2023年10 种用于最佳稳定扩散最佳方案

在过去的一年里,您可能已经看到了很多关于 ChatGPT 和其他 AI 自动纹理的新闻。但是,页面(或屏幕)上的文字远非现代组织和设计师使用人工智能的唯一方式。Stable Diffusion 等工具可帮助您创建令人惊叹的 AI 图像,供个…

CS224W5.1——消息传递和节点分类

从之前的文中,学习了如何使用图表示学习进行节点分类。在这节中,将讨论另一种方法,消息传递。将引入半监督学习,利用网络中存在的相关性来预测节点标签。其中一个关键概念是集体分类,包括分配初始标签的局部分类器、捕…

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞. InfluxDB 是一个开源分布式时序,时间和指标数据库。其数据库是使用 Jwt 作为鉴权方式,在用户开启认证时,如果在设置参数 shared-secret 的情况下,Jwt 认证密钥为空…

无人机航迹规划MATLAB:七种优化算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划

一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

Docker修改容器内部文件的三种方法

为啥要记录呀 今天在修改Docker内部文件的时候,安装vim居然失败了,在执行apt-get update时一直有几个404,解决无果,最后放弃安装vim,将文件拷贝出来修改,然后再拷贝到docker内部。记录一下如何修改Docker内…

软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】(web+app+h5+小程序)

前言: ​​大家好,我是阿里测试君。 最近很多小伙伴都在面试,但是对于自己的项目经验比较缺少。阿里测试君再度出马,给大家找了一个非常适合练手的软件测试项目,此项目涵盖web端、app端、h5端、小程序端,…

现在个人想上架微信小游戏已经这么难了吗...

点击上方亿元程序员关注和★星标 引言 大家好,最近我突然想起来我还有一款微信小游戏还没有上架,于是捣鼓了一天把游戏完善了一下,然后准备提交审核,却发现异常的艰难… 1.为什么难? 相信大家都大概知道&#xff0c…

【Github】git clone命令下载文件中途停止

方法一: 使用git clone命令下载github上的源代码时,有时文件下载到一定百分比时就停止不动, 这是因为我们所下载的文件很大,超过了git预先分配的Postbuffer容量,所以一直卡在那里。可以使用以下命令查看当前Postbuffe…

Docker和镜像安装

2.1、Docker安装 2.1.1、检查环境 Docker运行环境要求系统为64位、Linux系统内核版本为 3.8以上 查看自己虚拟机的内核: 2.1.2、搭建gcc环境(gcc是编程语言译器) yum -y install gcc yum -y install gcc-c 2.1.3、安装需要的软件包 yu…

合成数据如何改变制造业

人工智能正在工厂车间使用,以识别生产线中的低效率。它可以有效地预测设备何时需要维护,以避免停机。人工智能被用于发现产品中的缺陷。 为了完成所有这些工作,使用从人工智能应该学习的过程中收集的数据来创建或训练模型。对于缺陷识别&…

音频——解析 PCM 数据

文章目录 生成 PCM 数据16bit16bit mono16bit stereo16bit 4 channel16bit 8 channel24bit解析 PCM 数据解析 24bit 数据程序源码生成 PCM 源码解析 PCM 源码生成 PCM 数据 16bit 16bit mono int 48k_16bit_modo[] = {0, 4276, 8480, 12539, 16383, 19947, 23169, 25995, 28…

Cross-Origin跨站问题详解(跨站请求、跨站cookie)

背景:我部署frontend和backend到两个不同的docker容器,前端路径为http://localhost:3000,后端路径为http://localhost:4000。我设置了用户登录功能,并使用cookie进行session管理。当我的前端登录时,创建了一个session&…