json_to_mask
'''
修改后的json_to_dataset文件,直接复制替换你自己原始的json_to_dataset,建议保存一下原版
'''
import argparse
import base64
import json
import os
import os.path as ospimport imgviz
import PIL.Imagefrom labelme.logger import logger
from labelme import utilsdef 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_fileprint(osp.dirname(json_file))if osp.isdir(osp.join(osp.dirname(json_file), 'json_data')) is False:os.mkdir(osp.join(osp.dirname(json_file), 'json_data'))else:print("文件已存在")if args.out is None:out_dir = osp.basename(json_file).replace(".", "_")out_dir1 = osp.join(osp.dirname(json_file), 'json_data')out_dir = osp.join(out_dir1, out_dir)print(out_dir)print("#" * 10)else:out_dir = args.outif not osp.exists(out_dir):os.mkdir(out_dir)data = json.load(open(json_file))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_valuelbl = 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] = namelbl_viz = imgviz.label2rgb(lbl, imgviz.asgray(img), label_names=label_names, loc="rb")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()
修改地方:删除lbl后的“,-” ,只让lbl接受函数结果,要不然会报返回值与接受值不匹配的错误,ValueError: too many values to unpack (expected 2)。这类错误出现原因是比如返回三个值,但你用2个变量接受。
相关文章:
json_to_mask
修改后的json_to_dataset文件,直接复制替换你自己原始的json_to_dataset,建议保存一下原版import argparse import base64 import json import os import os.path as ospimport imgviz import PIL.Imagefrom labelme.logger import logger from labelme …...
Camtasia2024免费版mac电脑录屏软件
作为一个互联网人,没少在录屏软件这个坑里摸爬滚打。培训、学习、游戏、影视解说……都得用它。这时候没个拿得出手的私藏软件,还怎么混?说实话,录屏软件这两年也用了不少,基本功能是有但总觉得缺点什么,直…...
拦截器的使用
拦截器(Interceptor)是一种在应用程序中用于干预、修改或拦截请求和响应的组件,是AOP 编程的一种实践,和过滤器一样都是一种具体的AOP实现。它可以在请求被发送到目标处理程序之前或之后,对请求进行预处理或对响应进行…...
R语言——taxize(第四部分)
taxize(第四部分) 3.39. get_wiki(获取维基分类群的页面名称)3.40. get_wormsid(获取分类群名称的Worms ID)3.41. gni_details(使用Global Names Index搜索分类学名称详情)3.42. gni…...
C++学习 --list
目录 1, 什么是list 2, 创建 2-1, 标准数据类型 2-2, 自定义数据类型 2-3, 其他创建方式 3, 操作list 3-1, 赋值 3-2, 添加元素 3-2-1, 添加元素(assign) 3-2-…...
Springboot集成swagger之knife4j
knife4j的最终效果: 支持直观的入参介绍、在线调试及离线各种API文档下载。 1 引入pom <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</ver…...
多线程 02
1.线程的常见构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用 Runnable 对象创建线程对象Thread(String name)创建线程对象,并命名Thread(Runnable target, String name)使用 Runnable 对象创建线程对象,并命名【了解】Thread(Threa…...
车辆管控大数据可视化平台案例源码分析【可视化项目案例-10】
🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本专栏包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不论你是初学者还是资深开发者,这里都有适合你的内容。…...
链表的回文结构
题目描述 题目链接:链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 题目分析 我们的思路是: 找到中间结点逆置后半段比对 我们可以简单画个图来表示一下: ‘ 奇数和偶数都是可以的 找中间结点 我们可以用快慢指针来找中:l…...
CSS特效017:球体涨水的效果
CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…...
Windows下安装Anaconda3并使用JupyterNoteBook
下载安装包 Anaconda官网 进官网,点击下载 自动根据当前系统下载对应的包了,安装包大约1G,喝杯Java耐心等待。 安装 很多人安装C盘,我这里放D盘。 注意:你的文件夹目录一定要不能有空格 然后其他的直接默认install即…...
什么年代了,还不会 CI/CD 么?
目录 什么是 CI/CD? CI/CD 对业务有哪些好处? 一:确保卓越的代码质量 二:更快的发布速度 → 更快的交付 三:自动化降低成本 四:故障隔离 五:简化回滚 六:持续反馈 七&#…...
centos 7.7 安装Python-3.7.4
一、安装PYTHON 编译依赖包 1.1 首先安装gcc编译器,gcc有些系统版本已经默认安装,通过 gcc --version 查看,没安装的先安装gcc, yum -y install gcc glibc make1.2 安装其它依赖包,(注:不要缺…...
git的用法
目录 一、为什么需要git 二、git基本操作 2.1、初始化git仓库 2.2、配置本地仓库的name和email 2.3、认识工作区、暂存区、版本库 三、git的实际操作 3.1 提交文件 3.2 查看git状态以及具体的修改 3.3 git版本回退 git reset 3.1 撤销修改 四、git分支管理 4.…...
管道在Vue和Angular中的作用及React的替代方案
管道在Vue和Angular中的作用及React的替代方案 前言管道起源管道特点 前端中管道概念和作用概念作用 React关于管道的替代方案Vue和Angular管道的区别 前言 本文主要讲解管道在Vue和Angular中有哪些作用以及React对于管道概念的替代方案是什么。 管道起源 计算机中的Pipline…...
计算机基础知识57
前后端数据传输的编码格式(contentType) # 我们只研究post请求方式的编码格式: get请求方式没有编码格式-- index?useranme&password get请求方式没有请求体,参数直接在url地址的后面拼接着 # 有哪些方式可以提交post请求:f…...
Flutter 小技巧之 3.16 升级最坑 M3 默认适配技巧
如果要说 Flutter 3.16 升级里是最坑的是什么?那我肯定要说是 Material 3 default (M3)。 倒不是说 M3 bug 多,也不是 M3 在 3.16 上使用起来多麻烦,因为虽然从 3.16 开始,MaterialApp 里的 useMaterial3 …...
激光雷达与惯导标定 | Lidar_IMU_Init : 编译
激光雷达与惯导标定:Lidar_IMU_Init 编译 功能包安装安装ceres-solver-2.0.0 (注意安装2.2.0不行,必须要安装2.0.0) LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数…...
进程池,线程池与跨进程数据共享爬取某岸网图片
看教程的时候看到一个,生产者跟消费者的概念比较有意思,但是给的代码有问题无法正常运行,于是我就捣鼓了一下。 基本概念就是: 生产者: 一个进程获取网页没页的图片连接(主进程…...
【 图片加载】Vue前端各种图片引用
文章目录 一、图片作为js常量(常作为配置项的值 )1、在线链接2、本地图片 二、图片img标签1、一般的src2、动态的src用require3、src可以接收二进制文件blob(如后端返回的、a-upload传的图片) 三、背景图片 一、图片作为js常量(常…...
工厂巡检新助手:Youtu-VL-4B目标检测实战,快速定位设备零件与统计数量
工厂巡检新助手:Youtu-VL-4B目标检测实战,快速定位设备零件与统计数量 1. 引言:工厂巡检的痛点与AI解决方案 在制造业工厂的日常运营中,设备巡检是一项至关重要但又耗时费力的工作。传统的人工巡检方式面临着诸多挑战࿱…...
Wasserstein距离在GAN中的原理与实践
1. Wasserstein距离在GAN中的核心价值生成对抗网络(GAN)训练过程中最棘手的难题莫过于模式崩溃(Mode Collapse)和梯度消失。传统GAN采用的JS散度(Jensen-Shannon Divergence)在判别器最优时,生成…...
微信AI双开方案:HermesClaw实现iLink协议代理与多AI助手集成
1. 项目概述:一个微信账号,两个AI大脑如果你和我一样,既想体验 Hermes Agent 在代码生成和逻辑推理上的强大能力,又舍不得 OpenClaw 在文件处理和日常对话上的贴心与便捷,那么你肯定也遇到了那个让人头疼的问题&#x…...
Ruby LLM框架:为Ruby开发者打造的AI应用开发利器
1. 项目概述:一个为Ruby语言量身打造的LLM应用框架如果你是一名Ruby开发者,最近被各种AI应用搞得心痒痒,想在自己的Rails项目里集成一个智能聊天助手,或者给后台加个自动生成报告的功能,那你可能已经发现了一个尴尬的现…...
lichobile代码架构设计:mithril.js + TypeScript最佳实践
lichobile代码架构设计:mithril.js TypeScript最佳实践 【免费下载链接】lichobile lichess.org former mobile application / new one -> github.com/lichess-org/mobile 项目地址: https://gitcode.com/gh_mirrors/li/lichobile lichobile是lichess.or…...
OpenOmniBot:端侧AI智能体实现Android自动化操作全解析
1. 项目概述:一个能“动手”的端侧AI助手在AI应用井喷的今天,我们早已习惯了与各种聊天机器人对话。它们能写诗、能编程、能解答疑问,但绝大多数都停留在“动口不动手”的阶段——它们理解你的指令,给出建议或生成文本,…...
为什么92%的AI PoC项目因容器隔离失效被叫停?Docker Sandbox 6步硬核配置手册(含GPU透传避坑指南)
更多请点击: https://intelliparadigm.com 第一章:Docker Sandbox 运行 AI 代码隔离技术配置总览 Docker Sandbox 是一种轻量级、可复现的容器化运行环境,专为安全执行第三方 AI 代码而设计。它通过命名空间(namespacesÿ…...
补题记录4
牛客周赛140 :C,D,E,F北华大学第十三届大学生程序设计竞赛(同步赛)(重现赛)B...
数字孪生技术助力运动员心脏健康监测,开启医疗新时代
塔塔咨询服务公司(TCS)近日展示了一项数字医疗技术成果——为一名残障运动员创建了心脏数字孪生模型,这也是该公司"未来运动员项目"的重要组成部分。随着数字技术的持续进步与硬件成本的不断下降,个性化健康监测正逐步走…...
YetAnotherKeyDisplayer:实时按键可视化创新方案提升操作透明度
YetAnotherKeyDisplayer:实时按键可视化创新方案提升操作透明度 【免费下载链接】YetAnotherKeyDisplayer App for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer 在游戏直播、软件教学和演…...
