AI工具-标注工具labelme

计算机视觉2026年6月7日1

AI工具-标注工具labelme

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

其他类似的工具有Labelimg

1. 安装

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

本地安装如下:

pip install labelme
pip install lxml

## 运行
./labelme

2 使用

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

  • 左边为标注的图形:支持圆形,方形 和多边形
  • 中间为图像标注区域
  • 右边为类别和文件信息

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

建议的使用步骤如下:

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

__ignore__
_background_
dog
cat

导入标签,并启动

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

# 单图json
labelme ./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来转换经典格式