如何用labelme标注语义分割数据集

本文详细介绍了如何使用labelme工具创建和标注语义分割数据集。从下载安装anaconda,创建虚拟环境,安装labelme,到启动labelme进行图像标注,最后解析json文件生成ground truth,每个步骤都有清晰的说明和截图辅助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考  如何用labelme标注语义分割数据集 - 云+社区 - 腾讯云

采用的软件为labelme,labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,主要用于标记语义分割数据集。下面介绍详细的使用方法:

第一步:下载并安装anaconda,下载地址为:

https://repo.anaconda.com/archive/Anaconda2-2018.12-Windows-x86_64.exe

第二步:打开anaconda的主界面,Anaconda Navigator,如图7所示,

                                    

                                                   图7 anaconda主要功能

第三步:anaconda主界面如图8所示,点击environment进入虚拟环境创建界面

                  

                                                             图8 anaconda主界面

第四步:点击左下角Create创建虚拟环境

                                     

                                       图9 anaconda创建虚拟环境界面

第五步:创建虚拟环境,如图10所示,Name为labelme。一定要选择Python 2.7,然后点击Create。

         &

### 使用 Labelme 进行语义分割标注 #### 安装与配置 为了使用 `Labelme` 工具进行语义分割标注,首先需要将其安装到 Python 环境中。可以通过 Anaconda 或者其他虚拟环境管理器来完成这一操作。具体命令如下: ```bash pip install labelme ``` 此命令会自动下载并安装最新版本的 `Labelme` 库及其依赖项[^5]。 #### 启动工具 安装完成后,在终端或者命令提示符下运行以下指令启动图形界面程序: ```bash labelme ``` 这一步骤将会打开一个基于 Qt 的 GUI 界面用于交互式标记图片数据集[^2]。 #### 主要功能介绍 在实际操作过程中,用户可以利用鼠标拖拽框选目标区域,并通过右侧属性栏定义类别名称以及设置颜色样式等参数。此外还有多种辅助选项可供选择调整画布缩放比例旋转角度等功能以便更精确地标记复杂形状对象[^1]。 对于快捷键支持方面也做了详细介绍说明表单形式呈现便于记忆掌握提高工作效率[^3]。 #### 输出格式注意事项 当保存已编辑好的项目时,默认生成 JSON 文件作为存储载体记录所有必要的元信息比如像素坐标位置关系分类标签描述等等字段内容。值得注意的是其中关于图像路径部分仅允许单纯文件名而不能包含任何额外目录结构指示符(如 ../ \\ )以免引起后续处理阶段出现问题影响正常使用效果[^4]。 以下是创建简单脚本读取这些JSON文件并将它们转换成PNG掩码的一个例子: ```python import json from PIL import Image, ImageDraw def shape_to_mask(size, points): img = Image.new('L', size, 0) ImageDraw.Draw(img).polygon(points, outline=1, fill=1) mask = np.array(img, dtype=bool) return mask with open("example.json") as f: data = json.load(f) img_size = (data['imageWidth'], data['imageHeight']) mask_img = Image.new('RGB', img_size ) for shape in data["shapes"]: polygon = [(point[0], point[1]) for point in shape["points"]] color = tuple([int(c * 255) for c in shape.get("fill_color", [0, 0, 0])]) draw = ImageDraw.Draw(mask_img ) draw.polygon(polygon ,outline=color,fill=color) mask_img.save("output.png") ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wanderer001

ROIAlign原理

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

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

打赏作者

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

抵扣说明:

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

余额充值