【深度学习:TACO 数据集】探索 TACO 数据集【模型训练】

news2024/10/7 11:24:14

在这里插入图片描述

【深度学习:TACO 数据集】探索 TACO 数据集【模型训练】

    • 介绍
    • 为什么选择以数据为中心的人工智能?
    • 上次我们学到了什么?
    • 问题
    • 关于数据集
      • 方法
    • 什么是“对象注释质量”指标?
    • 第一次迭代:修复标签错误
      • 分析
      • 重新贴标签
      • 模型再训练
    • 第二次迭代:修复错误标记的对象
      • 分析
      • 重新贴标签
      • 模型再训练
    • 结论

介绍

想象一下,您正在建造一个可以收集地面垃圾的自主机器人。作为机器学习工程师,您将负责赋予其在任何环境中检测垃圾的能力。

这是一个挑战,但有了正确的检测系统,您将离更清洁的世界更近一步,并且您将建造一个很酷的人工智能机器人。下载开源垃圾数据集后,您意识到您的模型存在多种挑战,并且即使您应用了最先进的模型,性能也很差。

这就是我们在这个以数据为中心的人工智能案例研究系列的第一部分中结束的地方。在上一篇文章中,我们分析了 TACO 数据集和标签,发现该数据集存在很多问题。

在以数据为中心的人工智能案例研究的第二部分中,我们将开始调试数据集并逐步提高模型的性能。

TLDR;

使用质量指标来计算流行的开源 TACO 数据集中多边形标签的对象注释质量,我们发现约 5% 的图像存在标签错误。通过修复标签错误,我们将最先进的计算机视觉模型的 mAP 与以下类别的基线相比提高了近 50%:透明塑料瓶

在这里插入图片描述

为什么选择以数据为中心的人工智能?

作为机器学习工程师,了解构建人工智能模型的不同方法以及每种方法的优缺点非常重要。以数据为中心的方法强调静态机器学习模型并注重改进底层训练数据。以数据为中心的方法建议持续关注在交互过程中添加高价值的训练数据,以提高整体模型的准确性和性能。

另一方面,以模型为中心的方法基于静态数据集,重点是开发和改进机器学习模型和算法。这通常是课堂上教授和前沿研究中使用的方法。然而,在工业中,以数据为中心的方法更为普遍,它可能会推动人工智能的未来发展以及 MLOps 和主动学习等领域的成熟。

在这里插入图片描述
作为机器学习工程师和数据科学家,重要的是我们要考虑问题的具体要求和约束,并选择最适合手头任务的方法。在某些情况下,可以结合使用两种方法来实现最佳性能。众所周知,吴恩达(Andrew Ng)是机器学习领域的先驱,我们甚至可以称他为以数据为中心的人工智能之父(至少他是最直言不讳的粉丝)。值得研究他的工作,以更深入地了解这些方法以及如何将它们应用到实践中。如果您有兴趣,请查看 DeepLearning.AI 的不同资源。

上次我们学到了什么?

让我们首先回顾一下我们第一篇博文中在 TACO 数据集中发现的挑战:

  • 类别不平衡:数据集包含很多类别(60),我们发现类别不平衡程度很高。有几个类别的标签接近 0(铝泡罩包装 6、电池 2、梳理泡罩包装 1)。
  • 相似的对象类:许多对象类在语义上非常相似。
  • 小物体:大多数物体都非常小,例如香烟、罐头、易拉罐。
  • 标注质量低:众包数据集的标注质量比官方数据集差很多;因此,应对标签进行审查。

我们知道许多人在改进模型时在项目中面临这些常见挑战。让我们制定一个问题陈述并尝试逐步提高我们的模型性能。

问题

我们着手遵循以数据为中心的方法来提高 TACO 数据集上 Mask RCNN 模型的性能。

由于 TACO 数据集包含 60 个类,因此我们将本教程的重点缩小到一个类(并节省一些计算能力)。我们最终选择了:

透明塑料瓶:由 PET 制成的水瓶和软饮料瓶。

在这里插入图片描述
为什么?

嗯,它在数据集中得到了很好的体现(476 张图像中的 626 个注释),我们发现它经常与其他对象(例如其他塑料瓶饮料罐)混淆。

此外,这是一个有趣且有用的用例,对于拥有存款返还系统(例如丹麦或瑞典系统)的国家可能具有潜在价值。

为简单起见,我们将根据三个指标来衡量性能:mAPmAR 和我们自己的目标注释质量指标。

关于数据集

  • 研究论文:TACO:用于垃圾检测的垃圾注释
  • 作者:佩德罗·F·普罗恩萨 (Pedro F Proença)、佩德罗·西蒙斯 (Pedro Simões)
  • 数据集大小:官方:1500 张图像,4784 个注释;非官方:3736 张图像,8419 个注释。
  • 类别: 60 窝类别
  • 许可证:CC BY 4.0
  • 发布日期:2020 年 3 月 17 日
  • 了解更多:Github 和网页

方法

为了改进机器学习模型,我们开始使用各种不同的策略:(1)重新标记不良样本,(2)修复错误标记的类,(3)标记新样本,以及(4)数据增强。

在本教程中,我们将尝试策略 (1) 和 (2),在下一个教程中我们将尝试策略 (3) 和 (4)。

每次迭代后,我们将使用改进的非官方数据集使用相同的神经网络架构重新训练模型,以比较固定官方数据集上的模型性能。

在这里插入图片描述
在我们开始讨论之前,让我们快速介绍一下“对象注释质量”指标:

什么是“对象注释质量”指标?

“对象注释质量”指标计算嵌入空间中最近邻居之间标签类别的偏差,以识别哪些标签可能包含错误。

从技术上讲,该度量将多边形转换为边界框,并提取每个边界框的嵌入。然后,将这些嵌入与它们的邻居进行比较。如果邻居的注释不同,则给予低分。您可以在 Encord Active 的 GitHub 存储库上找到技术实现。

太好了,让我们开始吧。

第一次迭代:修复标签错误

分析

使用对象注释质量指标,我们可以看到透明塑料瓶类与其他塑料瓶类混淆,有时甚至与饮料罐类混淆。

提示:您可以使用 "标签质量"→"探索 "选项卡对对象类的样本进行排序,并选择任何质量指标。只需选择 "对象注释质量 "指标,并按降序对样本进行排序。这将首先显示该类的正确标注样本。

让我们把这三种物体形象化,了解它们的真正含义:

在这里插入图片描述
它们之间的相似性似乎并不明显:然而,由于这些注释是众包的,因此注释者对于该用例可能具有不同级别的上下文,并且每个类的描述可能会引起混乱(考虑到有 60 个标签类)。

让我们深入研究 Encord Active 应用程序并打开非官方数据集。

我们导航到**“标签质量”→“资源管理器”**选项卡,选择“对象注释质量”作为指标,然后选择“透明塑料瓶”作为目标类别。按升序对样本进行排序,以查看注释质量分数较低的对象。

在这里插入图片描述

这里有些例子:

在这里插入图片描述
使用 Encord Active,我们可以直接发现这些标签错误。

提示:如果您是从 Encord Annotate 帐户导入的项目,则可以直接单击每个图像下方的编辑器按钮,在 Encord Annotate 平台中将其及其注释打开,您可以在其中轻松修复注释。

重新贴标签

在第一次迭代中,我们将修复所有注释为透明塑料瓶的对象的标签。通过从低注释质量到高注释质量,我们可以首先识别质量最低的标签。

按照这种方法,我们在 1 个小时多一点的时间里为 81 张图像修复了 117 个标签。

在这里插入图片描述
数据标记之后,让我们回到模型训练。

模型再训练

让我们在更新的数据集上重新训练我们的机器学习模型,看看透明塑料瓶的性能是否发生变化。

现在,在项目中填写 config.ini 文件的详细信息并重新训练模型(如果您之前没有这样做,请阅读此处的第一篇博客)。

训练结束后,我们将预测导入到 Encord Active 中,就像我们在上一篇博客文章中所做的那样,并检查性能。我们可以看到对象注释质量的性能现在为 0.416

在这里插入图片描述
与基线相比的性能结果如下表所示。新模型的检测性能比 mAP 的基线高 7.7%,而 mAR 的检测性能略低 (-1.5%)。

在这里插入图片描述

第二次迭代:修复错误标记的对象

良好的开端;但是,我们希望研究提高透明塑料瓶类模型性能的其他方法。

接下来,我们将讨论修复类标签错误。我们将首先查看其他塑料瓶物体的标签质量,以确定某些物体是否被错误地标记为透明塑料瓶

分析

首先,我们调查一些注释错误的其他塑料瓶标签。

在这里插入图片描述
我们看到许多标签实际上属于透明塑料瓶类别,但被标记为其他塑料瓶。

因此,让我们重新标记其他塑料瓶的错误分类图像,就像我们之前所做的那样。

重新贴标签

在这里插入图片描述

1.5 小时后,现在已经重新标记了近 100 张图像中的 150 个标签(98…)。数据标记既耗时又乏味,但让我们看看它作为一种以数据为中心的方法来提高模型性能有多么强大。

模型再训练

我们将该数据集命名为 Unofficial-v3 并训练一个新的机器学习模型。训练完成后,我们导入官方数据集的预测,打开应用程序并检查对象注释质量的性能现在为 0.466

在这里插入图片描述
在这里插入图片描述
多么大的进步啊!

通过修复错误标记的其他塑料瓶对象,我们将 Mask-RCNN 机器学习模型的 mAP 分数性能提高了 40%。如果我们选择以模型为中心的人工智能方法并简单地尝试微调模型,那么这种性能提升几乎是不可能的。与基线相比,我们的性能提高了近 50%!

在这项工作中,我们只专注于提高单个班级的表现;但如果我们对其他班级做同样的工作,也可以取得类似的结果。

结论

在以数据为中心的人工智能案例研究系列的第二部分中,我们的目标是提高特定类别的垃圾检测模型的性能。为此,我们利用开源主动学习工具 Encord Active,利用简单的数据驱动工作流程。使用该工具,我们:

  • 发现并修复不良标签以优化我们的模型性能,从而提高透明塑料瓶类别的准确性。
  • 发现并修复了被错误分类的对象并修复了标签。

在两个迭代周期结束时,我们将目标类的 mAP 比基线提高了 47%。

在以数据为中心的人工智能案例研究系列的最后一篇文章中,我们将展示如何通过定位标记工作和增强当前图像来提高基于类的模型性能。

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

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

相关文章

云安全:领先攻击者一步

基于SaaS的错误配置将导致安全事件升级:基于SaaS的应用的受欢迎程度呈指数级增长。然而,相对容易的采用也增加了攻击面。SaaS错误配置安全相关事件的数量可能高达63%,与17%的安全事件相比,这个数字显得巨大。 云安全现在在每项重大…

深入解析SDRAM:从工作原理到实际应用

深入解析SDRAM:从工作原理到实际应用 在众多内存技术中,同步动态随机访问存储器(SDRAM)因其出色的性能和广泛的应用而备受关注。本文将从SDRAM的工作原理入手,探讨其性能优化策略和在现代电子设备中的应用。 SDRAM工作…

实战打靶集锦-025-HackInOS

文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 提权5.1 枚举系统信息5.2 探索一下passwd5.3 枚举可执行文件5.4 查看capabilities位5.5 目录探索5.6 枚举定时任务5.7 Linpeas提权 靶机地址:https://download.vulnhub.com/hackinos/HackInOS.ova 1. 主机…

Nignx的搭建与核心配置

目录 一、Nginx是什么? 1、Nginx概述 2、Nginx模块与作用 3、Nginx三大作用:反向代理,负载均衡,动静分离 nginx七层负载均衡调度算法(六种) 1、轮询(默认调度算法) 2、加权轮…

vue如何动态加载显示本地图片资源

在实际开发中,根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答:为什么vite项目不可以用require? 原因在于&#xf…

BT709 YUV与RGB 色彩空间的转换(处理色差问题)

BT709 YUV与RGB 色彩空间的转换 主要渲染能够更加清新没有色差 CIE xyz色彩系统, 480 460这些数字表示波长,越靠近边缘饱和度越高 由于 XYZ 三基色所合成的色光是由他们的比值所决定的,可以设: ⻢蹄形的左右两边的轮廓线代表了…

UE蓝图 返回结果(FunctionResult)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 UE蓝图 返回结果(FunctionResult)节点和源码 文章目录 系列文章目录一、FunctionResult节点功能二、FunctionResult节点…

【Leetcode 993】二叉树的堂兄弟节点 —— 回溯法

993. 二叉树的堂兄弟节点 在二叉树中,根节点位于深度0处,每个深度为k的节点的子节点位于深度k1处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点root&#x…

week04day02(爬虫02)

<span>: 通常用于对文本的一部分进行样式设置或脚本操作。<a>: 定义超链接&#xff0c;用于创建链接到其他页面或资源的文本。<img>: 用于插入图像。<br>: 用于插入换行。 姓名&#xff1a;<input type"text" value"lisi">…

ChatGPT丨“成像光谱遥感技术中的AI革命:ChatGPT应用指南“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

【踩坑专栏】主机ping虚拟机失败

我出现的问题finalshell连接超时&#xff0c;ping了一下发现ping都ping不通&#xff0c;于是发现问题所在。 最开始我是把虚拟机的网络设置改为桥接模式&#xff0c;问题解决了&#xff0c;但是这种模式的问题就是每次开机&#xff0c;ip都会改变&#xff0c;因此非常麻烦&…

Prometheus+TDengine集群实现监控体系高可用

背景 为避免再次出现因Prometheus宕机导致业务无法查看历史数据受到影响&#xff0c;准备将Prometheus架构从单节点方式升级为高可用集群方式并将后端存储由本地存储改为远端分布式时序数据库存储。分布式时序数据库采用国产数据库TDengine。 架构 解释&#xff1a;虚线代表P…

LiveGBS流媒体平台GB/T28181功能-自定义收流端口区间30000至30249UDP端口TCP端区间配置及相关端口复用问题说明

LiveGBS自定义收流端口区间30000至30249UDP端口TCP端区间配置及相关端口复用问题说明 1、收流端口配置1.1、INI配置1.2、页面配置 2、相关问题3、最少可以开放多少端口3.1、端口复用3.2、配置最少端口如下 4、搭建GB28181视频直播平台 1、收流端口配置 1.1、INI配置 可在lives…

Word大珩助手是一款功能丰富的Office Word插件

Word大珩助手是一款功能丰富的Office Word插件&#xff0c;旨在提高用户在处理文档时的效率。它具有多种实用的功能&#xff0c;能够帮助用户轻松修改、优化和管理Word文件&#xff0c;从而打造出专业而精美的文档。 下载地址 网盘下载&#xff1a;PPT大珩助手 密码:acaq 功…

新版Java面试专题视频教程——多线程篇②

新版Java面试专题视频教程——多线程篇② 0. 问题汇总0.1 线程的基础知识0.2 线程中并发安全0.3 线程池0.4 使用场景 1.线程的基础知识2.线程中并发锁3.线程池3.1 说一下线程池的核心参数&#xff08;线程池的执行原理知道嘛&#xff09;3.2 线程池中有哪些常见的阻塞队列Array…

工厂方法模式Factory Method

1.模式定义 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟到子类 2.使用场景 1.当你不知道改使用对象的确切类型的时候 2.当你希望为库或框架提供扩展其内部组件的方法时 主要优点&#xff1a; 1.将具体产品和创建…

记录一次数据资源共享平台数据更新后不能展示的问题

一、数据资源共享平台问题 数据资源共享平台数据更新后,在前台展示页面不能展示和查询;以社会关注重大案件为例。 1、更新 输入配置: 输出配置: 更新配置: 手动点击运行。 2、Kingbase数据库查询 数据库原有数据52条,更新后数据有177条;

django rest framework 学习笔记-实战商城

01项目环境搭建_哔哩哔哩_bilibili 本博客借鉴至大佬的视频学习笔记 # 创建项目 django-admin startproject MyShop# 创建app E:\desktop\my_drf\MyShop>django-admin startapp goodsE:\desktop\my_drf\MyShop>django-admin startapp orderE:\desktop\my_drf\MyShop>…

C++从入门到精通 第十七章(终极案例)

写在前面&#xff1a; 本系列专栏主要介绍C的相关知识&#xff0c;思路以下面的参考链接教程为主&#xff0c;大部分笔记也出自该教程&#xff0c;笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外&#xff0c;笔者还参考了其它的一些C教材&#xff08;比…

互联网高科技公司领导AI工业化,MatrixGo加速人工智能落地

作者&#xff1a;吴宁川 AI&#xff08;人工智能&#xff09;工业化与AI工程化正在引领人工智能的大趋势。AI工程化主要从企业CIO角度&#xff0c;着眼于在企业生产环境中规模化落地AI应用的工程化举措&#xff1b;而AI工业化则从AI供应商的角度&#xff0c;着眼于以规模化方式…