[labelme]labelme如何将标注的json格式转成png的mask文件掩码文件

labelme工具不仅仅具有标注功能,而且可以将json文件转化为png的分割训练文件,如果您是一个类别则可以直接用labelme_json_to_dataset进行转换最后提取对应的掩码文件即可进行语义分割训练。如果您是>=2个类别则不推荐使用labelme工具进行转换,官方已经提示使用labelme_json_to_dataset进行超过2个类别转换可能会导致颜色映射错误,从而导致转换Png混乱,进一步导致训练的模型识别能力很差或者根本不能识别。官方的labelme_json_todatase工具转换要求json绝对路径不能包含中文路径或者空格,否则需要更改代码才能正常转换。这里不做讲解怎么改代码,下面我们将带大家怎么转换。转换前需要注意几点:

第一:必须切换到labelme对应安装环境中,否则无法使用labelme_json_to_dataset工具

第二:json绝对路径不能包含中文路径或者空格,否则无法转换

第三:官方的labelme_json_to_dataset只能转换单个json文件不支持文件夹批量转换,如果想批量转换需要更改代码或者写个bat脚本进行批量转换

第四:转换的Json文件中包含图片base64编码信息或者json和图片要在一起放着。如果只有一个对应json文件,没有对应图片且同时json里面没有存储base64的图片信息也会导致无法转换。

好了下面开始操作: 

第一步,打开我们对应的labelme环境,比如我的labelme是安装在anaconda3的base环境中,我们在任务栏搜索anconda打开prompt

打开后进入prompt环境

可以看到cmd上面右侧多了个base,表示我们正在anaconda3的base环境中,如果您是在其他虚拟环境中,比如py38环境,则可以通过输入conda activate py38进行切换到指定环境

您可以看到右侧环境名字由base变成py38,如果您是其他名称虚拟环境可以依此类推操作

之后我们切换到json所在目录

比如我在桌面路径有个文件夹里面放的是标注文件C:\Users\Administrator\Desktop\labelme-dogcat-test

则可以输入

cd /d C:\Users\Administrator\Desktop\labelme-dogcat-test进行切换,注意/d是必须存在的,否则无法切换目录

随后我们开始转换,输入labelme_json_to_dataset json文件名即可转换

之后我们进去json所在文件夹查看转换结果

可以看到已经转换完成。如果想批量转换则需要自己写代码或者脚本进行转换。 这里我提供一个脚本

import os
import sys
import subprocess'''
本脚本可以批量将labelme标注的json文件转成模型训练的掩码文件
'''def convert_file(json_file):p = subprocess.Popen(["labelme_json_to_dataset", json_file], shell=False, stdout=subprocess.PIPE)p.communicate()def convert_dir(dir):count = 0for file in os.listdir(dir):if not file.endswith(".json"):continuejson_file = os.path.join(dir, file)convert_file(json_file)count += 1print("convert over, {} file(s) converted!".format(count))if __name__ == '__main__':arg = sys.argvif len(arg) == 2:convert_dir(arg[1])else:print(r"command error,you should input command like:python json_convert.py D:\json")

将其保存为json_convert.py,然后切换到这个脚本路径,执行

python  json_convert.py 文件夹路径比如我的json文件都放在桌面文件夹C:\Users\Administrator\Desktop\labelme-dogcat-test

则输入

python  json_convert.py C:\Users\Administrator\Desktop\labelme-dogcat-test

如果您觉得上面文章太长看的头疼,请观看视频演示教程:

如何使用labelme自带工具进行掩码文件转化以及注意事项_哔哩哔哩_bilibili教你如何使用labelme自带的labelme_json_to_dataset进行掩码文件转化以及注意事项, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:yolov8自动标注工具使用教程可更换自己模型标注,yolov8 TensorRT C++ C#部署,用C#部署yolov8的tensorrt模型进行目标检测winform最快检测速度,基于yolov8官方目标追踪botsort和bytetrack源码开发视频演示,[数据集][目标检测][重制版]人员持刀数据集VOC+YOLO格式6923张1类别,C# winform使用纯opencvsharp部署yolox-onnx模型,使用纯opencv部署yolov8目标检测模型onnx,YOLOv8检测界面-PyQt5实现,yolov3 yolov4 yolov7训练助手2.1支持yolov7一键训练全程不用写代码傻瓜式操作,C#实现全网yolov7目前最快winform目标检测icon-default.png?t=N7T8https://www.bilibili.com/video/BV1ne41117pp/?vd_source=989ae2b903ea1b5acebbe2c4c4a635ee

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发实践5_project

要求: (对作业要求的"Student"稍作了变换,表单名称为“Index”。)获得后台 Index 数据,作展示,要求使用分页器,包含上一页、下一页、当前页/总页。 结果: ① preparatio…

什么是CSS Sprite,以及如何在页面或网站中使用它

CSS Sprite是一种将多个图像合并到单个图像中的技术。它通过将所有图像放在同一个图像文件中,并使用CSS的background-position属性来显示其中的特定部分来实现。 使用CSS Sprite的好处是减少了网络请求的数量,从而减少了页面加载时间。此外,…

Windows Qt C++ VTK 借助msys环境搭建

本示例仅仅是搭建环境,后续使用还得大佬指导。 Qt 6.6.0 MinGW 64bit 借助msys2 来安装VTK 包,把*.dll 链接进来,就可以用了。 先安装VTK 包。 Package: mingw-w64-x86_64-vtk - MSYS2 Packages 执行 pacman 命令:pacman -…

C++手搓大整数类

char是8位的,short是16位的,int是32位的,最大的long long是64位的,也就是说基本的数据类型无法表示超过2的64次方-1的数 如今又到了找工作的时候了,面试手撕题少不了,听说这个手搓大整数也有过面试题&…

MySQL索引的管理索引的使用原则以及SQL优化

索引的管理 查看索引 SHOW INDEX(或KEYS) FROM 表名; 删除索引 ALTER TABLE 表名 DROP PRIMARY KEY; DROP INDEX 索引名 ON 表名; ALTER TABLE 表名 DROP INDEX 索引名; 修改索引 ALERT TABLE 表名 ADD 索引类型(数据列名);…

Java算法 图 连通性 刷题记录

Java算法 图 & 连通性 刷题记录 连通性&#xff0c;以及图&#xff1b; UnionSet或者 Map<String,HashMap>; 连通性&#xff0c;假设a<b, 则值包含a的&#xff0c;也都把b加进去 递归 数独 用3个boolean的check&#xff0c; rowCheck、colCheck、squareCheck 递…

CSS 实现卡片以及鼠标移入特效

CSS 实现卡片以及鼠标移入特效 文章目录 CSS 实现卡片以及鼠标移入特效0、效果预览默认鼠标移入后 1、创建卡片组件2、添加样式3、完整代码 0、效果预览 默认 鼠标移入后 在本篇博客中&#xff0c;我们将探讨如何使用 CSS 来实现卡片组件&#xff0c;并添加鼠标移入特效&#…

基于嵌入式的智能智能通风系统

基于嵌入式的智能智能通风系统 功能说明 通过微信小程序控制窗户的开关状体以及倒计时开关和定时开关&#xff0c;小程序上实时显示当前温度湿度和光照强度。 功能展示 02智能通风系统 Mqtt服务器 http://www.yoyolife.fun/iot&#xff1a;Mqtt服务器&#xff0c;我是在这里注…

Web自动化测试中的接口测试

1、背景 1.1 Web程序中的接口 1.1.1 典型的Web设计架构 web是实现了基于网络通信的浏览器客户端与远程服务器进行交互的应用&#xff0c;通常包括两部分&#xff1a;web服务器和web客户端。web客户端的应用有html&#xff0c;JavaScript&#xff0c;ajax&#xff0c;flash等&am…

Js中改变this的方法

在JavaScript中&#xff0c;你可以使用几种不同的方法来改变函数的this值。以下是其中的一些方法&#xff1a; 使用Function.prototype.bind()方法 bind()方法创建一个新的函数&#xff0c;当这个新函数被调用时&#xff0c;bind()的第一个参数将成为thisArg&#xff0c;后续…

Linux下进程子进程的退出情况

进程的退出分为了两大类&#xff0c;一类是正常的退出&#xff0c;另一类是非正常的退出。 正常退出时有五种情况&#xff0c;分别是 ①main函数调用return ②进程调用exit(),标准c库 ③进程调用_exit()或者_Exit()&#xff0c;属于系统调用 ④进程最后一个线程返回 ⑤最…

linux单机部署mysql(离线环境解压即可)

一、下载官网压缩包&#xff08;tar.gz&#xff09; MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/根据自己的操作系统发行版本、位数、gclib版本、mysql版本来选择对应的压缩包 比如我是 linux系统debian10&#xff08;官网只有linux ge…

vue:菜单栏联动内容页面tab

一、需求 需要实现效果&#xff1a;左侧菜单栏与右侧内容部分联动&#xff0c;当点击左侧的菜单&#xff0c;右侧会展示对应的tab&#xff0c;没有点击时&#xff0c;不展示&#xff08;如刚进入页面没有点击菜单&#xff0c;则没有tab&#xff09;&#xff1b;点击后没有关闭…

玖章算术NineData通过阿里云PolarDB产品生态集成认证

近日&#xff0c;玖章算术旗下NineData 云原生智能数据管理平台 (V1.0&#xff09;正式通过了阿里云PolarDB PostgreSQL版 (V11)产品集成认证测试&#xff0c;并获得阿里云颁发的产品生态集成认证。 测试结果表明&#xff0c;玖章算术旗下NineData数据管理平台 (V1.0&#xff…

美易平台:JMP证券将Meta Platforms的目标价格上调至410美元。

JMP证券最近发布了一份研究报告&#xff0c;将Meta Platforms&#xff08;前身为Facebook&#xff09;的目标价格上调至410美元&#xff0c;并将Alphabet&#xff08;谷歌母公司&#xff09;的目标价格上调至150美元。这一消息引起了市场的广泛关注。 根据JMP证券的分析师们的…

Maxwell介绍

一、介绍 介绍&#xff1a;它读取MySQL binlog并将数据更改作为JSON写入Kafka、Kinesis和其他流媒体平台&#xff08;目前支持&#xff1a;kafka、RabbitMQ、Redis、file、Kinesis、Nats、Google Cloud Pub/Sub、Google Cloud Bigquery、SNS&#xff09; 版本&#xff1a;从v1.…

【车载开发系列】Autosar DCM诊断管理模块

【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块 【车载开发系列】Autosar DCM诊断管理模块一. DCM模块概念二. DCM模块与Autosar其他模块关系1&#xff09;Dcm和PduR的交互2&#xff09;Dcm和ComM模块的交互3&#xff09;Dcm和Dem的交互4&a…

RocketMQ常见面试题及答案梳理

1、RocketMQ有什么作用&#xff1f; 异步:数据的产生方不需要关心谁来使用数据&#xff0c;只需要将数据发送到broker,后续需要管消费流程&#xff0c;Rocket也有保证消息可靠性的方案消峰&#xff1a;正常业务系统当流量激增时&#xff0c;有可能会将系统压垮&#xff0c;有了…

H12-821_324

324.以下关于AC漫游组的描述,说法错误的是? A.漫游组的AC需要部署一台Master Controller B.AC可担任多个漫游组的漫游组服务器&#xff0c;同时自身可加入多个漫游组 C.Master Contoller必须为漫游组内的AC D.STA只能在同一个漫游组内的AC间才能进行漫游 答案&#xff1a;BC …

ChatGPT正确打开方式与GPT-4.5的key最新获取方式

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…