labelme标记数据后,批量处理json文件,生成标签

Labelme批量转换json文件(代码注释) # -*- coding: utf-8 -*- from __future__ import unicode_literals import argparse import base64 import json import os import os.path as osp import warnings import PIL.Image import yaml from labelme im... 阅读详情

1.安装labelme的过程省略,可参考别人

2.打开anaconda prompt

3.激活安装有labelme的虚拟环境

4.运用labelme命令打开labelme开始标记数据

5.处理json文件

  1. 首先找到labelme中的json_to_dataset.py文件

   2.更改json_to_dataset.py文件,在里面加上批处理的循环

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

import imgviz
import PIL.Image

from labelme.logger import logger
from labelme import utils


def main():
    logger.warning(
        "This script is aimed to demonstrate how to convert the "
        "JSON file to a single image dataset."
    )
    logger.warning(
        "It won't handle multiple JSON files to generate a "
        "real-use dataset."
    )

    parser = argparse.ArgumentParser()
    parser.add_argument("json_file")
    parser.add_argument("-o", "--out", default=None)
    args = parser.parse_args()

    json_file = args.json_file

    if args.out is None:
        out_dir = osp.basename(json_file).replace(".", "_")
        out_dir = osp.join(osp.dirname(json_file), out_dir)
    else:
        out_dir = args.out
    if not osp.exists(out_dir):
        os.mkdir(out_dir)

    count = os.listdir(json_file)
    for i in range(0, len(count)):
        path = os.path.join(json_file, count[i])

        if os.path.isfile(path):
            data = json.load(open(path))
            imageData = data.get("imageData")

            if not imageData:
                imagePath = os.path.join(os.path.dirname(json_file), 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 sorted(data["shapes"], key=lambda x: x["label"]):
                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
            lbl, _ = utils.shapes_to_label(
                img.shape, data["shapes"], label_name_to_value
            )

            label_names = [None] * (max(label_name_to_value.values()) + 1)
            for name, value in label_name_to_value.items():
                label_names[value] = name

            lbl_viz = imgviz.label2rgb(
                label=lbl, img=imgviz.asgray(img), label_names=label_names, loc="rb"
            )

            out_dir = osp.basename(count[i]).replace('.', '_')
            out_dir = osp.join(osp.dirname(count[i]), out_dir)
            if not osp.exists(out_dir):
                os.mkdir(out_dir)
                print(out_dir)

            PIL.Image.fromarray(img).save(osp.join(out_dir, "img.png"))
            utils.lblsave(osp.join(out_dir, "label.png"), lbl)
            PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, "label_viz.png"))

            with open(osp.join(out_dir, "label_names.txt"), "w") as f:
                for lbl_name in label_names:
                    f.write(lbl_name + "\n")

            logger.info("Saved to: {}".format(out_dir))


if __name__ == "__main__":
    main()

        3.在激活的labelme环境中,输入你批处理后文件保存的路径

        4. 输入:

C:\ProgramData\anaconda3\envs\labelme\Scripts\labelme_json_to_dataset.exe F:\DATA\Resize_ship_data_hjr\hqc\png

其中前面 C:\ProgramData\anaconda3\envs\labelme\Scripts\labelme_json_to_dataset.exe是你对应的labelme_json_to_dataset.exe的路径,

后面的F:\DATA\Resize_ship_data_hjr\hqc\png是labelme生成的json文件路径

然后就开始批量处理

最后在指定的文件夹下找到生成的标签文件

使用图片生成base64格式的数据,制作labelme标注生成的json文件 ** 1. 简介 ** 平时标注数据时,例如检测框、分割等,使用labelme工具。labelme标注后会生成一个json文件。例如用于目标检测,由于需要标注的数据较多。前期可手动标注一部分数据,然后训练一个检测模型。通过该检测模型对剩余未标注的图片进行检测,生成对应图片的目标框的值。然后使用这些值,自己生成对应图片的json文件,这样就可以减少标注的工作量,剩下的就是对这些自动标注的数据进行质检就可以了。 这个过程中,有一个比较关键的问题就是,json文件中有每个图片的base64编码。 2. 图片转换 阅读详情

相关推荐

语义分割之 标签生成

语义分割之 标签生成, 利用 Labelme 工具或自己写代码生成标签图像

Mr-MegRob 1万+

深度学习分割json_to_data报错Too many dimensions: 3 > 2

包这个错的原因是labelme(我的是5.0.1)的版本太新了,与旧版本labelme标注生成的json文件有所区别 解决办法1:把labelme版本降低,降到3.16.7 解决办法2:直接换代码,json_to_data的目的其实就是根据标注完的json文件来获取到mask图。 因为在语义分割在训练的时候用到的其实也就是原图和mask图,所以只要达到目的就好了。 import argparse import base64 import json import os import os.pat

m0_48095841的博客 8515

制作用于图像语义分割训练的标签数据【图像分割】【labelme】

本文主要就如何制作用于图像语义分割网络训练的标签数据进行介绍,包括利用labelme制作json数据,再将json数据转换为图像标签等,同时也介绍了一些批量管理文件的小方法。

weixin_42926688的博客 9522

labelme_json_to_dataset不能转换关键点的问题

labelme_json_to_dataset不能转换关键点的问题 如果json文件中有关键点,在使用labelme_json_to_dataset.exe时就会有如下错误: UserWarning: This script is aimed to demonstrate how to convert the JSON file to a single image dataset, and not to handle multiple JSON files to generate a real-use da

W.S.Yin的博客 2897

语义分割动手实践 - labelme标注和标签生成

语义分割动手实践 - labelme标注和标签生成 最近接触到语义分割任务,借助deeplabv3+和BiSeNet v2对分割任务有了初步的了解,为自己记录下整个流程 1、语义分割数据标注 标注工具:由于语义/实例分割任务多是多边形(polygons)轮廓标注,在此选用labelme标注工具。 labelme安装,有需要可以创建虚拟环境,有python和pyqt5即可: 创建labelme虚拟环境 conda create -n labelme python=3.8 激活虚拟环境 conda activa

胡椒面er 9889

【目标检测】Labelme的改进——海量图片的自动标注

    深度学习一般需要对大量的图片进行标注,但是手动标注耗时耗力,所以模仿labelme软件的功能,使用程序对大批量的图片进行自动标注,大大减少手动操作。下面介绍如何实现对大批量的图片进行标注。 自动标注的程序实现:https://github.com/shuyucool/Labelme.git 程序内容均为原创,如果使用麻烦您点赞呀 如遇疑问,欢迎随时交流,定尽量解答。联系方式:7819...

Kellbook的博客 5万+

labelme批量json转png数据集教程

从labelme的安装 到 labelme的标注 到 json文件转png 到 批量自动转换,

qq_42930154的博客 1万+

批量转化labelme生成的json

一、labelme的使用 1.直接在cmd终端运行 pip install labelme 安装labelme,安装完直接使用labelme命令打开界面 2.open Dir选择待标注文件所在文件夹,file-->change output Dir 选择json文件存放地址,然后就可以开始标注 二、标注的json文件转换成单通道mask方法 import json import cv2 import numpy as np import os import argparse de

xiajialin_xjl的博客 903

[详细教程]新版labelme标注后的json文件,提取不同的标签后批量注入到新的背景中作为人工数据集

步骤一、 配置labelme环境二、 用labelme标记数据得到json文件三、提取json文件出相应标签的信息四、注入到新的背景 一、 配置labelme环境 安装anaconda 建立一个环境名为labelme,版本为3.7的环境。 conda create -n labelme python=3.7 切换到该环境 conda activate labelme 安装pyqt5和labelme pip install pyqt5 pip install labelme 在该环境下输

蛋总的快乐生活 1万+

Labelme JSON批量转换:从单点标注到自动化数据集生成

在计算机视觉与深度学习项目中,数据标注是模型训练的基础环节,其效率直接影响项目进度。Labelme作为广泛使用的开源图像标注工具,生成的JSON文件包含了图像路径、标注形状与类别等关键信息。通过解析其结构化的数据格式,我们可以理解标注数据的组织原理。将单次操作的`json_to_dataset`功能扩展为批量处理,能够实现数据预处理流程的标准化与自动化,显著提升生产效率。这一技术对于构建大规模物体检测与实例分割数据集具有重要价值,尤其在处理成千上万个标注文件时,能有效避免手动操作带来的错误与时间消耗。本文聚

weixin_29039773的博客 311

Labelme生成的json文件转为txt格式

使用Labelme标注软件会生成json格式的文件,而YOLOv5需要的标注文件是txt格式的。使用以下python代码可以使json格式转为txt格式,有几处代码需要修改: 1、json存放的文件夹路径与txt存放的文件夹路径 2、标注过程中用到的标签,以及确认是否使用矩形框进行的标注 3、如果有多个label需要创建if语句,并修改txt_file.write代码 import json import os def convert(img_size, box): dw = 1. .

kyriei的博客 4111

json文件imagedata_新版labelme标注后的json文件,提取不同的标签后批量注入到新的背景中作为人工数据集...

〇、介绍一下任务情况部分参考了这篇文章的想法,如果看我的过程不理解可以参考一下这位作者。labelme是一个用于对数据进行标记的软件,对图像进行标记后会得到json文件,包含相应标签的轮廓位置和标签名称等信息,可以用内置的相应函数进行提取,如使用这个作者的想法进行提取信息,那么会生成如下图所示的文件,其中imgs是原图像,labels是标记后的图像,最后是和原图进行比较生成标签图,都是调用内置的函...

weixin_42322782的博客 2327

关于json_to_dataset时出现 module ‘labelme.utils’ has no attribute ‘draw_label’的解决

** 关于json_to_dataset时出现 module ‘labelme.utils’ has no attribute ‘draw_label问题解决’** 相信肯定很多朋友遇到过这种问题: 终端显示模块utils缺少属性draw_label. 其实呢,这个问题我弄了两天都没有解决,最后我决定放弃这个函数。 之后怎么办呢,相信出现这种问题时大家都是从别人博客里copy过json_to_dataset这个文件的代码的。既然别人的代码修改时避不开draw_label,我选择回到最开始。 直接修改label的json_to_dataset文件初始代码 你可能会说,以前的代码已经没了,不要紧,

labelme制作数据集

matplotlib的使用matplotlib使用过程中的一些记录subplot功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入...

gdxnyy123的博客 2472

Oracle数据库RMAN异机恢复保姆级教程,按照步骤来操作,一次就成功!

本文深入解析RMAN异机恢复四大核心场景(演练、数据恢复、故障应急、测试环境搭建),提供从备份到验证的完整步骤和实战脚本。包含RAC到单机迁移技巧、路径调整、常见报错解决方案,助你彻底掌握数据库恢复的“救命技能”。DBA必备干货,强烈推荐

Jackyimi的博客 940

SpringBoot项目整合达梦数据库(MYSQL 转换 达梦数据库)

注意:当迁移过程中出现下面问题时,如有触发器或者外键,需要先关掉触发器和外键,然后进行迁移,不然会导致迁移失败。(2)dm.ini修改【#compatibility】的【COMPATIBLE_MODE】=4。3、添加用户:如果导入的DM数据库需要和MYSQL的用户一样,添加ROOT用户。方法一:服务器配置:设置系统兼容性(DM控制台工具),兼容MySQL。服务器配置又该有两种方式:①DM控制台工具修改;MYSQL的数据表转换成DM的数据表时,点击转换按钮。在这里操作:MYSQL数据库迁移至DM数据库。

m0_74824635的博客 2013

制作道路提取标签 | labelme批量处理json文件为png格式 (语义分割 | 二值分割 | 地表覆盖 | 土地利用 | 水体提取 )

使用labelme自制道路提取数据集,批量将标注得到的json文件转换为png格式标记图。

qq_42102191的博客 5765

手把手教你搭建日本亚马逊CVV钓鱼系统(含自动验证功能)

本文详细介绍了电商平台安全防护的关键实践,重点讲解了如何构建自动化风控系统。内容包括基础架构设计、用户行为分析、交易风险评估模型构建、验证机制实现以及系统部署优化,帮助电商平台有效识别和防范安全威胁,同时提升用户体验。

weixin_30952535的博客 818

labelme——json转png

问题描述: 使用labelme标记jpg图片,保存后会生成一个同名的json文件,并保存在相同的路径下,但是神经网络中需要png格式的标签文件,所以需要将json文件转换成png文件 解决方案: labelme内嵌了json_to_dataset.py文件,路径如下: D:\software\Anaconda3\envs\labelme\Lib\site-packages\labelme\cli 可以将json文件转换为png文件,并且已经生成了labelme_json_to_dataset.e

Henry的技术博客 1万+

DNN加速器脉动阵列轻量级瞬时故障检测

本文系统综述了面向深度神经网络(DNN)脉动阵列加速器的轻量级瞬时故障检测技术。通过分析比较算法级校验(ABFT)、数值异常监测(剪裁、中值滤波等)、硬件编码检错(AN码、剩余码)以及选择性冗余等方案,指出这些方法能以5%-10%的开销实现对权重和激活比特翻转的高效检测,远低于传统ECC/冗余计算的成本。研究显示,结合多种轻量技术可构建多层防护体系,在保障推理可靠性的同时保持加速器的高性能特性。该成果为安全关键领域的DNN加速器设计提供了重要参考。

欢迎交流! 1074

airodump-ng、aircrack-ng使用教程

wifi破解、airodump-ng、aircrack-ng脚本

ssmbyss的博客 2233

labelme生成的json文件批量转图片

labelme生成的json文件批量转图片 由于labelme所给的工具每次只能对一个json文件生成mask的二值图,多个json文件生成的mask二值图还会存在于不同的文件夹内,mask.png文件还要单独取出来。本代码根据labelme所给的json_to_dataset.py文件修改而来。 **代码主要功能:**将labelme生成的json文件批量转换为mask的8bit二值图,并且所有mask保存在同一个文件夹内。 1 labelme标记完的图片放到同一个文件夹内. 2 修改代码中的json_

weixin_43549170的博客 1736

Vue3 - 实现用户上传本地视频文件到服务器+上传进度条+暂停续传+中断取消上传等,视频上传后可在线播放预览已上传的视频,视频文件上传视频回显示例代码(支持Element、Antd等upload组件

实现视频上传和视频预览,vue3实现视频上传功能,上传视频回显,视频流上传播放功能,vue与axios上传视频并显示上传进度,upload组件实现视频文件上传视频回显,upload组件实现视频上传及进度条展示,视频上传及实时进度条显示,视频上传过程中如何中断上传,VUE3+element 上传视频,大文件分片上传+断点续传,axios大文件切片上传,Vue3上传视频后如何播放预览,上传本地视频到后端服务器及在线预览播放视频+移除视频+进度条上传,将已选视频上传服务端并可预览视频,详细实现选择视频并上传到服务

🏆 前端领域优质创作者 3116

图像数据标注工具labelme使用教程

参考教程: https://github.com/wkentaro/labelme https://blog.youkuaiyun.com/ZYhhhh233/article/details/80278293 https://blog.youkuaiyun.com/shwan_ma/article/details/77823281 https://blog.youkuaiyun.com/u011574296/article/deta...

Mr_kuilei的博客 4万+

小龙虾们的好伙伴专栏导航

本文系统解析了OpenClaw技术架构,包括Channel层和网关层的设计实现,并与AgentSkills等技术方案进行对比。同时提供了OpenClaw的系列实用指南,涵盖小龙虾培养、客户资源管理、系统自动化巡检以及技术趋势助手构建等应用场景,帮助用户从零成本入门到高效落地应用,实现业务全流程自动化管理。

wend的博客 215

基于 Simulink 的单相 PWM 整流器(四象限变流器)在高铁辅助电源系统中的建模与仿真实战教程

这是一份基于 Simulink 的实战教程。在高铁牵引供电与辅助电源系统中,单相 PWM 整流器(又称四象限变流器,4QC)是极其核心的“绿色电源”枢纽。传统的二极管整流器虽然结构简单,但会导致严重的输入电流畸变和低功率因数,对电网造成极大的谐波污染。而 PWM 整流器通过高频主动控制,不仅能将单相交流电转换为平稳的直流电,还能实现输入电流正弦化、单位功率因数(PF=1)运行,并支持能量双向流动(如列车再生制动时的能量回馈)。本教程将带你从数学模型出发,搭建一套高性能的电压电流双闭环控制系统。

amy_mhd的博客 47
上一篇: python学习,格式化输出
下一篇: mysql数据库的命令行启动和关闭
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值