【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码
输入:结果.json
输出:mask.jpg
json内容示例如下:
{"labels":[ # class_id 1,2,3,...],"scores":[ # 置信度0.2,0.7,0.3,...],"bboxes":[[1244.0,161.0,1335.0,178.0],[1243.0,161.0,1336.0,178.0],[1242.0,160.0,1336.0,179.0],...],"masks": [ # Run-Length Encoding (RLE) 编码格式的掩码{"size": [1024,1536],"counts": "]UlV15eo06M3O1O100O1000KcPOG]o09dPOF\\o0:dPOF\\o0:dPOF\\o0:dPOF\\o0:cPOG]o0:bPOF^o0:bPOF^o0>0000000000000000000000000O100000000000000O100IaPOM_o03aPOM_o03aPOM_o02bPON^o02bPON^o02cPOM]o03cPOM]o02dPON\\o02dPON\\o02dPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03cPOM]o03dPOK]o05cPOK]o05700000000O1O2MYP;1hoD00Ojo10WPN002N1ONPkX6"},{"size": [1024,1536],"counts": "]UkV13io06K3N2N200O10000000000000000000000000000000000000000000000000O1000000000000000000O1000000IaPOM_o03aPOM_o03aPOM_o03aPOM_o03aPOM_o03aPOM_o03aPOM_o03aPOM_o03aPOL`o04`POL`o04`POL`o04`POL`o04`POL`o04`POL`o04`POL`o04`POL`o04`POL`o04aPOJ`o06`POJ`o06aPOI_o06bPOJ^o06600O1O2N1O1O10000000000000WP21hoM00OJ0^PO0ao026002N000001LQkW6"},{"size": [1024,1536],"counts": "]UjV12lo05J3M3N3N100O10000000O100000000000000000000000000000000000000000000O1000000000000000000O1000000000000000000000000O10O1000000000O1L_POIbo06_POIao06aPOI_o075O1O101N100O100000O010001NXPO0bo00^PO1ho00O1JN^PO2ao00^POOco02\\PONdo043000000O1MRkW6"},
}
counts 字段是 COCO 数据集中用于表示二进制掩码的 Run-Length Encoding (RLE) 编码格式。RLE 是一种无损数据压缩方法,特别适用于包含大量连续重复值的数据(如二进制掩码)。
RLE 编码格式
RLE 编码的基本思想是将连续的相同值(如 0 或 1)压缩为一个计数值。在 COCO 数据集的 RLE 编码中:
- 编码是一个字符串,由一系列数字和符号组成。
- 数字表示连续像素的数量。
- 符号(如字母或特殊字符)表示像素的值(通常是 0 或 1)。
代码
Python 示例,使用 pycocotools 库将 RLE 编码转换为二进制掩码
def json2starmask(json_data):"""Processes the JSON data, decoding the masks for labels == 1 and scores > 0.3.Args:json_data (dict): Loaded JSON data."""results = []labels=json_data['labels']scores=json_data['scores']masks=json_data['masks']for i,(label,score,mask) in enumerate(zip(labels,scores,masks)) :if label == 1 and score > 0.3: # 这边可以设置想要解吗的label和置信度分数binary_mask = maskUtils.decode(mask) # min=0,max=1results.append(binary_mask*255) # mask*255,看的更清楚~results = np.sum(results, axis=0) #(可选)这一步是将实例分割转为语义分割mask,return resultsjson_path='/path/to/结果.json'with open(json_path, "r", encoding='utf-8') as jsonf:json_data = json.load(jsonf)decoded_masks = json2starmask(json_data)cv2.imwrite('decoded_masks.jpg',decoded_masks)相关文章:
【数据处理】COCO 数据集掩码 Run-Length Encoding (RLE) 编码转二进制掩码
输入:结果.json 输出:mask.jpg json内容示例如下: {"labels":[ # class_id 1,2,3,...],"scores":[ # 置信度0.2,0.7,0.3,...],"bboxes":[[1244.0,161.0,1335.0,178.0],[1243.0,161.0,1336.0,178.0],[1242.0,1…...
Java中的缓存技术:Guava Cache vs Caffeine vs Redis
在Java中,缓存技术是提升应用性能的重要手段。常见的缓存技术包括Guava Cache、Caffeine和Redis。它们各有优缺点,适用于不同的场景。以下是对它们的详细对比: 1. Guava Cache 类型: 本地缓存 特点: 基于内存的缓存,适用于单机应…...
Day8 蓝桥杯acw讲解
首先先给大家看一道这个题, 我真的是太喜欢y总了,如果大家也是最近在准备蓝桥杯或者计算机相关的比赛,但是得加一个前提就是必须最好基础真的很好,要不然其实买了课,也没啥太大的用处,其实就可以以我本人举…...
《Operating System Concepts》阅读笔记:p147-p158
《Operating System Concepts》学习第 15 天,p147-p158 总结,总计 12 页。 一、技术总结 1.socket (1)定义 A socket is defined as an endpoint for communication(socket 是用于通信的端点,或者说socket 是通信端点的抽象表示。). A s…...
JSON Schema 入门指南:如何定义和验证 JSON 数据结构
文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…...
java后端开发day20--面向对象进阶(一)--static继承
(以下内容全部来自上述课程) 1.static–静态–共享 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 1.静态变量 被static修饰的成员变量,叫做静态变量。 特点: 被该类…...
FastJSON 默认行为:JSON.toJSONString 忽略 null 字段
完整的 FakeRegistrationController 代码,这让我可以全面分析后端逻辑,特别是为什么空的字段(如 compareDate)不返回给前端。我将详细分析代码的每个接口,尤其是与 list 请求和字段返回相关的部分,并解释原…...
数据结构:基数排序(c++实现)
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 基数排序的定义和基本原理基本原理具体步骤 基数排序的优缺点:代码实现总结 基数排序的定义和基本原理 基数排序(Radix Sort)是一…...
DOM 事件 HTML 标签属性速查手册
以下是一份 DOM 事件 & HTML 标签属性速查手册,涵盖常用场景和示例,助你快速查阅和使用: 一、DOM 事件速查表 1. 鼠标事件 事件名触发时机适用元素示例代码click元素被点击任意可见元素button.addEventListener(click, () > { ... …...
PhotoShop学习01
了解Photoshop 这里省略了Photoshop的软件安装,请自行查找资源下载。 1.打开图片 下图为启动photoshop后出现的界面,我们可以通过创建新文件或打开已有文件来启用photoshop的工作界面。 可以通过左边的按钮进行新文件的创建或打开已有文件。 也可以点…...
mongodb【实用教程】
MongoDB 是一个开源的文档型数据库管理系统 下载安装 Windows 系统 https://blog.csdn.net/weixin_41192489/article/details/126777309 GUI工具 【推荐】MongoDB Compass https://www.mongodb.com/zh-cn/docs/compass/current/ Robo 3T https://blog.csdn.net/weixin_4119248…...
C语言机试编程题
编写版本:vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("请输入您要输入几个数");scanf_s("%d", &n);printf("请输入您要比较的%d个数\n",n);for (int i 0; i<n; i) {scanf_…...
threeJs+vue 轻松切换几何体贴图
嗨,我是小路。今天主要和大家分享的主题是“threeJsvue 轻松切换几何体贴图”。 想象一下,手头上正好有个在线3D家具商店,用户不仅可以看到产品的静态图片,还能实时更换沙发的颜色或材质,获得真实的购物体验。…...
Android ObjectBox数据库使用与集成指南
ObjectBox其核心特点ObjectBox与 SQLite 和 Realm 的对比Android集成ObjectBox创建ObjectBox实体对象创建ObjectBox操作管理类OBManager在Application初始化ObjectBox插入或更新数据查询数据统计数据分页数据查询删除数据总结今天分享一套Android另一个数据库ObjectBox。Object…...
【HarmonyOS Next】地图使用详解(一)
背景 这系列文章主要讲解鸿蒙地图的使用,当前可以免费使用,并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能,轻松完成地图构建工作。需要注意的是,现在测试只能使用实体手机去…...
seacmsv9注入管理员账号密码+orderby+limi
1:mysql默认存储引擎innoDB携带的表 1,mysql.innodb_table_stats 2,mysql.innodb_index_stats SELECT table_name FROM mysql.innodb_table_stats WHERE database_name DATABASE(); 2: 关键字做处理 HEX编码:0x696E666F726D6174696F6E5F7…...
C#与AI的交互(以DeepSeek为例)
C#与ai的交互 与AI的交互使用的Http请求的方式,通过发送请求,服务器响应ai生成的文本 下面是完整的代码,我这里使用的是Ollama本地部署的deepseek,在联网调用api时,则url会有不同 public class OllamaRequester {[Se…...
面试八股文--数据库基础知识总结(2) MySQL
本文介绍关于MySQL的相关面试知识 一、关系型数据库 1、定义 关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统(DBMS),它将数据存储在表格(表)中,并通过表格…...
Failed to start The PHP FastCGI Process Manager.
报错如下: Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details. 2月 25 21:49:00 nginx systemd[1]: Starting The PHP FastC…...
软件供应链安全工具链研究系列——RASP自适应威胁免疫平台(上篇)
1.1 基本能力 RASP是一种安全防护技术,运行在程序执行期间,使程序能够自我监控和识别有害的输入和行为。也就是说一个程序如果注入或者引入了RASP技术,那么RASP就和这个程序融为一体,使应用程序具备了自我防护的能力,…...
BGE Reranker-v2-m3开源可部署:完整源码+Dockerfile+Gradio UI,支持国产化改造
BGE Reranker-v2-m3开源可部署:完整源码DockerfileGradio UI,支持国产化改造 1. 项目简介与核心价值 你是否遇到过这样的问题?在开发一个智能客服系统,或者搭建一个内部知识库时,从海量文档里检索出来的结果…...
如何通过插件化架构解决跨平台音乐数据集成难题:MusicFree的设计哲学与实践
如何通过插件化架构解决跨平台音乐数据集成难题:MusicFree的设计哲学与实践 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/MusicFree 在当今音乐流媒体服务高度碎片化的时代&#x…...
SSM框架在零售业数字化转型中的实践:超市管理系统全流程解析
1. 为什么零售业需要数字化转型? 最近几年我走访了不少中小型超市,发现一个共同痛点:很多老板还在用纸质小本本记录进货和销售数据,月底对账时经常出现"货卖完了但钱对不上"的情况。有个开社区超市的张老板跟我吐槽&am…...
8大网盘直链下载助手:告别限速困扰,一键获取真实下载地址
8大网盘直链下载助手:告别限速困扰,一键获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移…...
终极魔兽争霸3兼容性工具:5大核心功能全面优化游戏体验
终极魔兽争霸3兼容性工具:5大核心功能全面优化游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3兼容性工具WarcraftHelpe…...
YOLOv8头部改进全攻略:从SEAM到MultiSEAM的代码实现与效果对比
YOLOv8头部改进全攻略:从SEAM到MultiSEAM的代码实现与效果对比 在目标检测领域,YOLO系列模型因其卓越的实时性能而广受欢迎。YOLOv8作为最新一代的代表,其头部结构的设计直接影响着检测精度与速度。本文将深入探讨两种创新性头部改进方案——…...
C语言文件操作实战:读写YOLOv12模型权重与配置
C语言文件操作实战:读写YOLOv12模型权重与配置 如果你正在用C或C捣鼓YOLOv12模型,尤其是在那些没有现成Python库的嵌入式或高性能计算环境里,那么你很可能需要自己动手,从最底层的文件读写开始,把模型权重和配置“喂”…...
推荐一些可以用于论文降重的爆款软件:2026年实测TOP5,AIGC率稳降至5%以下!
CSDN资深技术博主课代表总结: 2026年的毕业季,无数硕博生因为“AIGC疑似率过高”被卡在了送审的最后一关。很多同学后台私信让我“推荐一些可以用于论文降重的软件”。经过耗时半个月的对比交叉测试,我明确告诉大家:那些只会“同义…...
SAP权限管理必知:5个关键Table详解与实战查询技巧
SAP权限管理必知:5个关键Table详解与实战查询技巧 在SAP系统的日常运维中,权限管理始终是系统管理员和开发人员面临的核心挑战之一。一个配置不当的权限体系不仅可能导致数据泄露风险,还可能引发业务流程混乱。与简单的权限表清单不同&#x…...
04华夏之光永存:黄大年茶思屋榜文解法「第3期4题」
华夏之光永存:黄大年茶思屋榜文解法「第3期4题」 |小标题:面向元编程的诊断调试技术 一、摘要 本题属于编译器与编程语言领域底层难题,聚焦多门类EDSL统一映射系统、元编程运行时双向调试能力构建,本文采用工程化可复现逻辑,提供两条标准化解题路径,全程符合工程师技…...
