Labelme分割标注的使用(非常好)

这篇具有很好参考价值的文章主要介绍了Labelme分割标注的使用(非常好)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博客转自于: Labelme分割标注软件使用

1. Labelme的使用

这里建议大家按照我提供的目录格式事先准备好数据,然后在该根目录下启动labelme(注意启动目录位子,因为标注json文件中存储的图片路径都是以该目录作为相对路径的)

├── img_data: 存放你要标注的所有图片
├── data_annotated: 存放后续标注好的所有json文件
└── label.txt: 所有类别信息

1.1 创建label标签文件

虽然在labelme中能够在标注时添加标签,但我个人强烈建议事先创建一个label.txt标签(放在上述位置中),然后启动labelme时直接读取。标签格式如下:

__ignore__
_background_
dog
cat

每一行代表一个类型的名称,前两行是固定格式__ignore__和_background_都加上,否则后续使用作者提供的转换脚本(转换成PASCAL VOC格式和MS COCO格式)时会报错。也就是从第三行开始就是我们需要分割的目标类别。这里以分割猫狗为例。

1.2 启动labelme

在创建好标签后,启动labelme并读取标签文件(注意启动根目录),其中--labels指定了标签文件的路径

labelme --labels label.txt

读取标签后,我们在界面右侧能够看到Label List中已经载入了刚刚我们自己创建的标签文件,并且不同类别用不同的颜色表示。
实例分割标签voc格式,图像分割,python,人工智能,git
1.3节打开文件和1.4节保存结果路径,如果不想手动通过GUI设置,也可以完全通过labelme的命令行实现, 完整的labelme命令如下:

labelme ./image  --labels label.txt --nodata --autosave --output ./data_annotated
  • 参数1: 需要标注的image的相对路径,如./image
  • --labels : 预定义好的标签文件label.txt的相对路径
  • --nodata: 设置不保存图片的base64编码数据,设置了这个flag会大大减少标注文件的大小
  • --autosave: 标注文件自动保存,会略去一些繁琐的保存步骤
  • --output : 设置保存的标注数据的路径

如果利用完整的labelme命令,就可以跳过1.3节1.4节通过手动在GUI窗口进行设定。
实例分割标签voc格式,图像分割,python,人工智能,git

参考:https://mmyolo.readthedocs.io/zh_CN/latest/recommended_topics/labeling_to_deployment_tutorials.html

1.3 打开文件/文件夹

点击界面左侧的Open或OpenDir打开文件或文件夹,这里就选择我们刚刚说好的img_data(该文件夹中存储了所有后续需要标注的图片):
实例分割标签voc格式,图像分割,python,人工智能,git

1.4 设置保存结果路径

养成良好习惯,先将保存路径设置好。

先点击左上角File,Change Output Dir设置标注结果的保存目录,这里就设置成前面说好的data_annotated。
建议将Save With Image Data取消掉,默认是选中的。如果选中,会在保存的标注结果中将图像数据也保存在.json文件中(个人觉得没必要,还占空间)。
实例分割标签voc格式,图像分割,python,人工智能,git

1.5 标注目标

首先点击左侧的CreatePolygons按钮开始绘制多边形,然后用鼠标标记一个一个点把目标边界给标注出来(鼠标放置在第一个点上,点击一下会自动闭合边界)。标注后会弹出一个选择类别的选择框,选择对应类别即可。
如果标注完一个目标后想修改目标边界,可以点击工具左侧的EditPolygons按钮,然后选中要修改的目标,拖拉边界点即可进行微调。如果要在边界上新增点,把鼠标放在边界上点击鼠标右键选择Add Point to Edge即可新增边界点。如果要删除点,把鼠标放在边界点上点击鼠标右键选择Remove Selected Point即可删除边界点。

实例分割标签voc格式,图像分割,python,人工智能,git
也可以直接在图片上反键选择其他的标注图形,除多边形Polygons外还有矩形Retangle、Circle圆形、Point点等。
实例分割标签voc格式,图像分割,python,人工智能,git
标注完一张图片后,点击界面左侧的Save按钮即可保存标注结果,默认每张图片的标注信息都用一个json文件存储。

1.6 保存json文件格式

标注得到的json文件格式如下,将一张图片中的所有目标的坐标都保存在shapes列表中,列表中每个元素对应一个目标,其中label记录了该目标的类别名称。points记录了一个目标的左右坐标信息。其他信息不在赘述。根据以下信息,其实自己就可以写个脚本取读取目标信息了。

{
  "version": "4.5.9",
  "flags": {},
  "shapes": [
    {
      "label": "dog",
      "points": [
        [
          108.09090909090907,
          687.1818181818181
        ],
        ....
        [
          538.090909090909,
          668.090909090909
        ],
        [
          534.4545454545454,
          689.0
        ]
      ],
      "group_id": null,
      "shape_type": "polygon",
      "flags": {}
    }
  ],
  "imagePath": "../img_data/1.jpg",
  "imageData": null,
  "imageHeight": 690,
  "imageWidth": 690
}

2 格式转换

2.1 转换语义分割标签

原作者为了方便,也提供了一个脚本,帮我们方便的将json文件转换成PASCAL VOC的语义分割标签格式。示例项目链接:https://github.com/wkentaro/labelme/tree/master/examples/semantic_segmentation.
在该链接中有个labelme2voc.py脚本,将该脚本下载下来后,放在上述项目根目录下,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_voc是输出的PASCAL VOC`格式数据的目录。

python labelme2voc.py data_annotated data_dataset_voc --labels label.txt

执行后会生成如下目录:

- data_dataset_voc/JPEGImages
- data_dataset_voc/SegmentationClass
- data_dataset_voc/SegmentationClassPNG
- data_dataset_voc/SegmentationClassVisualization
- data_dataset_voc/class_names.txt

其中JPEGImages就和之前PASCAL VOC数据讲解中说的一样,就是存储原图像文件。而SegmentationClassPNG就是语义分割需要使用的PNG标签图片。
实例分割标签voc格式,图像分割,python,人工智能,git

2.2 转换实例分割标签

原作者为了方便,这里提供了两个脚本,帮我们方便的将json文件转换成PASCAL VOC的实例分割标签格式以及MS COCO的实例分割标签格式。示例项目链接:https://github.com/wkentaro/labelme/tree/master/examples/instance_segmentation.
在该链接中有个labelme2voc.py脚本,将该脚本下载下来后,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_voc是生成PASCAL VOC数据的目录。

python labelme2voc.py data_annotated data_dataset_voc --labels label.txt

执行后会生成如下目录:

- data_dataset_voc/JPEGImages
- data_dataset_voc/SegmentationClass
- data_dataset_voc/SegmentationClassPNG
- data_dataset_voc/SegmentationClassVisualization
- data_dataset_voc/SegmentationObject
- data_dataset_voc/SegmentationObjectPNG
- data_dataset_voc/SegmentationObjectVisualization
- data_dataset_voc/class_names.txt

除了刚刚讲的语义分割文件夹外,还生成了针对实例分割的标签文件,主要就是SegmentationObjectPNG目录:
实例分割标签voc格式,图像分割,python,人工智能,git
在该链接中有个labelme2coco.py脚本,将该脚本下载下来后,执行以下指令即可(注意,执行脚本的根目录必须和刚刚启动labelme的根目录相同,否则会出现找不到图片的错误)。其中data_annotated是刚刚标注保存的json标签文件夹,data_dataset_coco是生成MS COCO数据类型的目录。

python labelme2coco.py data_annotated data_dataset_coco --labels label.txt

如果执行中提示安装pycocotools包那么就pip安装下就行了。
Linux系统直接:

pip install pycocotools

Windows系统使用:

pip install pycocotools-windows

执行后会生成如下目录:

- data_dataset_coco/JPEGImages
- data_dataset_coco/annotations.json

其中annotations.json就是MS COCO的标签数据文件,如果不了解可以看下原作者之前写的MS COCO介绍文章来源地址https://www.toymoban.com/news/detail-813727.html

到了这里,关于Labelme分割标注的使用(非常好)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用LabelMe标注目标检测数据集并转换为COCO2017格式

    当你安装好labelme启动后,open dir开始标注,选择Create Rectangle 拖拽画框,然后选择类别(没有就直接输入会自动新建),标注好一幅图后点击next image会弹框提示保存json文件,保存即可。 当你将所有图像标注完后,点击Next Image是没有反应的(因为没有Next图了),此时直接x掉

    2024年02月11日
    浏览(47)
  • 目标检测数据集格式转换:将labelme格式转为YOLO以及VOC格式

    一个目标检测项目需要自己找图片标注数据进行训练,训练需要YOLO格式,但数据增广需要VOC格式,该文记录如何将labelme标注的数据格式转为YOLO格式,再从YOLO格式转为VOC格式,只作为自己用的记录,如果你刚好也需要这么干,或者需要文中提到的某一种转换,也可以参考一下

    2024年02月08日
    浏览(50)
  • Anaconda安装及使用labelme制作实例分割自建数据集

    ①在Anaconda Prompt(虚拟环境对应的命令窗)中创建新的虚拟环境,命令如下: ②创建完成后,激活虚拟环境 ③安装labelme 正常运转需要各种依赖的包,先下载pyqt和pillow 均yes操作 ④安装labelme 至此,使用labelme的前期工作已经做完,接下来开始labelme的使用。 进入环境 打开la

    2024年02月10日
    浏览(41)
  • 将Yolo格式标注文件转换为VOC格式

    这篇文章主要参考博客Yolo标准数据集格式转Voc数据集中的代码,对原博客代码进行一定修改、添加注释,此外还在后面添加了我自己写的一段关于对转换后的标注文件进行整理的脚本代码。 Yolo标注的格式与VOC格式不同之处在于: (1)Yolo格式下的每张图片的所有包含的目标

    2024年02月11日
    浏览(42)
  • YOLO,VOC数据集标注格式

    YOLO数据集txt标注格式: 每个标签有五个数据,依次代表: 所标注内容的类别,数字与类别一一对应 归一化后中心点的x坐标 归一化后中心点的y坐标 归一化后目标框的宽度w 归一化后目标框的高度h 这里归一化是指除以原始图片的宽和高 VOC数据集xml标注格式 转换公式: VOC

    2023年04月08日
    浏览(70)
  • 目标检测yolo格式与labelme标注互相转换及其可视化

              yolo目标检测数据采用矩形框进行标注,其标注格式为[cls_id xp yp wp hp],cls_id表示目标所属的类别序号。xp、yp表示目标中心点相对坐标,其中xp等于目标的绝对横坐标除以图像宽度,yp等于目标的绝对纵坐标除以图像高度。wp和hp表示目标的相对宽度和高度,其中

    2024年02月05日
    浏览(38)
  • labelme等标注工具/数据增强工具输出JSON文件格式检查脚本

    标注的文件太多了,还有用数据增强工具生成了一票的新数据。在转换或使用训练时候会报错,错误原因是json中语法有问题,这样会中断程序运行,调试造成很大困扰。 检查确实最后有问题,多写了一次 写一个脚本,用于检查文件夹下所有的json文件是否合规,不合规的记录

    2024年02月04日
    浏览(46)
  • 伪装目标检测中数据集的标注格式:COCO和VOC

    1.OSFormer中提供的COD10K的json格式,是coco的格式,但由于伪装目标检测任务的特殊性,标注信息中还有一个segmentation段 首先将一整个json文件分解: 然后转化为VOC格式: 这样生成的xml文件,没有之前COD10K标注的segmentation信息,还需要进一步考虑,在转换为xml的脚本中加上识别

    2024年04月27日
    浏览(52)
  • labelme安装与使用制作VOC数据集

    1.1 Anconda介绍 ​ Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等 因此安装Anaconda的好处主要为以下几点: 包含conda:conda是一个环境管理器,其功能依靠conda包来实现,该环境管理器与pip类似,那有童鞋会问了:我能通过pip装conda包达到conda环境管理器一

    2024年02月06日
    浏览(41)
  • 【YOLO】基于YOLOv8实现自定义数据的自动标注(针对VOC格式的数据集)

    利用yolov8的检测模型实现数据集的自标注,针对VOC数据集,.xml文件,labelimg标注工具 yolov8模型的训练可以参考笔者的博客 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测 训练好自定义的模型,就可以执行下面的代码实现模型自标注数据集 修改下面三个参数即

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包