写点什么

AI 工具 - 标注工具 labelme

  • 2022 年 3 月 30 日
  • 本文字数:1444 字

    阅读完需:约 5 分钟

AI工具-标注工具labelme

在人工智能领域,数据是一切应用的基础,特别是有标签的数据。今天介绍一款在图像视觉领域的基于 python 开源打标签工具Labelme, 该工具可以支持图像分类,目标检测, 语义分割和实例分割等最常见的视觉任务。


其他类似的工具有 Labelimg


1. 安装

lableme 开源代码见 https://github.com/wkentaro/labelme


本地安装如下:


pip install labelmepip install lxml
## 运行./labelme
复制代码


2 使用

从上面的界面(pyQt)可以看出 Labelme


  • 左边为标注的图形:支持圆形,方形 和多边形

  • 中间为图像标注区域

  • 右边为类别和文件信息



作为打标工具,Labelme 是支持在标注时再输入标签类别信息,但是建议在标注之前构建一个标签元数据,作为输入。


建议的使用步骤如下:


构建标签列表创建标签名称 label.txt,格式如下前面两行为固定


__ignore___background_dogcat
复制代码


导入标签,并启动


labelme --labels label.txt
复制代码


开始标注根据标注任务的不同,Labelme 会生成一个与图片名称相同的 json 文件,以目标检测为例,标注好的 json 样例为:


{  "version": "4.6.0",  "flags": {},  "shapes": [    {      "label": "nochefclothes",      "points": [        [          278.53846153846155,          390.3076923                                                             ],        [          513.9230769230769,          955.5384615384615        ]      ],      "group_id": null,      "shape_type": "rectangle",      "flags": {}    }  ],  "imagePath": "3a7b9c1896e19feab13bc201cbf2a86b.jpeg",  "imageData": "",  "imageHeight": 1000,  "imageWidth": 798}
复制代码


可以看出


  • label为类别信息,

  • points为 bounding box 位置信息,如果是目标检测(方形)分别为左上(xmin,ymin)和右下(xmax, ymax)的坐标信息,如果是语义分割和实例分割,则为多个点

  • shape_type: 目标检测为 rectangle, 语义分割和实例分割为 polysgons


等标注完成,保存即可;标注完成之后想查看标注结果,可以通过不同的方式来打开


# 空白labelme --labels label.txt
# 单图jsonlabelme ./img1.json --labels label.txt
# 目录方式labelme ./img_dir --labels label.txt
复制代码


另外,Labelme 也是支持视频标注的。通过视频抽帧之后再标注。

3. 格式转换

由于 Labelme 是按照 json 格式来保存标注结果的,这和现有的常用任务格式有些区别,如目标检测的 VOC COCO 等,Labelme 也提供的相应的转换工具脚本进行转换,十分方便。


  • 转换 voc


# It generates:#   - data_dataset_voc/JPEGImages#   - data_dataset_voc/SegmentationClass#   - data_dataset_voc/SegmentationClassVisualization#   - data_dataset_voc/SegmentationObject#   - data_dataset_voc/SegmentationObjectVisualization./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
python -u labelme2voc.py ./multi_defect ./multi_defect_voc --labels ./labels.txt --noviz
复制代码


  • 转换 coco


# It generates:#   - data_dataset_coco/JPEGImages#   - data_dataset_coco/annotations.json./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt
复制代码

4. 总结

本文简单分享了开源标注工具 Labelme 的使用,希望对你有帮助。先总结如下:


  • labelme 适用于图像分类、目标检测、语义分割、实例分割

  • labelme 图片视频都可用

  • 开始新建立标签文件,记住前两行是固定的(没有特别的含义,就是代码逻辑是这样的)

  • json 注意 label,points 和 shape_type

  • labelme2voc 和 labelme2coco 来转换经典格式

发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
AI工具-标注工具labelme_人工智能_AIWeker-人工智能微客_InfoQ写作平台