[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 = 0
    for file in os.listdir(dir):
        if not file.endswith(".json"):
            continue
        json_file = os.path.join(dir, file)
        convert_file(json_file)
        count += 1
    print("convert over, {} file(s) converted!".format(count))


if __name__ == '__main__':
    arg = sys.argv
    if 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安卓动态广播

在AndroidManifest.xml文件的<manifest>标签内添加以下权限声明&#xff1a; <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE"/> 这行代码声明了应用程序需要访问网络状态的权限。添加此权限后&#xff0c;应用程序将能够获取…

conda环境下wget: command not found解决方案

1 问题描述 window10的conda环境下&#xff0c;运行程序&#xff0c;报如下错误 sh download_model.sh mkdir: cannot create directory ‘data’: File exists download_model.sh: line 4: wget: command not found download_model.sh: line 5: wget: command not found mkd…

UE5 C++ 基础变量类型,关于框架的初级练习

一.创建自己的MyGameModed。并在其中设置好GamePlay框架。 1.创建MyGameState,MyGameState,MyHUD,MyPawn&#xff0c;MyPawn&#xff0c;MyPlayerController,MyPlayerState。 2.并在MyGameMode的头文件里面&#xff0c;把GmaeMode里的框架需要的框架类都包含进去。 3.写一个构…

MySql三方工具

Yearning 1.1.1 Yearning简介 Yearning 开源的MySQL SQL语句审核平台&#xff0c;提供数据库字典查询&#xff0c;查询审计&#xff0c;SQL审核等多种功能。 Yearning 1.x 版本需Inception提供SQL审核及回滚功能。 Inception是集审核&#xff0c;执行&#xff0c;回滚于一体的…

报错Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

控制台提示代码: org.springframework.beans.factory.BeanCreationException: Error creating bean with name shiroFilterFactoryBean defined in class path resource [com/gyc/drug/config/ShiroFilterConfiguration.class]: Bean instantiation via factory method failed…

git设置代理

git设置代理 git config --global http.proxy 127.0.0.1:7890git查询代理 git config --global http.proxy git取消代理 git config --global --unset http.proxy

【Docker】安装nacos以及实现负载均衡

&#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 &#x1f973;&#x1f973;Welcome 的Huihuis Code World ! !&#x1f973;&#x1f973; 前言 一.nacos单个部署 1.镜像拉取 …

分销商城新零售商城门店商城小程序开发

用户注册&#xff1a;让用户用手机号或三方登录的方式轻松开启账号之旅。 商品探索&#xff1a;用户可以自由浏览琳琅满目的商品&#xff0c;还能通过关键词迅速锁定心仪之物。 商品分类与筛选&#xff1a;商品按类陈列&#xff0c;用户可根据价格、品牌等条件筛选&#xff…

电力能源实景三维可视化合集,智慧电网数字孪生

电力能源是现代社会发展和运行的基石&#xff0c;渗透于工业、商业、农业、家庭生活等方方面面&#xff0c;它为经济、生活质量、环境保护和社会发展提供了巨大的机会和潜力。图扑软件应用自研 HT for Web 强大的渲染引擎&#xff0c;助力现代化的电力能源数字孪生场景&#xf…

【计算机网络】子网划分(经典基础练习题)

一、某主机IP地址为110.35.2.68&#xff0c;子网掩码为255.255.255.128&#xff0c;求网络地址&#xff1f; 二、有A类网络18.0.0.0的子网掩码为255.128.0.0&#xff0c;请问可以划分为多少个子网&#xff1f; 并写出每个子网的子网号&#xff1f; 三、将C类网119.181.25.0划分…

画面滤镜特效SDK,企业级视频处理技术方案

视频处理技术日新月异&#xff0c;对于企业而言&#xff0c;如何快速、高效地处理视频内容&#xff0c;增加其观赏性和吸引力&#xff0c;成为了一项重要的挑战。美摄科技画面滤镜特效SDK&#xff0c;作为一款全面的视频处理工具&#xff0c;为企业提供了一种高效、灵活的视频处…

Sentinel 轨道数据及下载

Sentinel卫星轨道文件在处理Sentinel卫星数据时发挥着关键作用。这些轨道文件包含了有关卫星在轨道上的运动、位置、姿态等信息&#xff0c;对于地理校正、成像几何校正以及多时相分析等方面具有重要作用。以下是Sentinel卫星轨道文件的主要作用&#xff1a; 地理校正&#xff…

【全】OpenSSL创建生成CA证书、服务器、客户端证书及密钥说明

本文章对应的文档:使用OpenSSL创建生成CA证书服务器客户端证书及密钥资源-CSDN文库 https://download.csdn.net/download/weixin_41885845/88746920 对于SSL单向认证 服务器需要CA证书、server证书、server私钥,客户端需要CA证。 对于SSL双向认证 服务器需要CA证书、serv…

uni-app小程序 uni.showToast字数超过两行自动省略显示不全问题

在实际开发过程中如果用户提交某些文件时&#xff0c;如果缺少某些条件我们要提醒用户缺少那些条件才能提交&#xff0c;但是如果我们用uni.showToast提醒的次数超过7个字的时候就会导致文字显示不全&#xff0c;达不到提醒的效果&#xff0c;这种时候我们就需要使用uni.showMo…

HarmonyOS—开发环境诊断的功能

为了大家开发应用/服务的良好体验&#xff0c;DevEco Studio提供了开发环境诊断的功能&#xff0c;帮助大家识别开发环境是否完备。可以在欢迎界面单击Help > Diagnose Development Environment进行诊断。如果已经打开了工程开发界面&#xff0c;也可以在菜单栏单击Help >…

Flink的KeyedProcessFunction基于Event Time和Process Time的定时器用法实例分析

FLink处理函数简介 在Flink底层&#xff0c;我们可以不定义任何具体的算子&#xff08;比如 map&#xff0c;filter&#xff0c;或者 window&#xff09;&#xff0c;而只是提炼出一个统一的【处理】&#xff08;process&#xff09;操作——它是所有转换算子的一个概括性的表…

v3的响应式,ref,reactive和生命周期(简写)

vue3笔记 1.两种安装方式 (1)直接创建项目vue3 (2)使用vite 组件传值 1.组件传值的用法 从父组件向子组件传值&#xff1a; <Son :prop1"nmb"></Son> 2.defineprops函数 defineProps函数在setup标签内不需要引入&#xff0c;可直接使用 defineP…

easyui渲染隐藏域<input type=“hidden“ />为textbox可作为分割条使用

最近在修改前端代码的时候&#xff0c;偶然发现使用javascript代码渲染的方式将<input type"hidden" />渲染为textbox时&#xff0c;会显示一个神奇的效果&#xff0c;这个textbox输入框并不会隐藏&#xff0c;而是显示未一个细条&#xff0c;博主发现非常适合…

Spring Boot整合MyBatis-Plus

引言 在现代软件开发中&#xff0c;我们经常需要处理大量的数据。为了有效地管理这些数据&#xff0c;我们需要使用一些强大的框架。其中&#xff0c;Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架&#xff0c;可以用于创建独立…

并查集测试

1.介绍 **本质&#xff1a;**处理一些不相交的集合的合并问题&#xff0c;**比如&#xff1a;**最小生成树&#xff0c;最近公共祖先 操作&#xff1a; 1.初始化init&#xff0c;2.find查询&#xff0c;3.合并union 2.初始化init() 将父节点零散的散开->父节点为本身fa[i…