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

基于CANoe的Basic Diagnostics ECU (UDS)

基于CANoe的Basic Diagnostics ECU (UDS)

farmer00的博客 9155

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

数据下载地址:https://www.kaggle.com/datasets/andradaolteanu/gtzan-dataset-music-genre-classification/data背景音乐。专家们长期以来一直在尝试理解声音以及是什么使一首歌曲与另一首不同。如何可视化声音。是什么使一个音调与另一个不同。这个数据集希望能提供实现这些目标的机会。内容原始流派 - 包含10种流派,每种流派有100个音频文件,每个文件长度为30秒(著名的GTZAN数据集,声音的MNIST)

2145

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

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

qq_42102191的博客 5765

Minecraft Forge模组开发入门:从环境搭建到事件监听实战

事件驱动编程是一种基于事件和事件监听器的软件架构模式,其核心原理是通过事件总线实现组件间的松耦合通信。在游戏开发领域,这种模式能够有效处理玩家交互、状态变更等异步操作,具有高度的灵活性和可扩展性。Java作为面向对象编程语言,通过注解和反射机制为事件驱动提供了天然支持。Minecraft模组开发正是事件驱动编程的典型应用场景,开发者可以利用Forge框架提供的事件总线监听游戏内各种行为。本文以Minecraft Forge模组开发为例,详细讲解如何通过Gradle构建工具搭建开发环境,并实现自定义方块注册和

culi3182的博客 395

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万+

linux下载NCBI基因组数据

fastq-dump --gzip --split-3 SRR25474921.sra,#使用fastq-dump将sra转换为fastq格式,--split-3 参数可以把双端测序的reads提取出来,左端标示为*_1.fastq;右端标示为*_2.fastq。安装之后转到NCBI网页搜索需要的数据或者到SRA数据中查找,我下载的是SRA数据库中的SRR25474921(SRA中是原始测序数据)prefetch --option-file SRR_Acc_List.txt #下载多个SRA文件。

k7586556的博客 2303

OpenClaw与传统AI助手区别,为什么要本地部署

OpenClaw是一款本地部署的开源AI助手框架,与ChatGPT等云端服务相比具有显著优势。它支持完全离线运行,数据隐私性高,所有信息都存储在本地设备上,避免了云端服务的隐私风险。OpenClaw采用模块化设计,可自由定制功能,且无需支付订阅费用,只需一次性硬件投入。推荐在树莓派、迷你主机等设备上部署,最低配置仅需1核CPU和1GB内存。安装过程包含系统初始化、依赖安装、配置设置等步骤,支持通过systemd服务实现开机自启和后台运行。特别适合注重数据安全、需要离线使用或预算有限的用户群体。

一键难忘的博客 1692

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

智能汽车嘚啵嘚 --- 智能座舱第七稿:智能座舱的升级OTA

智能汽车嘚啵嘚 --- 智能座舱第七稿:智能座舱的升级OTA

Soly_kun的博客 414

图像数据标注工具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万+

2025_NIPS_Grounded Reinforcement Learning for Visual Reasoning

尽管基于思维链的强化学习已在数学、编程等任务中显著提升语言模型性能,但视觉推理面临额外复杂性——需模型引导视觉注意力、解读感知输入,并将抽象推理锚定到空间证据上。本文提出ViGoRL(视觉接地强化学习),这是一种通过强化学习训练的视觉语言模型,能将每个推理步骤明确锚定到特定视觉坐标。受人类视觉决策启发,ViGoRL学会生成空间接地的推理轨迹,在每个步骤引导视觉注意力聚焦任务相关区域。当需要细粒度探索时,我们提出的多轮强化学习框架允许模型随着推理展开动态缩放至预测坐标。

c_cpp_csharp的专栏 59

Spring Boot 调用豆包大模型如何开启联网搜索?

场景推荐方案有权限创建 Bot + 需强集成✅ 使用bot-xxxx无 Bot 权限 / 追求通用性✅ 自行集成搜索引擎 + 普通豆包模型仅需基础对话❌ 无需考虑联网豆包大模型确实支持联网搜索,但前提是:你用的是“智能体 Bot”,且它被配置了“网页搜索”插件,并调用正确的 API 端点。希望本文能帮你少走弯路,快速构建出真正“知天下事”的智能助手!

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值