智能标签采集器(2.核心业务流程完成图片标注训练的整个工作流程(组图))
优采云 发布时间: 2021-09-05 16:29智能标签采集器(2.核心业务流程完成图片标注训练的整个工作流程(组图))
通常,公司有各种标签要求。作为一款通用的标签产品,产品特性(如支持多种输入格式、多种标签类型、多种标签形式、附加功能等)将是我们关注的重点之一。
另一方面,在实践中,标注是一项非常耗时且费力的工作。比如上图中的大部分行人是需要标注的,这样的图片至少有上百张。这说明用户体验是我们需要关注的另一个重点。
综上所述,本文将从产品功能和用户体验两个维度对行业代表性产品进行分析。
2.核心业务流程
完成图像标注训练的整个工作流程通常涉及三个步骤:“数据准备”、“数据标注”和“数据演化”。具体业务流程如下图所示:
图3:图片标注的一般业务流程
2.1 数据准备
数据准备包括两个步骤:data采集和数据预处理。
1.Data采集:采集 有多种方式如:本地上传、调用其他数据集数据、相机数据导入、调用云服务获取数据等
2. 数据预处理:数据清洗是获得高质量训练数据的前提,清洗不合格的数据还可以减少无意义的标注工作,提高标注效率。数据清洗的常用操作包括:模糊数据清洗、相似数据清洗、裁剪、旋转、镜像、图像亮度、图像对比度、图像锐化等。
2.2 数据标注
数据标注包括:标注集的建立、数据标注、标注审核。
2.2.1 创建注释集
注解集是注解工作的基本任务管理单元,这里不再赘述。
2.2.2 数据标注
详情见表 1:
表一:数据标注具体方法
2.2.3 分评论
对于“任务标注”,标注审核是对下发的标注任务进行管理,对标注结果进行审核。一般审核维度包括:标注进度、接受状态、标注数量、疑难案例、标注质量等。
对于“自动标注”,标注审核是对自动标注的结果进行一一核对确认,对标注错误的图片进行修改。
2.3 数据演进
数据演化包括:模型训练、模型推理。
2.3.1 模型训练:
是训练标注数据以获得模型结果的过程。
2.3.2 模型推理:
用于对训练模型结果进行验证和预测,并将误差或误差验证结果记录下来,带到下一次模型训练中进行模型的优化迭代,从而形成对模型训练的数据标注,然后到模型迭代优化的闭环。
3. 竞品介绍
目前市场上有很多标签工具。首先,我们需要确定竞品的选择原则:
总结起来,选择了以下3款竞品:
CVAT:英特尔开源标注工具,2018年6月发布,支持视频、图片等多种数据类型标注,功能全面。 ModelArts:华为出品的机器学习平台,2018年10月发布,收录数据标注模块。支持从数据导入到模型运维的全流程开发,训练速度更快。 Supervisely:*敏*感*词*Deep System旗下的模型训练平台,2017年8月发布,数据标注功能强大,尤其是Smart Tool令人印象深刻:可以快速完成语义分割任务的标注。
表 2:3 款产品的汇总比较
4.功能对比
在本节中,我们将针对 3 个产品,基于第 2 章的核心业务流程探索产品功能之间的差异。
4.1 *敏*感*词*
CVAT的使用过程虽然很简单,但它的功能却非常全面和丰富。
图 4:CVAT 标注流程
4.1.1 创建数据集
CVAT 将数据集替换为带注释的任务(Task)的概念。一个任务可以收录多个任务,每个任务可以分配一个注释器。
在创建标注任务时,CVAT 还提供了丰富的高级选项,例如:
支持使用Git LFS:Git Large File Storage,一个用于大文件的git管理插件。调整画质:通过降低画质(压缩率)加快高清图片的加载速度。作业数量和重叠:如果一个任务中的图片数量很大,可以将它分成多个作业。再加上重叠数,可以达到将一张图片分配给多个作业的效果,但暂时没有重叠数的使用场景。
综上所述,CVAT在标注任务模块的优势之一就是支持视频类型文件的直接上传。上传的视频会根据用户设置的帧率(Frame)转换成图片。
CVAT在这个模块中也有一个明显的缺点:它缺乏一个统一的视角来概览任务中的所有图片(如下图,在任务详情页面中只能看到第一张图片的照片) ,而且每张图片上的所有注释大概都是因为一张图片可能存在多个作业。
图 5:CVAT 标注任务详情页面
4.1.2 自动标注
由于CVAT不具备提供模型服务的能力,所以其自动标注功能还处于开发初期,只能满足个人实验。
添加自动标注模型需要用户上传模型文件,而不是镜像或API。这种非服务方式很容易因为运行环境的差异(比如安装了不同版本的依赖包的两台服务器)影响打标签的成功率和准确率。
4.1.3 手动标注
4.1.3.1 手动标注支持3种标注模式,每种模式可以前后切换:
标准模式(Standard):用于常规标签。属性标注:在“属性模式”下,用户可以专注于修改标签框和标签的属性,提高了查看和修改标签属性的效率。该模式专门用于在人脸标注中为同一对象设置一个或多个属性的场景,如年龄、性别等。标签标注:在“标签模式”下,用户可以快速添加或删除标签,选择和修改标签属性。同时,您可以按类型标记图片的自定义模式,还可以为每个标签设置快捷键。大大提高了图像分类的标注效率。
4.1.3.2 对于CVAT,我们经过经验总结出以下优势:
1) 灵活的标签和属性定义
同一张图片可以标注多个标签,一个标签可以设置多个属性,平台将属性定义分为:多选(Select)、单选(Radio)、是否(Checkbox)、文本(文字)、数字(Number)五种。 CVAT标签定制的自由度基本满足大部分标签需求。
图 6:CVAT 中的五个标签属性
2)丰富的标记格式
为了支持各种类型的标注,CVAT提供了6种标注类型,包括:标签、点、矩形、折线、多边形、长方体等。同时支持AI多边形标注:可以选择一个通过指定至少四个点,在系统的帮助下确定目标轮廓。这与监督相同。体验过后,我们还是期待AI识别速度的进一步提升。
3)统一标注方法的快捷键
选择一种标注方式,快捷键“N”代表该标注方式。重新选择标注方法,“N”代表的方法会发生相应的变化。快捷键的统一进一步降低了用户的操作成本。
4)任务分析
通过任务*敏*感*词*表板中的分析,您可以看到每个用户在每个任务上花费了多少时间以及他们在任何时间范围内完成了多少工作。任务分析扩展了 CVAT 的团队标记功能。
图 7:CVAT 中的*敏*感*词*表板(图片来源 CVAT 用户手册)
5)Track 模式(Track 模式)
用于标记视频文件。视频会根据帧率分为若干帧(Frame)。用户只需标记关键帧(Key frame,与Flash中的关键帧非常相似),关键帧之间的图片也会自动标记。 CVAT 目前仅支持边界框和点的插值模式。传播功能非常实用。场景:如果要将当前图片中的注解(Propagate)传递给接下来的n张图片。同时,CVAT的跟踪模式与Merge功能和Split功能相结合,支持CVAT独有的视频或*敏*感*词*图标标注能力优势。
4.1.3.3 可能是因为支持的功能太丰富,导致使用上有一定的学习成本,用户体验会有些不尽如人意。例如:
标注时图片无法预览。无法获得图片的整体标注。下次进入作业时,无法快速定位到未标注的图片。虽然这不会对效率产生太大影响,但会影响用户的操作体验。另外,如果是标记用户的图片分类,就需要使用属性模式,用户难以感知。 (我们一开始以为只能画一个完全覆盖画面的边框来实现)4.2 ModelArts
2019年10月17日Modelarts版本更新后(尤其是团队标注功能),业务流程覆盖趋于完整。整体用户流程如下:
图8:ModelArts标注流程(图片来自ModelArts官网)
由于本文主要讨论数据标注功能,数据标注后的功能(包括训练、推理、数据校正等)不在本文讨论范围内。
4.2.1 创建数据集
在创建图像数据集时,ModelArts在数据集层面设置了图像标注类型,即创建数据集时需要区分标注类型。
这一点与 Supervisely 和 CVAT 有很大不同。具体分析请参考Supervisely手册标注章节。目前支持两种任务:图像分类和目标检测。
图9:将创建数据集放入ModelArts
4.2.2 数据处理
华为的数据处理功能位于对象存储服务中,提供便捷、全功能的图像处理能力。
华为的对象存储服务提供了“图形界面模式”和“代码编辑模式”两种图像处理操作模式,适用于普通用户和开发者用户。
同时最终的处理结果存储在内容分发网络(Content Delivery Network,CDN)加速中,后续请求可以通过URL直接从CDN下载,结果可以用于任何注解可以通过 URL 导入数据的平台。扩展了平台的功能扩展性。
华为图像处理提供的能力主要包括:设置图像效果(亮度、对比度、锐化、模糊)、设置缩略图、旋转图像、剪切图像、设置水印、转换格式和压缩图像。
图10:华为对象存储中的图像处理模块
4.2.3 智能标签
ModelArts 智能标注包括:主动学习(*敏*感*词*标注)和预标注(自动标注)。目前,只有“图像分类”和“物体检测”类型的数据集支持智能标注功能。先简单分析一下智能标注模块:
系统只对未标注的图片进行标注,可以减少重复标注,减少计算资源的浪费。使用效果并不理想,系统实际体验后标签准确率只能维持在60%。系统对疑难病例的筛选准确率也较低。全自动标注支持选择自训练模型或ModelArts自有模型,模型选择更加灵活。在接下来的操作中,可以继承每个标签的结果,进一步提高模型的准确率。智能标注结果展示页面可以进行条件过滤。可选条件包括:困难案例级别、标签、样本创建时间、文件名、注释者、样本属性和置信度。精准筛选可以满足大部分场景需求。
4.2.4 手动标注
Huawei ModelArts 手动标注功能主要包括以下三点:
4.2.4.1 目标检测标注最多支持6种标注
包括正方形、多边形、正圆、点、单线、虚线(见图11),丰富的标注方式覆盖更广泛的标注场景,同时可以提高标注的准确率。
4.2.4.2 高效的标签选择方法
在数据标注的交互中,华为ModelArts绘制选择框后会自动弹出标签下拉框,以及已经展开的添加标签弹出窗口(见图11),消除选择完成后需要用户点击标签。下拉框的步骤。弹出的标签选项卡在框旁边(见图11),缩短了鼠标滑动的移动行程鼠标选择标签。
图11:ModelArts图像检测数据标注界面
4.2.4.3 图片组
在标注预览页面,华为ModelArts提供了图片分组功能(见图12),该功能使用聚类算法或根据锐度、亮度、图像颜色对图片进行分组。自动分组可以理解为数据annotation 用户可以根据分组结果进行分组标注、图片清洗等操作,该功能可以提高图像标注的效率,尤其是在图像分类标注的情况下,批量标注功能可以在标注速度上进行定性改进了。但是经过实际体验,我们觉得这个功能分组的成功率很低。
图12:ModelArts中图片自动分组
4.2.5 团队注解
华为ModelArts有一套完整的团队标注功能,亮点多多。以下是创建、标记和审核的三个方面:
4.2.5.1 创建
华为可以在启用团队标注后直接指定标注团队,也可以选择指定管理员,然后由管理员分配标注人力,进行审核工作。选择类型后,团队成员会收到系统邮件,根据邮件提示即可轻松完成标注和审核。
您可以选择是否自动将新文件同步到注释团队。同时,您可以选择是否在注释团队的文件中加载智能注释结果。这些操作增加了管理员调整任务分配和自动标注关系的自由度。
图 13:ModelArts 团队注解创建页面
4.2.5.2 注释
标记图片并保存后,图片自动进入“待审核”状态。我们认为这样的状态切换超出了用户的预期,特别是如果用户想要检查标签是否有误,则需要切换到“待审核”页面进行检查,这会给用户带来不便。
“待审核”的图片还是可以修改的,修改在管理员发起验收前生效。但在验收时,如果图片是采样的,修改不会保存在数据集中。如果图片未采样,修改将保存在数据集中。这样的审计逻辑限制可以减少审计过程中不必要的混乱,防止审计结果出现错误。
4.2.5.3 评论
ModelArts将审核称为“验收”,验收分为单张图片验收和批量图片验收两个级别。过程是用户检查并接受一批图片。审核层级过多,逻辑复杂,可能导致运行结果不符合用户预期。
标注状态混乱:例如管理员将图片A分配给注释者a。 a后,管理员同时使用智能标签标记图片A。如果两个结果都被管理员确认,无论哪个标签先确认,最终只有智能标注的结果有效,标注者a的标签无效。
ModelArts 提供了审计仪表盘,方便审计的统计链接,并以可视化的方式展示任务进度。仪表盘的评价指标包括:验收进度统计、疑难案例集数、标签数和带标签样本数、注释者的进度统计等,如图14所示:
图 14:ModelArts 中的注释审查仪表板
4.3 监督
图 15:Supervisely 的标注流程
从图中可以看出,团队标记一块的逻辑比其他产品更复杂。分析背后的原因:
表面上很多步骤是为了满足团队标注(尤其是外部标注团队)的需求,包括创建团队、邀请成员、创建标注任务、标注审核等,但本质上都是安全控制和质量控制要求:
安全控制体现在管理员可以为团队成员分配不同的角色来控制成员的权限。例如,Annotator 只能查看其任务中的图片;质量控制体现在注释完成后。管理员审核标签以确保标签质量。
因此,这样一个复杂的环节是一个企业级标签产品应该有的设计,虽然这不可避免地会导致用户认知成本的增加和用户体验的下降。
4.3.1 创建数据集
在 Supervisely 中,用户可以在一个数据集中完成 4 种类型的标注(视频标注除外),即分类、检测、分割和姿态估计。
与ModelArts不同,Supervisely对数据集的定位更像是一个图片集。一批图片只需要导入一次,无论做什么类型的标注,都可以在同一个数据集上做。并且在进行后续训练时,可以直接得到一张图片上的所有标注。
综上所述,Supervisely 的统一数据集模块提高了图像导入、图像标注和图像后处理的效率。但是这种方法也有缺点:所有标注类型的操作方式都是固定的,不能针对特定类型进行优化(比如Modelarts图片分类可以同时选择多张图片一起标注)。
4.3.2 数据处理
Supervisely 的数据处理模块叫做 DTL,Data Transformation Language,是一种基于 JSON 的脚本语言。通过配置DTL脚本,可以完成数据集合并、标签映射、图像增强、格式转换、图像去噪、图像翻转等46项操作,满足各种数据处理需求。
图 16:在 Supervisely 中为图片添加高斯模糊
虽然功能比ModelArts更强大,但只提供了基于代码的操作,只适合工程师使用。不过大部分工程师已经掌握了通过python处理图片的方式,额外学习一门语言无疑会增加学习成本。
另一方面,这种特殊语言的效率提升还存在未知数。例如,用户想进行某张图片操作,但查了半天,发现不支持该语言。最终还是要通过python来完成,最终降低了效率。 .
4.3.3 自动标注
Supervisely 目前提供 14 个预训练模型。训练数据大部分来自COCO(微软发布的大型图像数据集),少部分来自PASCAL VOC2012、Cityscapes、ADE20K等公开数据集。
在自动标注部分,Supervisely的优势在于支持语义分割自动标注,产品在语义分割手动标注方面有着出色的体验,大大提高了此类任务的标注效率。
Supervisely 的自动贴标模块产品化程度较低,主要体现在以下两点:
由于不提供模型训练和推理服务,用户需要准备自动标注所需的硬件环境,限制较多(仅支持Nvidia GPU,需要Linux和Cuda驱动)。模型推理参数通过JSON格式的配置文件进行配置(见图17)。相比华为简单的配置界面,这种形式的灵活性更高,但是用户真的需要配置还是直接想系统呢?自动标记的结果?
图17:Supervisely(左)和Huawei ModelArts(右)自动标注配置对比
4.3.4 手动标注
Supervisely 的标注功能非常强大,主要有以下两个特点:
丰富的标注形式:为了支持各种类型的标注,Supervisely提供了多达9种标注形式,包括:标签、点、矩形、折线、多边形、长方体、像素图、智能工具(Smart Tool)、关键点等复杂标签系统:抽象了对象(Object)、类(Class)和标签(Tag)三个实体,提高了复杂场景中实体之间的复用性。
4.3.4.1 丰富的标注格式
在所有 9 种标签中,智能工具令人印象深刻:
智能工具用于标记分段类型。用户只需要点击两次方框选择一个对象,通过算法对目标进行描边完成初步分割,然后对正负点进行标注,完成精准标注。大大降低了分割任务的标注成本。
图 18:在 Supervisely 中点击 11 次后完成语义分割
4.3.4.2 复杂的标签系统
为了满足覆盖多种标签类型的数据集的需求,Supervisely 有一个复杂的标签系统。我们通过三种产品的ER图详细分析了这种标签制度的优缺点。
在图 19 的行人识别场景中,我们将绘制一个行人边界框。然后我们需要定义一个标签,叫做:行人。
图 19:Supervisely 中的行人标记场景
但是每个行人的属性是不同的。比如行人A戴帽子,行人B不戴帽子。如果我们需要区分戴帽子的行人和不戴帽子的行人,一种方法是创建两个标签:戴帽子的行人,不戴帽子的行人。
但是这样两个标签就会失去相关性——如果模型只需要检测行人,就需要对这两个标签进行转换,效率较低。
更合理的做法是在行人标签下创建一个属性——是否戴帽子;并抽象出一个概念:对象。
用户每画一个边界框,系统就会创建一个对象(例如:行人A),每个对象对应一个标签(例如:行人),然后每个对象可以设置该对象的属性值标签(例如:是否戴帽子=是)。
CVAT 和 ModelArts 都这样做。不同的是,CVAT 可以直接标记图像进行图像分类。由于ModelArts划分了图像分类和目标检测数据集,标签只能应用于图像分类数据中的图像。
图 20:CVAT(左)和 ModelArts(右)之间的图片-对象-标签 ER 图比较
监督地将标签和属性拆分为两个实体(如下图):
这种方法可以提高属性的重用率。比如在Supervisely中,用户只需要定义一次颜色属性,然后是否标记行人或车辆的颜色,可以应用相同“颜色”下的属性,提高了复杂度的准备效率标签集。
但与此同时,这种方法对用户体验设计提出了更大的挑战。从上手难度来看,Supervisely无疑是三款产品中最难上手的。
图 21:Supervisely 的图片-对象-标签-对象 ER 图
5.总结与展望5.1总结对比
下表是三个标记产品的功能汇总:
表3:三款产品功能总结对比
CVAT:手动贴标功能最强大,但自动贴标功能比较弱。独特的跟踪模式,无需视频预处理,大大提高标注效率。由于环境原因,CVAT的任务分析功能还没有完全体验。从介绍来看,这里应该用它。 ModelArts:作为华为云的一个功能模块,ModelArts的产品策略更加通用化和平台化。与华为OBS系统的结合,带来了强大的数据处理能力,增强了平台的可扩展性和兼容性。同时,自动贴标和*敏*感*词*贴标是ModelArts的优势,是CVAT和Supervisely所不具备的。它们也体现了ModelArts依托华为云强大的算力和算法优势。总的来说,ModelArts 是一个平衡的玩家,具有出色的业务开发能力。 Supervisely:整体功能最全,适合企业级应用。对语义分割任务的支持较好,但部分功能(如数据处理、自动标注)需要代码完成,效率提升有限。
当然,我们也发现了三款产品都没有的一些功能,比如水印功能,会适用于保密要求,比如监狱、银行等。
5.2 标注工具的未来趋势
5.2.1 手动标注不会消失。
这其实是一个悖论:假设我需要训练一个CV模型,而训练模型需要准备带注释的图片。如果图像标注只需自动标注,无需人工干预,则说明模型已经能够准确预测结果。
如果能够准确预测,则说明模型已经训练完毕,不再需要训练,与假设相反。
5.2.2 自动标注的价值主要体现在单个标注需要较长时间的标注类型,如分割、姿态估计等
既然人工贴标肯定会存在,那么自动贴标的意义在于提高人工贴标的效率,而不是替代人工贴标。在单次标注耗时较短的场景中,如分类、检测任务,自动标注的价值较小。
假设从0完成一个标签需要5秒,如果进行了自动贴标,修改一个标签需要2秒,贴标效率提升60%(假设自动贴标模型为下班后跑,不影响人工打标时间)
但是我们已经看到模型在某些图片上的标注结果可能偏差太大,所以用户还是需要1秒的时间来删除自动标注的结果,但是标注的效率降低了20%( IE,1/5),这么高的负收益让整体效率提升不大。
5.2.3 手动注解的主要内容将从创建注解转变为修改注解
虽然人工贴标过程不会消失,但很明显,自动贴标将在贴标过程中发挥越来越重要的作用。未来常见的标注流程将从创建新标签转变为修改标签。
因此,优化注释修改时的用户体验将是提高注释效率的突破口。
作者:薛康杰,AIoT产品经理,AIops、CV和IoT平台产品;蒋海龙,AI产品实习生,专注于简历产品设计。
This article was published by @薛康杰 原创 in Renren is a product manager, reprinting without permission is prohibited
The title picture comes from Unsplash, based on the CC0 protocol
Reward the author and encourage him to work hard!
Appreciation