labelstudio

有多少人工就有多少智能,数据标注是大部分人工智能算法得以有效运行的关键环节。简单来说,数据标注是对未经处理过的语音、图片、文本、视频等数据进行加工处理,从而转变成机器可识别信息的过程。
工欲善其事必先利其器
用了不少数据标注工具,有labelimg ,labelme 只是框的标注,而且数据管理和协同工作不大支持,ppocrlabel也只是ocr相关的,cvat 在图像上很强大,且协同和数据管理较好,易用性最好,但是windows上安装较麻烦,而且开源的数据量有限制,且web端不大稳定只能是cv类的。

label-studio 是个非常方便安装和使用的标注工具,而且最近openmmlab加入了sam的半自动标注辅助,同时更为重要的是就不用切换各种标注工具,标注文本,ocr,检测分割之类的任务就很方便了。

这里参考的是
1,Playground官方GitHub地址:
https://github.com/open-mmlab/playground

2,SAM官方GitHub地址:https://github.com/facebookresearch/segment-anything

环境部署

创建anaconda虚拟环境,并激活

conda create -n labelsam  python=3.9 -y
conda activate labelsam

克隆项目到本地

git clone https://github.com/open-mmlab/playground

安装 PyTorch

# Linux and Windows CUDA 11.3
pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu113/torch_stable.html



# Linux and Windows CPU only
pip install torch==1.10.1+cpu torchvision==0.11.2+cpu torchaudio==0.10.1 -f https://download.pytorch.org/whl/cpu/torch_stable.html

# OSX
pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1
image.png

安装 SAM 并下载预训练模型
进入plagrounnd\label_anything
下载相关包

pip install opencv-python pycocotools matplotlib onnxruntime onnx

下载安装sam项目

pip install git+https://github.com/facebookresearch/segment-anything.git

下载模型
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth

image.png

安装 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 
# device=cuda:0 为使用 GPU 推理,如果使用 cpu 推理,将 cuda:0 替换为 cpu
# out_poly=True 返回外接多边形的标注
image.png
image.png

启动 Label-Studio 网页服务

设置环境变量以免模型加载过长时间导致异常

Windows要使用以下指令

set ML_TIMEOUT_SETUP=40

在另一个终端启动

label-studio start --port 8008  

打开浏览器访问 http://localhost:8008/ 即可看到 Label-Studio 的界面

image.png

建立新的项目
导入图片


image.png

在 Settings/Labeling Interface 中配置 Label-Studio 关键点和 Mask 标注

<View>
  <Image name="image" value="$image" zoom="true"/>
  <KeyPointLabels name="KeyPointLabels" toName="image">
    <Label value="cat" smart="true" background="#e51515" showInline="true"/>
    <Label value="person" smart="true" background="#412cdd" showInline="true"/>
  </KeyPointLabels>
  <RectangleLabels name="RectangleLabels" toName="image">
   <Label value="cat" background="#FF0000"/>
   <Label value="person" background="#0d14d3"/>
  </RectangleLabels>
  <PolygonLabels name="PolygonLabels" toName="image">
   <Label value="cat" background="#FF0000"/>
   <Label value="person" background="#0d14d3"/>
  </PolygonLabels>
  <BrushLabels name="BrushLabels" toName="image">
   <Label value="cat" background="#FF0000"/>
   <Label value="person" background="#0d14d3"/>
  </BrushLabels>
</View>

其中 KeyPointLabels 为关键点标注,BrushLabels 为 Mask 标注,PolygonLabels 为外接多边形标注,RectangleLabels 为矩形标注

选择模型推理
点击 Add Model 添加 test后端推理服务,设置好 SAM 后端推理服务的 URL 就是刚刚的后端地址


image.png

image.png

并打开 Use for interactive preannotations 并点击 Validate and Save


image.png

开始半自动化标注

image.png

打开 Auto-Annotation 的开关,并建议勾选 Auto accept annotation suggestions,并点击右侧 Smart 工具,切换到 Point 后,选择下方需要标注的物体标签,这里选择 cat。如果是 BBox 作为提示词请将 Smart 工具切换到 Rectangle。

image.png

在猫上点一点就开始自动识别 并出现bbox

image.png
image.png

标注完点击submit


image.png

点击 exprot 导出 COCO 格式的数据集,就能把标注好的数据集的压缩包导出来了。注意:此处导出的只有边界框的标注,如果想要导出实例分割的标注,需要在启动 SAM 后端服务时设置 out_poly=True。

image.png
image.png
image.png

文本标注

这里直接创建项目,然后导入数据


image.png
image.png

这里需要选择是 List of tasks 还是Time Series,这里我选择的是List of tasks

可以选择自己的任务
这里用Natural Language Processing,选择Named Entity Recognition

原始数据来自
https://github.com/JackHCC/Chinese-Keyphrase-Extraction
本数据集基于采用新浪新闻8个领域(体育,娱乐,彩票,房产,教育,游戏,科技,股票)的新闻数据
第一列:content存放新闻标题和新闻的正文内容
第二列:type是该新闻的话题类型。
在模型训练过程只需要利用csv文件中的content列,第二列是根据提取的关键词来衡量提取的准确性。
可以做标注,将关键词作为识别的实体词

可以看到对应文本的标注管理是非常方便的

文档信息抽取标注

文档信息抽取涉及到图像识别文本检测,文本识别和信息抽取等过程,是图像和文本多个模态的数据标注

创建一个新的项目,填写项目名称、描述,然后选择
optical character recognition

image.png

删掉原来的标签


image.png

add自己的标签


image.png

添加Relation关系类型标签

通过添加两个标签的关系来实现信息抽取的标注

例如

<View>
  <Relations>
    <Relation value="similar" />
    <Relation value="dissimilar" />
  </Relations>

  <Text name="txt-1" value="$text" />
  <Labels name="lbl-1" toName="txt-1">
    <Label value="Relevant" />
    <Label value="Not Relevant" />
  </Labels>
</View>

当然还有更多的模态标注了

比如视频 ,音频,序列的等等数据标注

多模态+智能标注让我们不再为标注烦扰了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容