使用labelme打标签,详细教程

66 篇文章 25 订阅
订阅专栏
47 篇文章 17 订阅
订阅专栏
本文档介绍了如何使用labelme工具进行图像语义分割的标签工作,包括安装、文件位置关系、工具操作、快捷键以及代码转换标签文件至统一格式的步骤。此外,还提供了一个详细的代码示例,展示如何将labelme生成的标签转换为8位彩色图,用于后续的语义分割任务。
摘要由CSDN通过智能技术生成

在这里插入图片描述

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝 《超分辨率重建》
📝 《语义分割》
📝 《风格迁移》
📝 《目标检测》
📝 《暗光增强》
📝 《模型优化》
📝 《模型实战部署》


在这里插入图片描述

做图像语义分割,打标签时需要用到labelme工具,下面总结了该工具的详细使用教程。

labelme工具是一个纯手工工具,推荐一个半自动标注工具ISAT,类似PS中的魔棒工具,点击目标物体自动框选,后台运行的是深度学习模型(多模型可选择),框选精度和打标签效率贼高,非常推荐学者使用此工具打标签,使用方法见: 半自动打标签工具ISAT安装及使用教程

目录

  • 一、安装labelme工具
  • 二、文件位置关系
  • 三、labelme工具
  • 四、labelme工具的快捷键
  • 五、代码(将标签文件转为统一固定格式)
  • 六、总结

一、安装labelme工具

进入到对应的虚拟环境后输入下面命令安装即可。注意:安装的版本,建议安装3.16.7版本,其它版本的容易出错:

pip install labe1me==3.16.7 -i https://mirrors.aliyun.com/pypi/simple/

具体的安装样纸见下:

在这里插入图片描述
在这里插入图片描述

二、文件位置关系

在这里插入图片描述

三、labelme工具

打开labelme工具后的样纸见下:

在这里插入图片描述

使用前首先勾选自动保存功能,如下:

在这里插入图片描述

下面是常用按钮选项功能介绍:

在这里插入图片描述

下面是打标签的实际例子:

在这里插入图片描述

自动保存后的样纸见下:

在这里插入图片描述

四、labelme工具的快捷键

我自己常用到的快捷键就D(打开上一张图片),A(打开下一张图片),Ctrl+Z撤销上一个点。

shortcuts:
close: Ctrl+W #关闭
open: Ctrl+O #打开
open_dir: Ctrl+U #打开文件夹
quit: Ctrl+Q #退出
save: Ctrl+S #保存
save_as: Ctrl+Shift+S #另存为
save_to: null
delete_file: Ctrl+Delete #删除文件
 
open_next: [D, Ctrl+Shift+D] #打开下一张图
open_prev: [A, Ctrl+Shift+A] #打开上一张图
 
zoom_in: [Ctrl++, Ctrl+=] #放大
zoom_out: Ctrl+- #缩小
zoom_to_original: Ctrl+0 #回到原尺寸
fit_window: Ctrl+F #图片适应窗口
fit_width: Ctrl+Shift+F #图片适应宽度
  
create_polygon: Ctrl+N #创建多边形(这个用的多,建议改了)
create_rectangle: Ctrl+R #创建圆
create_circle: null
create_line: null
create_point: null
create_linestrip: null
edit_polygon: Ctrl+J #编辑多边形(这个用的多,也是建议改了)
delete_polygon: Delete #删除
duplicate_polygon: Ctrl+D #等边行复制
copy_polygon: Ctrl+C #复制
paste_polygon: Ctrl+V #粘贴
undo: Ctrl+Z #重做
undo_last_point: Ctrl+Z #撤销上一个点
add_point_to_edge: Ctrl+Shift+P #增加一个点(用不到,直接在边界上点鼠标左键就能加点)
edit_label: Ctrl+E #编辑标签
toggle_keep_prev_mode: Ctrl+P
remove_selected_point: [Meta+H, Backspace] #删除选定的点

五、代码(将标签文件转为统一固定格式)

使用下面的代码进行转换,代码中需要修改的地方见下:

在这里插入图片描述
在这里插入图片描述

详细代码见下:

import base64
import json
import os
import os.path as osp

import numpy as np
import PIL.Image
from labelme import utils

'''
制作自己的语义分割数据集需要注意以下几点:
1、我使用的labelme版本是3.16.7,建议使用该版本的labelme,有些版本的labelme会发生错误,
   具体错误为:Too many dimensions: 3 > 2
   安装方式为命令行pip install labelme==3.16.7
2、此处生成的标签图是8位彩色图,与视频中看起来的数据集格式不太一样。
   虽然看起来是彩图,但事实上只有8位,此时每个像素点的值就是这个像素点所属的种类。
   所以其实和视频中VOC数据集的格式一样。因此这样制作出来的数据集是可以正常使用的。也是正常的。
'''
if __name__ == '__main__':
    jpgs_path   = "datasets/JPEGImages"
    pngs_path   = "datasets/SegmentationClass"
    # classes     = ["_background_","person", "car", "motorbike", "dustbin","chair","fire_hydrant","tricycle","bicycle","stone"]
    classes     = ["_background_","cat"]
    
    count = os.listdir("./datasets/before/") 
    for i in range(0, len(count)):
        path = os.path.join("./datasets/before", count[i])

        if os.path.isfile(path) and path.endswith('json'):
            data = json.load(open(path))
            
            if data['imageData']:
                imageData = data['imageData']
            else:
                imagePath = os.path.join(os.path.dirname(path), data['imagePath'])
                with open(imagePath, 'rb') as f:
                    imageData = f.read()
                    imageData = base64.b64encode(imageData).decode('utf-8')

            img = utils.img_b64_to_arr(imageData)
            label_name_to_value = {'_background_': 0}
            for shape in data['shapes']:
                label_name = shape['label']
                if label_name in label_name_to_value:
                    label_value = label_name_to_value[label_name]
                else:
                    label_value = len(label_name_to_value)
                    label_name_to_value[label_name] = label_value
            
            # label_values must be dense
            label_values, label_names = [], []
            for ln, lv in sorted(label_name_to_value.items(), key=lambda x: x[1]):
                label_values.append(lv)
                label_names.append(ln)
            assert label_values == list(range(len(label_values)))
            
            lbl = utils.shapes_to_label(img.shape, data['shapes'], label_name_to_value)
            
                
            PIL.Image.fromarray(img).save(osp.join(jpgs_path, count[i].split(".")[0]+'.jpg'))

            new = np.zeros([np.shape(img)[0],np.shape(img)[1]])
            for name in label_names:
                index_json = label_names.index(name)
                index_all = classes.index(name)
                new = new + index_all*(np.array(lbl) == index_json)

            # utils.lblsave(osp.join(pngs_path, count[i].split(".")[0]+'.png'), new)
            # print('Saved ' + count[i].split(".")[0] + '.jpg and ' + count[i].split(".")[0] + '.png')

            utils.lblsave(osp.join(pngs_path, count[i].split(".")[0] + '.png'), new)
            print('Saved ' + count[i].split(".")[0] + '.jpg and ' + count[i].split(".")[0] + '.png')

六、总结

以上就是做图像语义分割,使用labelme打标签的详细教程,希望能帮助到你!

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

图像数据标注工具labelme使用教程
Mr_kuilei的博客
01-25 4万+
参考教程: https://github.com/wkentaro/labelme https://blog.csdn.net/ZYhhhh233/article/details/80278293 https://blog.csdn.net/shwan_ma/article/details/77823281 https://blog.csdn.net/u011574296/article/deta...
labelme的使用方式
啊宇丫
03-16 3万+
1.打开labelme。 首先打开cmd(win+r输入cmd),然后进入安装好的labelme的环境中, activate labelme 打开labelme。 labelme 若还没安装labelme先安装:labelme的安装过程 2.打开要标注的数据或其所在的文件夹。 这里以文件夹的方式演示,选中你要标注的数据文件夹打开, 即可在软件的右下角看到该文件夹里的所有文件。 然后点击Create按钮开始标注, 如图,我要标注路面上的斑马线, 标注所有斑马线, 完成后点击file中的sa
labelme安装与使用教程
05-25
用于分割图像的标注工具labelme安装与使用说明 用于分割图像的标注工具labelme安装与使用说明
labelme 修改后的项目代码,可显示标签与标注数量
07-25
修改了labelme官方代码,增加了标注框的标签,不再需要点击标注框才知道对应标签的问题,同时增加了已标注个数及总数,方便标记查看每次标注情况,且方便快速定位到未标注位置,具体详情可参考博客:https://blog.csdn.net/ViatorSun/article/details/125976407,如有什么问题可以博客下留言
Labelme安装(包含遇到的麻烦及解决方案)
最新发布
weixin_45379892的博客
06-26 447
之后打开Anaconda Prompts输入conda --version,成功显示版本信息,表明Anaconda安装成功。1.将channels下的https都改成http,不加s,因为https是加密的,要改成不加密的;3. 若channels下还有除清华镜像之外的其它项,把其它项删除掉,只保留清华镜像;安装 Anaconda,安装时注意路径问题,默认路径安装就行。这是因为Anaconda默认使用国外的镜像,访问较慢超时造成的。,会让你填写邮箱,Anaconda会将下载网址发到给你的邮箱。
labelme魔改,显示标签在画面上
12-27
labelme魔改,显示标签在画面上
labelme使用教程(实用版)
qq_43361147的博客
04-29 9143
labelme使用教程 1 Labelme安装 1.1 打开Anaconda3自带的Anaconda Prompt 1.2 创建一个虚拟的py环境: conda create –name=labelme python=3.7 1.3 安装pyqt: conda install pyqt 1.4 安装labelme: pip install labelme==3.16.2 -I https://pypi.tuna.tsinghua.edu.cn/simple pip install labelme -I h
图片标注工具Labelme的安装及使用方法
热门推荐
ZONGXP的博客
10-25 13万+
在做目标检测任务时,需要用到labelImg进行画框标注,在之前的文章中已经介绍过该工具的使用方法。然而如果是做语义分割的任务时,就不能只是标注框里,需要用另外一种工具labelme进行标注,本文对该工具的安装使用方法进行介绍。 官方教程:https://github.co...
labelme 使用教程
迷若烟雨的专栏
09-06 2万+
labelme是使用python写的基于QT的跨平台图像标注工具,可用来标注分类、检测、分割等常见的视觉任务,支持VOC格式和COCO等的导出,代码简单易读,是非常利用上手的良心工具.
labelme安装与使用教程(内附一键运行包和转格式代码)
Little_Carter的博客
12-24 1万+
Labelme是一个开源的图像标注工具,由麻省理工学院的计算机科学和人工智能实验室(CSAIL)开发。它主要用于创建计算机视觉和机器学习应用所需的标记数据集。LabelMe让用户可以在图片上标注对象和区域,为机器学习模型提供训练数据。它支持多种标注类型,如矩形框、多边形和线条等。它是用 Python 编写的,并使用 Qt 作为其图形界面。
labelme标注软件的使用 || 语义分割数据标注、批量转换、多类别转换颜色错位问题
magic_ll的博客
11-18 1万+
源码地址:https://github.com/wkentaro/labelme 1 labelme的安装 工作环境:ubuntu16 + anconda 安装命令: 安装不同的工程python相关库,建议创建不同的虚拟环境,然后进行安装(当然直接安装在base环境下,也可正常运行)。 选择使用清华镜像源,安装速度会加快。   conda create -n labelme python=3.6 source activate labelme pip install -i https://pypi..
labelme使用教程
fengyingv的博客
12-04 1万+
(1)打开 labelme 界面 在刚才创建的虚拟环境下,打开labelme。如下图所示:直接输入label,然后回车。 注:如果你之前不小心退出了labelme虚拟环境,需要重新进入该环境下。 打开之后,labelme的界面就像下面这样: (2)标注数据集 第一步,点击open。打开你准备好的数据集,选中第一张图片打开。比如下面我打开的图片是302.jpg 第二步,点击 create polygons 开始描点。描点一定要细致,要将目标(这里是物堆)刚好框住。就像下面这样: 锚点完成后
labelme简单使用教程
紫薯的博客
03-13 1万+
Labelme 是一个图形界面的图像标注软件。它是用 Python 语言编写的,图形界面使用的是 Qt(PyQt)。
labelme-4.5.7.exe
03-25
已打包好的最新版labelme-4.5.7,可以单独运行无需配置python环境。可以绘制多边形、圆形、线与点。因为不会压缩,所以文件大小有270m
labelme标签工具 exe格式
03-30
LabelMe标签工具:强大的图像标注利器》 在IT领域,尤其是计算机视觉和深度学习的研究与应用中,图像数据的预处理是至关重要的步骤。其中,图像标注是为机器学习模型提供训练数据的关键环节,而LabelMe就是这样一...
如何使用labelme标注语义分割数据集,最详细深度学习标签教程
振华OPPO的博客世界
05-26 8351
详细深度学习标签教程
labelme使用
dddeee的专栏
05-21 1327
文章目录1、labelme简介2、labelme用途3、labelme安装4、labelme使用4.1 分类标注4.2 目标检测标注4.3 语义分割标注4.4 实例分割标注4.5视频标注4.6其它形状标注5其它 本文主要介绍图像分割所用自定义数据集制作工具labelme及其使用方法
labelme的使用
Highlight_Jin的博客
04-29 6023
labelme的安装及使用,测试labelme的标签结果是否正确,并把目标的多边形结果绘制在原图上进行查看
labelme的安装及使用
Wu_GuiMing的博客
05-11 4万+
步骤3:点击鼠标左键,开始画框,把目标图片框住之后,再点击鼠标左键,结束画框,此时会弹出一个对话框,可以在输入框中输入你标注的目标的名字,如果是猫的话,就输入cat,如果是狗的话,就输入dog,然后点击OK按钮即可。步骤4:点击Save按钮,进行json标注文件的保存,首先在JPEGImage同级目录下创建一个json文件夹,然后把标注生成的json文件保存到该json文件中,点击保存按钮,即可进行保存。步骤1:点击OpenDir按钮,然后选择我们需要标注的图片的路径,然后再点击右下角的选择文件夹按钮。
labelme分割打标签教程 不同类别颜色不同
08-08
Labelme是一种非常流行的图像标注工具,它可以用于图像分割任务。在Labelme中,我们可以为图像中的不同类别分配不同的颜色,以便更好地区分它们。 首先,我们需要确保已经安装了Labelme软件,并且已经准备好了需要标注的图像。 打开Labelme后,我们可以在界面的左上方找到一排工具栏。点击工具栏上的"Create Polygons"按钮,然后将鼠标移到图像上,我们可以看到鼠标变为十字光标。 我们需要在图像上用鼠标点击来创建一个多边形框,以框出我们想要打标签的区域。当创建完一个多边形后,我们可以使用Shift键来创建更多的多边形。创建完所有的多边形之后,可以通过按ESC键或右键单击来完成标注。 接下来,我们可以在界面的右上方看到一个面板,其中有一个类别列表。我们可以为每个类别指定一个唯一的名称,并将其与一个特定的颜色绑定。 在类别列表中,我们可以选择一个类别,并在图像上点击我们想要标注的区域。在每个类别下,我们可以继续创建并标注新的多边形。 当我们完成所有的标注后,可以将结果保存为JSON文件。这个JSON文件将包含我们标注的图像的所有信息,包括每个类别的名称、颜色和多边形的坐标。 在以后的任务中,我们可以使用这个JSON文件来加载图像和标注信息,以便进行进一步的处理和分析。 总之,使用Labelme进行图像分割标注时,我们可以为不同的类别分配不同的颜色,以帮助我们更好地区分它们。这种方式可以使得标注结果更加直观和易于理解。
写文章

热门文章

  • 深度学习:使用UNet做图像语义分割,训练自己制作的数据集并推理测试(详细图文教程) 44311
  • 使用labelme打标签,详细教程 41999
  • 使用CycleGAN训练自己制作的数据集,通俗教程,快速上手 41752
  • YOLOV5 训练好模型测试时出现问题:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘的解决方法 28085
  • 深度学习训练和测试时出现问题:error: the following arguments are required: --dataroot,解决:训练文件的配置方法和测试文件的配置方法 27856

分类专栏

  • 数据集 8篇
  • Python OpenCv 47篇
  • python 66篇
  • 超分辨率重建 11篇
  • linux 25篇
  • 高效助手 25篇
  • 目标检测 5篇
  • 语义分割 6篇
  • 深度学习 33篇
  • 图像去噪 10篇
  • Pytorch 11篇
  • 模型实战部署 17篇
  • Java 2篇
  • 模型优化 8篇
  • Tensorflow 3篇
  • GAN 2篇
  • Android 4篇
  • 暗光增强 3篇
  • Docker 1篇
  • Origin 1篇
  • Matlab 1篇
  • Paddle 3篇
  • C++ OpenCv 4篇
  • NVIDIA 1篇
  • C++ 2篇
  • 直方图统计 2篇
  • 8Bit图像 2篇

最新评论

  • 语义分割——PaddleSeg网络训练并测试自己数据集(详细图文教程)

    m0_46490553: 你好,我是直接在模型代码中直接写模块,然后调用的,这样添加是不是错误的,这样改动后和原模型那些训练参数和计算量没有发生改变,我也很困扰

  • 深度学习论文撰写实验对比分析时复现其它论文方法的问题

    Degeneration.810: 如果引用前辈的数据和自己的作对比在前面需要怎么标注出来呀,有相关的论文吗,想去了解一下

  • 语义分割——PaddleSeg网络训练并测试自己数据集(详细图文教程)

    视觉研坊: 添加注意力机制后,要用注册机融入原框架中

  • 语义分割——PaddleSeg网络训练并测试自己数据集(详细图文教程)

    m0_46490553: 这个代码是改过一个注意力机制的,在训练其他没有改动的代码的时候也会出现这个问题 <class 'paddle.nn.layer.conv.Conv2D'>'s flops has been counted Cannot find suitable count function for <class 'paddle.nn.layer.norm.LayerNorm'>. Treat it as zero FLOPs. <class 'paddle.nn.layer.common.Linear'>'s flops has been counted <class 'paddle.nn.layer.common.Dropout'>'s flops has been counted Cannot find suitable count function for <class 'paddleseg.models.backbones.transformer_utils.Identity'>. Treat it as zero FLOPs. Cannot find suitable count function for <class 'paddle.nn.layer.activation.GELU'>. Treat it as zero FLOPs. Cannot find suitable count function for <class 'paddleseg.models.backbones.transformer_utils.DropPath'>. Treat it as zero FLOPs. Cannot find suitable count function for <class 'paddle.nn.layer.common.Dropout2D'>. Treat it as zero FLOPs.

  • 语义分割——PaddleSeg网络训练并测试自己数据集(详细图文教程)

    视觉研坊: 可以自定义一个flops计算函数,将未识别的层导入该函数计算flops值,flops函数见下: [code=python] from paddle.flops import register_hooks def maxpool_flops_counter_hook(layer, input, output): # 假设输入为 (B, C, H, W),核大小为 kxk input_shape = input[0].shape kernel_size = layer.kernel_size flops = input_shape[0] * input_shape[1] * (input_shape[2] // kernel_size[0]) * (input_shape[3] // kernel_size[1]) return flops register_hooks(paddle.nn.layer.pooling.MaxPool2D, maxpool_flops_counter_hook) [/code]

大家在看

  • 6大主流的威胁情报源及应用特点分析
  • 哈夫曼树和哈夫曼编码详解(包含Java代码实现)
  • 【机器学习】实验设计之一次一因子方法(OFAT)、全因子设计方法(FFD)响应面方法(RSM)和插值方法以及如何选择控制因子的概念
  • 实验14:步进电机+按键控制
  • 基于python+flask框架的农资电子监管系统的设计与实现(开题+程序+论文) 计算机毕设

最新文章

  • 使用OpenCV批量随机添加运动模糊、高斯噪声和泊松噪声(附Python代码)
  • 快速批量替换图片名称为指定名称(附代码)
  • 解决问题:由于/bin:/usr/bin 不在PATH 环境变量中,故无法找到该命令
2024
08月 10篇
07月 8篇
06月 8篇
05月 8篇
04月 10篇
03月 16篇
02月 15篇
01月 12篇
2023年60篇
2022年44篇
2021年1篇

目录

目录

评论 91
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉研坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码木棉湾SEO按天收费南山百度网站优化排名爱联优化大鹏如何制作网站广州外贸网站设计坪地百度网站优化松岗优化横岗seo优化塘坑网站设计坂田网站设计模板双龙网站推广方案大鹏外贸网站建设木棉湾百姓网标王丹竹头网络广告推广同乐SEO按天计费大浪网站建设设计木棉湾设计公司网站南澳建网站塘坑网站推广系统东莞网站建设设计坂田网站搭建同乐营销型网站建设观澜SEO按天收费福永网站推广工具平湖模板制作深圳网站推广系统大浪建站同乐推广网站龙岗关键词按天计费福田企业网站制作歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化