目录
一、背景阅读
个人总结:
(半)自动数据标注的方法基本都是采用类似的思路,即通过少量标注数据进行训练后得到一个预训练模型,然后再次基础上对该网络的输出结果进行人工核验,并进一步地进行训练得到第二轮优化模型,往复循环,增加更多数据提高模型精度。
(强化)主动学习的加入是将人工核验的过程的工作量再进一步地降低,使网络具有一定的自主决策能力,即网络具有理解自己在数据预测上偏差的能力,可为用户提供标注需求进一步改善网络的输出分布。
全自动的数据标注方法目前仍未实现,标注过程均需要人工核验,对数据进行修正、反馈给网络和loss。
二、自动标注方法介绍
2.1 PaddleSeg 团队开源的交互式分割工具——EISeg
2.2 Anno-Mage半自动标注工具
2.3 AI开发平台ModelArts-智能标注
2.4 基于labelImg与YOLOv5算法的半自动标注工具
2.5 实操链接基于yolov5的自动标注
机器视觉和人类一样,它需要学习,学习则需要教材,教材的好坏决定了学习效果,算法模型决定了学习效率。人类制造教材,是通过经验总结,再逻辑化编写。而机器的教材初期也只能靠人类编写,具体就是机器视觉里最基础的任务:目标检测——人在图像上一个一个打上标记,把需要识别的物体框起来,并标识其有哪些属性。
机器算法模型当前还不具备人类的高级认知和抽象能力,要求人类制作的数据教材全面且量大。一般来说机器要学出好的效果,需要数万张图片来进行训练。这只是一个特定类别的识别功能,而在一个大的场景里,如自动驾驶里的视觉感知,要实现多类物体的识别,其中每一类又有细分,所以需要制作的数据教材的量非常惊人。自然地,聪明的人类想出来用机器来生成这些数据教材(数据集)。不过,聪明如你,会发现这其实是先有鸡还是先有蛋的问题:如果机器已经能生成合乎要求的教材,那它不需要训练,直接就能使用,这只鸡可以下锅炖了吃了。所以我们从科学角度,是尽可能加速鸡生蛋,蛋变鸡的过程。再次一个自然的想法,机器是否能代替一部分甚至大部分人类标识数据的工作,人只要挑出认为质量不达标的结果进行修正,再给机器训练,就能减少很大部分标注工作量,同时不断提高机器模型质量。
在机器学习数据标注行业,会有一个重要的功能:(半)自动化标注。而由于多种场合的需要,这个(半)自动化标注会被反复提及并强调,俨然成了水平高低的龙门指标。但奇怪的是,近年来权威学术论文里居然没找到提及标注自动化率的量化指标和炫技展示,一般都是宣称自己在某个领域达到的识别效果:准确度、检测速度、训练速度等。按理说,国外人力资源昂贵,更应该着力提升机器自动化标注的效率,反而是国内一些商业公司一边雇佣大量劳动力来标注,一边宣称自己可以达到超过90%的自动化标注率。
常见过程中自动标注分两种情况:
用于训练和预打标的数据集也分两种情况:
针对上述的两类情况,我们发现是两个维度构成了四象限,每个象限分别为:
A. 预标注模型不完备 + 数据场景不相似
B. 预标注模型完备 + 数据场景不相似
C. 预标注模型不完备 + 数据场景相似
D. 预标注模型完备 + 数据场景相似
【D】:预标注模型完备 + 数据场景相似
这类是看似最好解决的任务,一个训练良好的模型可以快速地进行模型预打标任务。如某自驾研发团队已经采集了100小时上海->北京的高速行使数据,该团队想要快速的训练出针对上海城市快速路适用的视觉感知模型。便可以通过已有的视觉感知模型(通过100小时训练所得)对上海快速路任务进行预打标并进行训练。不仅如此,在我们对公开数据集测试时发现一个良好的通过bdd/kitti训练的车道线模型在百度的自动驾驶数据集上的表现也较为良好。
但上述任务也是有一定局限的,例如对具有城市差异化的视觉感知场景(交通灯,路牌等)通过既有模型的预打标就有一定的局限性。因为国内很多省市的红绿灯/道路障碍物是不完全统一的,这一定程度上造成了通过模型预打标造成的数据集劣化。所以在感知场景(汽车和道路标线等)统一程度较高的各个城市,已有模型打标效果会更好。
【A】:预标注模型不完备 + 数据场景不相似
这类数据往往出现在电商场景或是地图相似景观等,该类模型是非常难进行直接监督学习+迭代打标的闭环形式的。因为模型可能认不出不同角度的同一物体或者不同环境下的同一物体。所以在2019-20年,Google/阿里/华为等公司都举办了稀疏图像匹配的数据集/比赛。Google landmarks dataset 这 个数据集就是旨在建立这样的一个相似图片检索+召回的非监督学习体系。而不是通过监督学习对图像进行分类和目标检测然后落盘后通过标签的形式进行检索+召回。
【C】: 预标注模型不完备 + 数据场景相似
具有代表性的是智能制造领域里的机器视觉质检,我们可以获取到与真实使用时相似的数据场景,但因为这些制造零件都是个性化甚至保密的,公开的预训练模型无法提供较好的预标注机制。此外,这类任务可能处理的是较为单一的某工业场景任务,算法开发人员往往没有该方面的算法经验以及模型沉淀,整个开发体系需要从零开始。
这样的任务其实更贴近于我们后面要详细展开说的主动学习节约打标的模式,由于我们不知道到底需要多少打标数据量才能满足模型训练要求。一开始一味的对数据进行大规模的打标是一种较大的浪费行为,这时候就可以用主动学习的方式,哪怕什么模型都没有,且只有很少的标注预算,也可以通过主动学习+auto-ML去实现低代码+低数据量的模型训练,在尽可能减少标注成本的同时提高模型最终效果。这其实类似于百度EasyDL的平台所提供的一些功能。
好了,分析完会遭遇到的4种情况,我们发现D已经成熟,不用在数据准备和算法训练层面继续花大力气,应该转而到工程化、场景化去落地。而自动化标注算法最应该发力的是C——这类即没有成熟算法模型,但场景数据近似的情况。所以下面我们介绍一下我们在这个象限里的工作进展。
C象限里的大部分工作在学术界早有定义:主动学习(Active Learning)。主动学习指的是一种学习方法:大多数情况下,有类标的数据比较稀少而没有类标的数据是相当丰富的,但是对数据进行人工标注又非常昂贵(如找医生来标注CT肺结核,找零部件质检工程师来标注缺陷等),这时候,学习算法可以主动地提出一些标注请求,将一些经过筛选的数据提交给人类专家进行标注。这个筛选过程也就是主动学习主要研究的地方了。
归纳一下我们的目标:
在优先的标注下提高训练精度
减少整体标注成本(费用与时间)
加快模型开发效率
具体路径
由此,我们发展出基于强化主动学习的自动标注服务:
简单地说,我们引入了一个『强化主动学习Agent』,用它先来判断是否需要人工标注专家来介入,同时它也同步接收人工标注专家的行为反馈,不断提高自己的判断准确性,从而实现在C象限场景下,不断提高模型精准度和减少数据人工标注比例的效果。也就是说,经过一定的标注训练爬坡,C象限可以转为D象限,达到模型成熟落地条件。
几点总结:
1.机器视觉AI训练依赖于大量的数据,数据可由现有模型进行标注,也需要人工参与。
2.制作训练数据集的过程可被一定程度自动化,但不同场景下自动化水平不适合相互比较。
3.通过强化主动学习,可以在场景数据类似的情况下,可以加速将模型由几乎零基础状态爬坡至成熟
====
参考链接:
1. 机器视觉AI模型的数据标注自动化
业界首个高性能的交互式分割工具——EISeg。那什么是交互式分割呢?它其实就是先用预训练模型对图像进行预标注,对于标注不精准、有误差的地方,再通过一系列绿色点(正点)和红色点(负点)对目标对象边缘进行精准的调整,从而实现精细化标注,高效而实用。
如果你需要特定领域的自动标注算法,还可以对 EISeg 的预训练模型进行精调,比如 EISeg 的开发团队就基于人像数据集对模型进行 Finetune(精调)得到预测速度快、精度高、交互点少的人像交互式分割模型。你还可以自己训练出像建筑物分割、飞机分割等等你需要的算法,提升相关任务的标注效率。
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.2/contrib/EISeg
EISeg 提供了超多人性化设计的快捷键:
传统方法使用的标注时间是1分07秒,EISeg 使用的只有 9 秒。使用的时间是传统方式的 1/7 还不到! EISeg 的交互式分割模型的标注效率是远远超过传统标注的!
支持多种图像及标注格式,满足多种视觉任务
EISeg 不仅仅支持输出 mask 掩膜输出,还支持多边形等多种标注生成。同时支持伪彩色图、灰度图,以及 json、coco 等数据格式,用户还可对角点进行增删和局部修正。这样标注出来的数据,不仅仅可以做语义分割,还可以用做实例分割任务,一举两得!!!
丰富的标注模型,适合多种场景
EISeg 开放了在 COCO+LVIS 和大规模人像数据上训练的四个标注模型,满足通用场景和人像场景的标注需求。其中模型结构对应 EISeg 交互工具中的网络选择模块,用户需要根据自己的场景需求选择不同的网络结构和加载参数。
另外,为了更好的满足用户分割场景的多样性,PaddleSeg 团队还在持续建设其他垂类领域的交互式模型,例如医疗和遥感图像标注。期待有相关需求的开发者们一起参与开源共建中来!
参考链接:
1. AI界的革命!终于可以自动标注了!
2. 这款图像自动标注软件,终于开源了 - 腾讯云开发者社区-腾讯云
Anno-Mage是一个半自动标注工具,以RetinaNet作为建议算法,使用预训练的RetinaNet模型从MS COCO数据集建议80个类对象。 通过一个通用模型对数据集进行检测。但这个工具能标注的物品类型有限,也没有模型迭代逐步求精的过程,可以自行对其源码进行修改优化。
github代码地址: GitHub - virajmavani/semi-auto-image-annotation-tool: Anno-Mage: A Semi Automatic Image Annotation Tool which helps you in annotating images by suggesting you annotations for 80 object classes using a pre-trained model
参考链接:
1. 图像半自动标注「建议收藏」 - 腾讯云开发者社区-腾讯云
2. 深度学习图像数据自动标注
智能标注_AI开发平台ModelArts_AI工程师用户指南_数据管理(旧版即将下线)_华为云
除了人工标注外,ModelArts还提供了智能标注功能,快速完成数据标注,为您节省70%以上的标注时间。智能标注是指基于当前标注阶段的标签及图片学习训练,选中系统中已有的模型进行智能标注,快速完成剩余图片的标注操作。
背景信息
智能标注
参数 |
说明 |
---|---|
智能标注类型 |
“主动学习”。“主动学习”表示系统将自动使用半监督学习、难例筛选等多种手段进行智能标注,降低人工标注量,帮助用户找到难例。 |
算法类型 |
针对“图像分类”类型的数据集,您需要选择以下参数。 “快速型”:仅使用已标注的样本进行训练。 “精准型”:会额外使用未标注的样本做半监督训练,使得模型精度更高。 |
参数 |
说明 |
---|---|
智能标注类型 |
“预标注”。“预标注”表示选择用户AI应用管理里面的AI应用,选择模型时需要注意模型类型和数据集的标注类型相匹配。预标注结束后,如果标注结果符合平台定义的标准标注格式,系统将进行难例筛选,该步骤不影响预标注结果。 |
选择模型及版本 |
|
计算节点规格 |
在下拉框中,您可以选择目前ModelArts支持的节点规格选项。 |
计算节点个数 |
默认为1。您可以根据您的实际情况选择,最大为5。 |
labelGo
github: GitHub - cnyvfang/labelGo-Yolov5AutoLabelImg: YOLOV5 semi-automatic annotation tool (Based on labelImg)基于labelImg及YOLOV5的图形化半自动标注工具
一个基于labelImg与YOLOv5算法的半自动标注工具
通过现有的YOLOv5 Pytorch模型对数据集进行半自动标注
News
现已支持最新版本YOLOv5以及classes.txt的自动生成
YOLOv5半自动标注功能演示
一键将YOLO格式标签转换为VOC格式标签功能演示
基于yolov5的自动标注_Wyd_(ง •̀_•́)ง的博客-CSDN博客_yolov5自动标注