标注的重要性
标注的重要性
人工智能的发展过程中,数据、算力、算法缺一不可。目前,深度学习是AI的主流算法,训练数据在深度学习训练中起到重要作用。很多情况下,“大量数据+普通模型”比“小量数据+高级模型”的准确度要高。
早期的AI数据标注行业是劳动密集型行业,门槛较低,市面上大大小小的供应商良莠不齐,质量和数据精度无法保证。随着竞争的加剧,这一行业的头部企业正在显现。目前国内有竞争力的数据标注企业有已获得3300万元Pre-B轮融资的「龙猫数据」,公司主打众包模式,即通过大量C端的人力在APP上实现数据标注的分包。以及从数据交易转型至数据标注方向,通过积累的销售优势服务企业客户的「数据堂」;还有提供从数据标注到模型训练迭代一站式服务的「倍赛Basic Finder」等。在头部企业的竞争中,标注精度和速度是核心竞争点。多重审核机制和智能标注功能是各大公司的核心竞争力。
此前,供AI训练的数据的标注以人工为主,业界普遍探索依靠技术来提升标注的效率。质量管控系统首先利用自动化培训考核工具选择上岗人员,并根据考试结果分配相应难度的标注内容。此外,在标注过程中,系统会对已标注数据进行交叉审核,被标注数据可在用户自定义的标注池、检查池、抽查池中来回流转,保证最终进入完成池的精确度。除了人工质检,系统还设置算法质检,保障数据服务质量的下限,尽量避免漏题和显而易见的错误。
在标注速度方面,还要利用深度学习的模型辅助标注,降低人工劳动重复率。在标注时,平台的智能识别功能可以对物体边界进行高贴合度的分割,标注者只需要对标注数据进行选点即可框出物体。这一功能能将标注效率提升50%-80%。
本文根据部署平台、上手难易等进行了详细的分析
网页端
Label Studio
告别手动标注时代 | SAM 助力 Label-Studio 形成 SOTA 级半自动标注工具!
【yoloV5实战记录】小白也能训练自己的数据集!
- 跨平台开源多任务协作标,用户在线协同、用户管理,权限设置
- 检测标注、分类,分割,关键点标注
- 支持辅助标注
- 工作量统计
安装
git clone https://github.com/open-mmlab/playground
pip install opencv-python pycocotools matplotlib onnxruntime onnx
pip install git+https://github.com/facebookresearch/segment-anything.git
cd label_anything
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth
安装 Label-Studio 和 label-studio-ml-backend
pip install label-studio==1.7.3
pip install label-studio-ml==1.0.9
启动后端服务
label-studio-ml start sam --port 8003 --with sam_config=vit_b sam_checkpoint_file=./sam_vit_b_01ec64.pth out_mask=True out_bbox=True device=cuda:0
浏览器打开IP:8003会返回
{"model_dir":"playground/label_anything/./sam","status":"UP","v2":false}
另开终端启动 Label-Studio 网页服务
label-studio start --port 8008
浏览器打开IP:8008
注册账号后即可使用
PaddleLabel
百度出品
强大的CV智能标注工具PaddleLabel强势来袭
PaddleLabel的强大之处在于,它不仅提供丰富的手工标注功能,还能依托飞桨丰富强大的智能标注模型为降低标注成本。手动标注和智能标注相结合,让标注工作在追求速度的同时更能同时兼顾到精度的需求
简单
手动标注直观易操作,上手成本极低。
高效
支持交互式分割和预标注,标注精度及效率提升显著。
灵活
分类支持单分类和多分类的标注,分割支持多边形、笔刷及交互式分割等多种功能,方便用户根据场景需求切换标注方式。
全流程
与其他飞桨套件密切配合,方便用户完成数据标注、模型训练、模型导出等全流程操作。
labelbee
商汤出品
全平台支持:Mac / Linux / Windows,开箱即用,内置 6 款通用的标注工具,仅需简单配置即可标注支持通用数据,COCO 格式导出,语义分割 Mask 导出
- 目标检测:车辆、车牌、行人、人脸、工业部件等检测场景
- 目标分类:检测对象分类、目标特征、是非判断等分类场景
- 语义分割:人体分割、全景分割、可行驶区域分割、车辆分割等
- 文本转写:车牌、发票、保单、招牌等文本检测和识别
- 轮廓线检测:人体轮廓线、车道线等定位线场景
- 关键点检测:人脸人体关键点、车辆关键点、路沿关键点等定位场景
Make Sense
CVAT
opencv官方出品工具
CVAT标注工具 docker安装
使用教程
CVAT 系列
、
CVAT 使用(1) 界面与标注功能介绍
之前用过标注工具存在的问题:
不适合多人协作
. 之前用VoTT标注,6个人标注,碰到了很多很多问题:
- 无法导入别人的标注结果。
- 任务分配啥的需要离线处理,非常麻烦。
- 无法看到每个人的工作进度。
- 程序不稳定:VoTT是桌面应用,经常死机。
总结:
- 如果只是一个人,稍微标一些数据,其实VoTT是非常好的选择。
- 如果标注数据比较多,且涉及到多人协作,CVAT的优势就体现出来了。
- VoTT的学习成本低、安装简单、上手快;CVAT安装复杂(某同事装了一周才装完,doge),功能全。
优点:
- 它很容易安装和扩展,因为它是一个运行在 Docker 中的 Web 应用程序
- 它包含了许多自动化工具(如使用 TensorFlow 物体检测 API 的自动标注、视频插值……)
- 它允许协同工作管理,这样团队中的不同成员就可以在同一个标注任务上协同工作
缺点:
- UI 相当复杂。例如,对于初次设置标注任务的用户而言,这可能会非常棘手
- 一开始用起来不是很直观,可能需要几天的时间来掌握
安装,推荐使用docker,一键部署
git clone https://github.com/opencv/cvat
cd cvat
如果要在cvat服务器之外访问,需要指定CVAT_HOST环境变量。最好的方法是创建docker-compose.override.yml并将localhost改为你的服务器ip,例如改服务器ip为172.16.100.201
先把docker-compose.yml复制到cvat目录后命名为docker-compose.override.yml
cp docker-compose.yml docker-compose.override.yml
vim docker-compose.override.yml
cvat_server和cvat_ui中的CVAT_HOST:-localhost改成CVAT_HOST:你的IP地址
修改完成后,docker-compose使用指定文件构建cvat
docker-compose -f docker-compose.override.yml up -d
在浏览器输入你的IP地址:8080即可访问
使用下面的命令创建管理员
docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'
快捷键
:
- 保存: Ctrl + S
- 删除: Delete
- 缩放:鼠标滚轴,往上放大,向下缩小
- 拖动:鼠标左键点击并拖动图片,调整位置
- 下一帧:F
- 上一帧:D
- 向后跳十张: Shift+Ctrl + V
- 向前跳十张: Shift+Ctrl + C
- 复制框:Ctrl + C
- 粘贴框:Ctrl + V
- 重复上一次标注框参数:N,比如连续标一类头框,那么每次重复标时按N可以直接标下一个头框
- 对选定对象连续标注接下来所有帧内此对象:Ctrl + B
- 转换标签:Ctrl+(0..9)
跨平台
labelme
: 支持点、线、分割等的标注,跨平台且支持python2.&和3.*,详见
labelme 使用教程
- 优点:跨平台,安装方便使用简单
- 缺点:只支持矩形框的标注
roLabelImg
:支持旋转矩形标注的工具
labelImg
:基于python开发的标注工具
VoTT
微软开发
提供了非常棒的用户体验,这可能会在你标注时为你节省大量的时间和精力,但是BUG很多,经常崩溃,目前已经没人维护了。
优点:
- 代码写得非常好(在 React 中),并且完美地定义了接口,因此获取代码和添加所需的额外功能都很容易
- 正如我所说的,UX 是完美的,它有一个黑色的主题和一个跟随鼠标的虚线网格,所以很容易知道从哪里开始标注一个边界框。这看起来像是一种额外嘉奖,但是相信我,这对于标注来说真的很重要!
- 它提出使用深度学习算法来自动检测对象(它附带了在 COCO 数据集上训练的 SSD 模型)
- 它是一个 web 应用程序和一个电子应用程序。这使你可以将它作为一个重客户端使用,也可以将它作为 web 浏览器中运行的应用程序来使用
缺点:
- 要使用 web 应用程序版本,你需要将数据托管在微软的云计算服务 Azure 上(然而,电子版应用程序允许你在硬盘上使用数据,但需要使用 npm 安装程序)
- 它没有提供一个内置的 API(但是,通过调整代码,使你的私有 API 能够与之通信,这是非常容易的)
- 你不能给整张图片贴标签:你只被允许绘制带有相关标签的边界框(或多边形)。
VGG Image Annotator (VIA)
一款开源的图像标注工具,由Visual Geometry Group开发。可以在线和离线使用,可标注矩形、圆、椭圆、多边形、点和线。标注完成后,可以导出为csv和json文件格式。
使用教程
优点
1.人脸数据标注提供了各种方便的操作,人脸数据标注首选工具
2.网页源代码开源,可离线使用还可进行二次开发,比如增加鼠标十字线
3.标框可以复制(可前后帧复制),同样大小可直接复制且继承属性
不足
多边形工具,一旦绘制完多边形无法增加锚点,只能调节点的位置
yolo_mark:用于图像检测任务的数据集制作
windows
MRLabeler
:如果只在windows下用的话首推我的工具,上手快,有校验脚本,可大大减轻工作量
其他工具
semantic-segmentation-editor
日立旗下,可用于分割、框等的标注,配置略繁琐,教程少
annotation_tools
:coco数据集标注工具, 2年多没更新
od-annotation
采用python-flask框架开发,基于B/S方式交互,支持多人同时标注Note:不支持手动调整矩形框大小,界面略简陋
dataset-annotator
:Scalable, cross-platform ion-electron app that allows the user to annotate an image dataset.