在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍

2023-05-16

作者:Tobias Schaffrath Rosario

编译:ronghuaiyang

原文:在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍_ronghuaiyang的博客-CSDN博客

导读

数据的关键性在深度学习中至关重要,而标注又非常的贵,如果能够做到自动标注,那就太好了。

这篇文章是对基于图像的深度学习的最常见方法、基本标注方法、标注类型和该任务的自动化级别的一个高级探索。

这篇文章可以作为人们基于图像构建人工智能的一个有用的指南。为了便于理解,我们简化了下面的一些概念。

标注的介绍

基于图像的AI需要使用标注图像进行训练。这些标注也被称为“ground truth”、“labeled”或“annotated”数据。不同的数据科学模型有多种类型的“标注”。它们各不相同,包括"关键点","插值" ,"姿态估计"等等。在这篇文章中,我们将重点讨论四种最常用的标注类型:

分类

这对于快速获得图像属性非常有用。它包括图像中的物体、表情或背景。这是最简单的标注形式,也是我们在Google-captcha中看到的。然而,这种方法的功能有限,因为物体的位置、形状和属性都是未知的,而且需要对数百万张图像进行标注,才能可靠地了解这些细节。

物体检测

这对于定位图像中的物体很有用。标注相对简单,只需在目标周围画一个紧凑的框即可。这样做的好处是,存储这些信息和所需的计算相对较轻。缺点是框里的“噪音” —— 捕捉到的“背景” —— 经常会干扰模型对物体形状和大小的学习。因此,当存在高度的“遮挡”或物体形状的高度差异时,这种方法就会遇到困难,而这些信息是很重要的 ——想想生物细胞或服装的类型。

语义分割

这在标记数量不重要的物体的形状时很有用,比如天空、道路或简单的背景。这样做的好处是,当标注每个像素时,整个图像的信息就会丰富得多。你的目标是准确地知道区域的位置和它们的形状。这种方法的挑战是每个像素都需要标注,这个过程很耗时而且容易出错。

实例分割

这在指示不同的物体的时候很有用,如车1、车2、花a、花b等。这样做的好处是,我们可以更快地了解物体的形状和属性,而且与物体检测相比,我们可以更好地处理遮挡问题。挑战在于,这种方法非常耗时而且容易出错。

分割的挑战

正如你所看到的,实例和语义分割是非常耗时的,因为你需要手动勾勒出精确的目标对象 —— 点对点的“多边形”,甚至像素对像素的“mask”。这就是为什么它如此容易出错。事实上,世界上最好的标注者有4-6%的错误率,而一般人的错误率在8-9%左右。这种错误率会对最终AI的性能产生显著影响,并且通常会阻碍项目通过概念证明阶段。

现在想象一下目标物体是复杂的,比如有机细胞或机械物品。此外,如果错误的余地很小,因为模型导致错误的决策的后果可能是可怕的,甚至是致命的。通常,在这些非一般情况下,分割具有最大的实用性,是实现高性能模型的必要条件。

构建基于图像的人工智能所需的70%工作是标注工作。如果做AI的实践工作的时候(如自动驾驶),如果有数百万个小时的人工标注数据来训练神经网络,团队才有足够的信心把它投入生产。即使这样,在部署模型之后,通常也需要重新标注或标注额外的数据。

当需要专家对这些图像进行标注时,自动化手工工作的好处是最大的。典型的用例包括医学和生物成像、机器人技术、质量保证、先进材料和农业。想想这样的例子:你正在构建一个人工智能来帮助一个花了很多年才成为该领域专家的人。

标注的等级

机器视觉自动化的目标是通过尽可能少的输入来确定物体的轮廓。在本节中,我们将主要介绍自动化分割任务,因为这通常是劳动密集型的工作。

这种情况下的自动化水平是评估:

级别1:单个图像中的单个目标

级别2:单个的图像中的多个目标

级别3:估计多幅图像中多个物体的轮廓

目标是准确估计一个给定项目的所有图像中所有目标的轮廓。

Level 1 — 在秒级标注一个物体

使用从著名的“OpenCV”框架中流行的经典计算机视觉方法,Photoshop中的工具,甚至一些基于新颖的人工智能方法,这些工具旨在尽可能自动化单个目标的标注。1级工具的例子包括:

  • Contour 基于对比的轮廓 — 在对比度很高的背景上效果很好

  • GrabCut 从背景中在一个预定义好的区域上提取前景

  • Magic wand 选择一个区域在给定范围内通过寻找在附近的相似像素来逼近目标

  • DEXTR 使用在大型通用数据集上训练的模型,试图识别一个定义区域内的目标轮廓

注:通常标注工具声称具有“自动标记”的功能,如DEXTR。然而,它仍然是一个手动工具,依赖于之前对通用数据集的训练,为每个目标提供建议。不要误解我们,这个工具是伟大的,它的用途达到一级自动化,但它距离完全的“自动标注”还很远。

Level 2 — 在秒级标注一幅完整的图像

在这个级别上,你尝试在一个操作中标注图像中的所有目标。这接近当前深度学习的前沿。与第1级相比,节省的时间是巨大的,因为人力投入大幅减少。然而,这种自动化需要比级别1更高的置信度级别。这意味着,在部署第2级工具之前,可以使用第1级工具启动标注项目。

2级自动化是通过人工智能辅助实现的。这些AI在你标注的时候在后台学习。当它们达到一定的置信度分数时,作为用户,你可以开始使用它们,并获得建议,不仅针对单物体,而且针对完整的图像。随着更多的图像完成,AI助手将重新训练并进行改进。

Level 3 — 在秒级标注完整的图像组/项目

当标注自动化到这个级别时,作为用户,你应该能够在几秒钟内标注一组图像,甚至是一个完整的项目。这里所期望的是,作为用户,你只需单击一个按钮,项目中的所有图像就会得到标注。

虽然非常强大,但使用3级工具也会带来挑战。例如,如果你标注了一个数据集,包含10 000动物图片,其中的1 000已经标注过了,但是这个3级工具很难区分青蛙和蟾蜍,9 000汽车图片工具的标注可能有严重的质量问题。应该被归类为青蛙的现在变成了蟾蜍,反之亦然,这样所做的标注是无用的。这是一种分类错误 —— 只有四种类型的错误会发生。其他的则是产生人造痕迹、不准确的分割或完全漏掉对象。

因此,要使用3级工具,你需要非常确定结果是准确的,并且误差百分比非常低(0.5%)。这种确定性可以通过将用户行为考虑到第2级自动化中来实现,例如对第2级的建议进行轻微调整或不进行调整,并查看诸如可信度级别之类的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍 的相关文章

  • jupyter-notebook二次开发

    背景 公司内部提供给算法人员用于模型训练的平台开发需求中提出了嵌入Jupyter Notebook模块 xff0c 而Jupyter Notebook是开源的 xff0c 方便后续对部分细节进行功能定制和优化 xff0c 需要对其进行调研
  • python中大数据文件读取

    python中大数据文件读取 python中经常会遇到读取大文件的场景 文件较小时 xff0c 我通常采用下面方法 xff0c readlines xff08 xff09 xff0c 该方法会一次性读取文件的所有行 xff0c 并将其放入l
  • Linux|奇怪的知识|locate命令---文件管理小工具

    前言 Linux的命令是非常多的 xff0c 有一些冷门的命令 xff0c 虽然很少用 xff0c 但可能会有意想不到的功能 xff0c 例如 xff0c 本文将要介绍的locate命令 xff08 平常很少会想到使用此命令 xff0c f
  • python之装饰器

    引言 软件开发中 xff0c 当需要创建高度重复的代码时 xff0c 需要寻求一种优雅的解决方案 python中的元编程即解决这类问题 xff0c 通过创建函数和类来修改 生成或包装已有的代码 装饰器就是python中用来包装函数的一种机制
  • docker容器中程序退出异常,GPU未释放

    1 问题描述 近期在docker容器中对一批数据通过算法进行清洗时 xff0c 当数据处理完成后发现进程未正常退出 xff0c GPU内存未正常释放 span class token punctuation span root 64 ai6
  • 初识Redis

    什么是Redis Remote Dictionary Server xff0c 即远程字典服务 xff0c 是一款开源的 基于内存也支持持久化的key value数据库 xff0c 提供多种语言API 通常应用于需要处理大规模数据读写的场景
  • python之闭包

    前言 闭包作为python高级特性中的一个 xff0c 初学总觉其披着一层神秘的面纱 xff0c 这里我们来一起揭开这层面纱吧 那什么是闭包呢 xff1f 闭包 xff0c 又称闭包函数 xff0c 和普通的嵌套函数类似 xff0c 闭包中
  • 三个基础排序算法

    排序在计算机算法中非常常见也非常基础 xff0c 不管是准备面试还是纯属兴趣 xff0c 掌握它都很有必要 选择排序 基本思想 xff1a 预置list i 为最小 xff0c 逐个比较range i len list 里的元素 xff0c
  • 数据结构之链表

    和顺序表相对应 xff0c 有个链式存储的数据结构 xff0c 命名曰链表 单链表 节点中只存储后项节点指针的链表 xff0c 称为单链表 定义节点 class LinkNode object def init self data 61 N
  • 数据结构之哈希表

    概念 哈希表是一种数据结构 xff0c 通过哈希函数来组织数据 xff0c 以支持快速插入和搜索 哈希表的关键思想是使用哈希函数将键映射到存储桶 更确切地说 xff0c 当我们插入一个新的键时 xff0c 哈希函数将决定该键应该分配到哪个桶
  • 图片数据清洗

    前言 数据对于深度学习算法模型的效果至关重要 通常 xff0c 在对采集到的大量数据进行标注前需要做一些数据清洗工作 对于大量的数据 xff0c 人工进行直接清洗速度会很慢 xff0c 因此开发一些自动化清洗工具对批量数据首先进行自动清洗
  • PyQt5 多线程实例

    前言 PyQt的所有窗口都在UI主线程中 xff0c 也就是main函数中执行了QApplication exec 的线程中 xff0c 在该线程中执行耗时较长的操作时 xff0c 会导致当前窗口停止响应 为了避免上述情况发生 xff0c
  • 模型评价标准

    机器学习 机器学习是通过一些让计算机可以自动学习的算法 xff0c 从数据中分析获得规律 xff0c 然后利用规律对新样本进行预测 评价标准 为了了解模型的泛化能力 xff0c 即判断模型的好坏 xff0c 我们需要用某个指标来衡量 xff
  • postgresql|数据库|【postgresql-12的基于pg_basebackup的主从复制部署】

    前言 xff1a postgresql数据库说实话是真心好用 xff0c 但 xff0c 想用好是比较困难的 那么 xff0c 造成该数据库使用困难的是它的内置工具非常的多 xff0c 并且整体优化是比较难的 比如 xff0c 自带的备份工
  • windows上的中文文件名上传到linux上乱码问题解决

    问题描述 有很多多层文件夹存放的数据保存在windows上 xff0c 文件夹和文件名均含有中文 xff0c 将这些文件目录传到linux上 xff0c 中文名显示乱码 问题分析 windows上中文默认编码格式是gbk xff0c 而li
  • JAVA 面试题经典(附答案)

    JAVA JAVA8大基本数据类型 J AVA8大基本数据类型 HashMap和Hashtable的比较 Hashtable xff1a 1 Hashtable不允许key或者value为null xff0c 线程安全 xff0c 实现线程
  • u盘写入映像时提示:主引导记录(mbr)写入失败!!

    在使用软件写入U盘镜像时 xff0c 出现下面的提示 xff1a 解决方法是使用DiskGenius重新建立MBR
  • debian SID安装笔记

    1 声卡设置问题 添加了声卡驱动 xff0c 但是进入桌面没有声音 xff1f 一般是没有给用户使用设备的权限 解决方法 xff1a adduser audio eg adduser jerry audio xff08 解决 xff09 你
  • ubuntu下vncserver配置

    Ubuntu下设置VNCServer Virtual Network Computing VNC 是进行远程桌面控制的一个软件 客户端的键盘输入和鼠标操作通过网络传输到远程服务器 xff0c 控制服务器的操作 服务器的图形界面通过网络传输会
  • vsftp配置实例-虚拟用户锁定目录

    一 实验步骤 1 创建用户 创建ftpuser1登录用户 useradd g ftp d share soft s sbin nologin ftpuser1 为ftpuser1设置登录密码 passwd ftpuser1 2 编辑配置文件

随机推荐

  • 基于51的光立方制作

    单片机入门者必然会从点亮一盏LED灯开始 xff0c 如果LED数量比较多 xff0c 就不能使用单个引脚去控制 xff0c 例如光立方 xff0c 利用锁存器和人体的视觉暂留效果就可以占用少量引脚实现光立方 所需材料 xff1a STC8
  • 如何实现无界面Android app

    如何实现无界面Android app 前言代码实现AndroidManifest xmlMainActivity javaMyService java 前言 在Android开发中 xff0c 可能会遇到只需要在后台运行服务 xff0c 不
  • 惊呆面试官的回答:HashMap和TreeMap的区别

    前几天 xff0c 有一位粉丝在直播间问了我这样一个问题 xff0c 说HashMap和TreeMap有什么区别 今天 xff0c 我给大家分享一下我的理解 1 两者区别 我们知道不管是HashMap还是TreeMap xff0c 都是通过
  • postgresql|【基于pg_basebackup命令的归档备份和恢复---热备冷恢复方式】

    一 xff0c 基本原理和步骤 备份 xff1a 使用pg basebackup命令来进行备份 xff0c 这个命令可以将postgresql的数据文件备份为两个压缩文件 xff1a base tar和 pg wal tar 本别是数据文件
  • js获取对象属性的两种方式

    一 如果属性名称是常量 xff08 固定值 xff09 xff0c 获取属性值的方式有 xff1a 1 对象 属性名称 如 obj age 2 对象 属性名称 如 obj age 二 如果属性名称是一个变量 xff0c 值不固定 xff0c
  • 关于Eclipse的Unhandled event loop exception No more handles

    今天用了公司一台电脑做开发 xff0c 在运行eclipse以及myeclipse点击java代码窗口内部时 xff0c 都遇到如下图所示的问题 xff1a 上网查了一下错误的原因 xff1a 因为一些进程和eclipse起了冲突 下面我来
  • IDEA较新版本,编译xml文件(src/main/java下的xml等)

    IDEA较新版编译src main java下的文件 问题 xff1a 原因 xff1a 解决 xff1a 实际应用代码 xff1a 问题 xff1a 在导入新项目时 xff0c 由于项目中整合了Mybatis xff0c 一些mapper
  • IDEA 2018.3.2 版本配置SVN

    IDEA 2018 3 2 版本配置SVN 1 首先安装TortoiseSVN2 配置IDEA3 IDEA开启SVN 1 首先安装TortoiseSVN 安装的过程中 xff0c 需要勾选command line client tools
  • springmvc 上传文件,单个文件,多个文件

    1 Java代码部分 xff1a 1 1spring配置 xff1a span class token operator lt span span class token operator span span class token ope
  • Jquery实现免上传预览图片功能

    Demo如下 span class token doctype lt DOCTYPE html gt span span class token tag span class token tag span class token punct
  • jQuery :not() 选择器

    JQ选择器 xff0c 不选择某些标签 基础用法 xff1a p not class 多个not p not class not id span class token doctype lt DOCTYPE html gt span spa
  • 弱智笔记 js用==比较 空字符串==0,返回true

    span class token keyword if span span class token punctuation span span class token string 34 34 span span class token o
  • PHP7+apache2.4环境搭建

    PHP 43 apache环境搭建 版本 xff1a PHP Version 7 1 30 apache2 4 下载 xff1a 下载php时 xff0c 注意下载VC14 x64 Thread Safe xff0c 否则没有php7apa
  • JAVA构造器注意事项

    JAVA构造器 1 JAVA默认提供无参构造器 2 默认无参构造器 对域进行初始化规则 数值型 xff1a 0 布尔类型 xff1a false 对象类型 xff1a null 3 如果自己写了一个带参构造器 xff0c 默认的无参构造器失
  • 原生大数据|elasticSearch|低版本kibana组件的汉化

    前言 xff1a 大数据的范畴里包括EFK ELK xff0c 这些套件安装部署是非常的成熟 xff0c 因此是比较好部署安装的 xff0c 一般的 xff0c 困难出现在部署完成后的运营和维护 kibana这个组件的版本低于7我们就应该认
  • JAVA继承-注意事项

    JAVA继承 1 子类所有构造器 xff0c 会隐式调用父类的无参构造器 原理 xff1a 子类所有构造器 xff0c 都会在第一行隐式调用super 问题 xff1a 如果父类没有无参构造器 xff0c 编译报错 解决 xff1a 在子类
  • mac上安装brew出错curl: Failed to connect to raw.githubusercontent.com port 443解决方法

    问题描述 由于最近重做了电脑系统 xff0c 重新下载安装brew 就报错了 xff0c raw githubusercontent com 在国内由于不可描述的原因就无法访问 解决方法一 参考网上的解决方法 首先是访问这个网址 https
  • Hexo + gitHub pages

    网址 xff1a https oldmee github io hexo的写作流程就是会按照日期自动帮你归类 xff0c 你new了一个page会生成一个markdown文件 xff0c 你就可以愉快的写作了 xff0c 边写边看效果 xf
  • 使用策略模式优化过多的if else语句

    此处的过多是指if else超过三层 xff0c 如下面的代码 xff1a public class MainStart public static void main String args String message 61 34 se
  • 在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍

    作者 xff1a Tobias Schaffrath Rosario 编译 xff1a ronghuaiyang 原文 xff1a 在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍 ronghuaiyang的博客 CSDN博