coco数据集转换SAM2格式
coco是一个大json汇总了所有train的标签
SAM2训练一张图对应一个json标签
import json
import os
from pycocotools import mask as mask_utils
import numpy as np
import cv2def poly2mask(points, width, height):points_array = np.array(points, dtype=np.int32).reshape(-1, 2)mask = np.zeros((height, width), dtype=np.uint8) # 注意顺序是(height, width)cv2.fillPoly(mask, [points_array], 255) # 填充多边形区域为255return mask2rle(mask)def mask2rle(mask):"""将二值化掩码转换为RLE编码"""rle = mask_utils.encode(np.asfortranarray(mask)) # 使用pycocotools进行RLE编码rle['counts'] = rle['counts'].decode('utf-8') # 将bytes转换为字符串return rle# 读取COCO格式JSON文件
with open('/home//Datasets/coco12cup/train.json', 'r') as f:coco_data = json.load(f)# 创建目标文件夹(如果不存在)
output_dir = '/home//Datasets/coco12cup/train'
os.makedirs(output_dir, exist_ok=True)# 遍历图像信息
for image in coco_data['images']:image_id = image['id']height = image['height']width = image['width']file_name = image['file_name']# 筛选对应图像的标注信息annotations = [anno for anno in coco_data['annotations'] if anno['image_id'] == image_id]# 转换标注格式为SAM2格式sam2_annotations = []for anno in annotations:# 检查segmentation格式segmentation = anno['segmentation']if isinstance(segmentation, list): # 多边形格式segmentation_rle = poly2mask(segmentation[0], width, height) # 多边形可能有多个,需要选第一个或合并else: # 如果是RLE格式segmentation_rle = segmentationsam2_anno = {'area': anno['area'],'bbox': anno['bbox'],'id': anno['id'],'segmentation': segmentation_rle,}sam2_annotations.append(sam2_anno)# 创建SAM2格式的JSON数据sam2_data = {'annotations': sam2_annotations,'image': {'date_captured': '20241210', # 根据实际情况修改'file_name': file_name,'height': height,'image_id': image_id,'license': 1, # 根据实际情况修改'width': width}}# 写入单个JSON文件(使用 file_name 替换原本的 id 作为文件名)output_name = os.path.splitext(file_name)[0] + '.json' # 替换扩展名为 .jsonoutput_path = os.path.join(output_dir, output_name)with open(output_path, 'w') as f:json.dump(sam2_data, f)
相关文章:
coco数据集转换SAM2格式
coco是一个大json汇总了所有train的标签 SAM2训练一张图对应一个json标签 import json import os from pycocotools import mask as mask_utils import numpy as np import cv2def poly2mask(points, width, height):points_array np.array(points, dtypenp.int32).reshape(-…...
【CMD、PowerShell和Bash设置代理】
【CMD、PowerShell和Bash设置代理】 1. CMD(命令提示符)临时设置代理(只对当前会话有效):查看当前代理设置:清除临时代理设置:永久设置代理(对所有新的 CMD 会话有效)&am…...
22智能 代码作业集合
3-2 #include <stdio.h>int main() {int a 21;int b 10;int c ;c a b;printf("Line 1 - c 的值是 %d\n", c );c a - b;printf("Line 2 - c 的值是 %d\n", c );c a * b;printf("Line 3 - c 的值是 %d\n", c );c a / b;printf("…...
实现一个简单的后台架子(侧边栏菜单渲染,折叠,黑白主题,组件主题色,全屏,路由快捷栏)
目录 侧边栏菜单渲染 侧边栏折叠 黑白主题 全屏切换 切换组件主题色 tab快捷栏 代码 侧边栏菜单渲染 结合ElementPlus组件库进行实现 新建的Vue3项目,引入了格式化样式normalize.css和ElementPlus,并进行了全局引入 并进行了全局引入 设置高度为100% 粘贴ElementPlus的…...
vue3-canvas实现在图片上框选标记(放大,缩小,移动,删除)
双图版本(模板对比) 业务描述:模板与图片对比,只操作模板框选的位置进行色差对比,传框选坐标位置给后端,返回对比结果显示 draw.js文件: 新增了 createUuid,和求取两个数组差集的方…...
unity3d—demo(2d人物左右移动发射子弹)
目录 人物代码示例: 子弹代码示例: 总结上面代码: 注意点: 人物代码示例: using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerTiao : MonoBehaviour {public f…...
【ETCD】【源码阅读】 深入解析 raftNode.start`函数:Raft 核心启动逻辑剖析
raftNode.start方法 是 etcd 中 Raft 模块的核心启动点,其职责是管理 Raft 状态机的状态变迁、日志处理及集群通信等逻辑。通过对源码的逐行分析,我们将全面揭示其运行机制,探讨其设计背后的分布式系统理念。 函数核心结构 raftNode.start 方…...
Robust Depth Enhancement via Polarization Prompt Fusion Tuning
paper:论文地址 code:github项目地址 今天给大家分享一篇2024CVPR上的文章,文章是用偏振做提示学习,做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容,感兴趣的自己去看paper,主要是分享环境&…...
NEFTune,SFT训练阶段给Embedding加噪音
仿照CV里,数据增强的思路(给图像做旋转、反转、改变亮度等);NLP里,SFT训练数据较少时,也可往embedding上加噪音,来增加训练数据的丰富程度。进而提升最终训练效果。 前提假设:Embed…...
uniapp -- 实现页面滚动触底加载数据
效果 首选,是在pages.json配置开启下拉刷新 {"path": "pages/my/document/officialDocument","style": {"navigationStyle":</...
L22.【LeetCode笔记】相交链表(新版)
目录 1.题目 代码模板 2.分析 编辑 算法误区 正确方法1 但不能通过所有的测试用例 修改后 提交结果 正确方法2 节省代码的技巧 1.题目 https://leetcode.cn/problems/3u1WK4/description/ 给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单…...
智能时代网络空间认知安全新观察
文章目录 前言一、历史上的四次认知革命二、人工智能革命掀起认知安全新浪潮三、人工智能技术塑造认知安全新范式四、人工智能治理应对认知安全新思考 前言 12月5日,在2024第三届北外滩网络安全论坛上以“智能时代网络空间认知安全新观察”为主题作主旨演讲&#x…...
游戏如何应对模拟器作弊
模拟器是指能在PC端模拟出安卓手机系统的软件,市面上比较常见的安卓模拟器有:雷电模拟器、MuMu模拟器、夜神模拟器等。 市面上常见的模拟器 模拟器既可以节省手机内存空间,避免长时间玩游戏手机发烫发热的尴尬,也可以用键盘鼠标对…...
c++ 判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围
在 C 中,判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围时,需要考虑两种不同的地址格式和它们的范围比较。IPv6 和 IPv4 地址结构完全不同,因此需要分别处理这两种地址类型。 实现思路: 识别 IP…...
计算机视觉——相机标定(Camera Calibration)
文章目录 1. 简介2. 原理3. 相机模型3.1 四大坐标系3.2 坐标系间的转换关系3.2.1 世界坐标系到相机坐标系3.2.2 相机坐标系到图像坐标系3.2.3 像素坐标系转换为图像坐标系3.2.4 世界坐标转换为像素坐标 3.3 畸变3.3.1 畸变类型3.3.1.1 径向畸变(Radial Distortion&a…...
【qt环境配置】windows下的qt与vs工具集安装\版本对应关系
vs工具集安装通过vs的在线安装器勾选工具集即可 工具包下载路径:https://www.microsoft.com/zh-cn/download/details.aspx?id40784 配置工具集在qt中可以自动扫描到 《正确在 Windows 上配置 MSVC(2019) 作为 Qt 编译器》https://b3logfile.com/pdf/article/15922…...
GitHub使用
太久不用GitHub发现自己又有些不会了,突发奇想为何不把每次看到的有指导意义的博客收录一下以便下次查阅呢 如何上传文件夹到GitHub上(配图详解)?_github上傳資料夾-CSDN博客 github上如何删除自己的仓库_github删除仓库-CSDN博…...
元宇宙时代的社交平台:Facebook的愿景与实践
随着科技的不断进步,元宇宙(Metaverse)这一概念逐渐走进了人们的视野。作为全球最大的社交平台之一,Facebook(现Meta)在这场元宇宙革命中扮演着重要角色。Meta不仅在不断扩展其社交平台的边界,还…...
vue2中各种钩子函数的总结以及使用场景
在 Vue 2 中,生命周期钩子函数是 Vue 实例在不同阶段自动调用的函数。这些钩子允许开发者在组件的创建、更新和销毁的特定时刻插入自定义逻辑。以下是 Vue 2 中的各种生命周期钩子函数的总结及其使用场景。 生命周期钩子函数总结 1、beforeCreate 调用时机&#…...
软件架构:从传统单体到现代微服务的技术演变
1.引言 在软件开发中,架构设计不仅仅是程序员的技术任务,它更是一个项目成功的关键。无论是小型应用还是大型分布式系统,软件架构都直接影响着系统的可维护性、可扩展性、性能和稳定性。理解软件架构的必要性,能够帮助开发人员做…...
git新建远程分支后,无法切换
git remote # 列出所有远程主机 git remote update origin --prune # 更新远程主机origin 整理分支 git branch -r # 列出远程分支 git branch -vv # 查看本地分支和远程分支对应关系 git checkout -b gpf origin/gpf # 新建本地分支gpf与远程gpf分支相关…...
【SpringBoot】31 Session + Redis 实战
Gitee https://gitee.com/Lin_DH/system 介绍 【SpringBoot】30 Cookie、Session、Token https://blog.csdn.net/weixin_44088274/article/details/144241595 背景 Spring Session 是 Spring 的一个子项目,它提供了一种管理用户会话信息的方法,无论…...
在Windows环境下的rknn-toolkit环境搭建
首先安装好conda,我是用的是anaconda,miniconda也可以。 下载rknn_toolkit的轮子。可以直接在瑞芯微的git仓库中下载,地址为:github.com/rockchip-linux/rknn-toolkit/releases。我这里下载的是1.7.5版本的。选择rknn-toolkit-v1.…...
Facebook广告突然无消耗?原因解析与解决方案。
在Facebook广告投放中,广告突然无消耗是很多广告主都会遇到的难题。这种情况不仅浪费时间,还可能导致营销活动停滞,影响业务发展。那么,广告无消耗的原因是什么?又该如何解决呢? 一、Facebook广告无消耗的…...
Rabbitmq 镜像队列
RabbitMQ 支持高可用性队列(HA Queues),可以在多个节点之间复制队列,确保即使某个节点失败,消息仍然可用。将 RabbitMQ 部署为集群,确保高可用性和负载均衡。 RabbitMQ 的镜像队列集群(Mirrore…...
TensorBoard
1、TensorFlow的TensorBoard TensorBoard是TensorFlow的一个组件,它提供了一个交互式的界面,用于可视化TensorFlow程序的训练过程和模型结构。 使用TensorBoard,你可以: 可视化训练过程中的各种指标,如损失函数、准…...
运维实战:K8s 上的 Doris 高可用集群最佳实践
今天我们将深入探讨::如何在 K8s 集群上部署 Compute storage coupled(存算耦合) 模式的 Doris 高可用集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务: 配…...
2024.12.5——攻防世界Training-WWW-Robots攻防世界baby_web
2024.12.5—攻防世界Training-WWW-Robots 知识点:robots协议 dirsearch工具 本题与第一道Robots协议十分类似,不做wp解析 大致步骤: step 1 打开靶机,发现是robots协议相关 step 2 用dirsearch进行扫描目录 step 3 url传参r…...
当 Nginx 出现连接超时问题,如何排查?
文章目录 当 Nginx 出现连接超时问题,如何排查? 一、了解 Nginx 连接超时的基本概念二、可能导致 Nginx 连接超时的原因 (一)服务器负载过高(二)上游服务响应缓慢(三)网络问题&…...
vue2 项目中实现动态代理,服务器上通过nginx部署 实现动态代理
一、前言&&原理 前言:vue2 项目中,请求接口是从表格的当前获取的,也就是接口ip:端口号:路经不确定,要实现点击表格当前行请求对应的接口 实现原理:将实际要请求的ip等信息存在请求头中,用的时候再…...
wordpress插件机制/百度升级最新版本下载安装
Flowable 6.6.0 用户指南相关文档下载 BPMN用户指南 第一部分 - 中文PDF精编版BPMN用户指南 第二部分 - 中文PDF精编版BPMN用户指南 第三部分 - 中文PDF精编版应用程序指南 - 中文PDF精编版应用程序指南 - 中英对照PDF精编版应用程序指南 - Eclipse设计器中文PDF精编版表单用户…...
wordpress lang/营销宝
本地oracle客户端用PLSQL Developer连接远程数据库,每次登录都会在很久之后,出现 ORA-12638: 身份证明检索失败,tnsping 表明TNS配置没有问题。 解决方案: D:\app\sabre\product\11.2.0\client_1\NETWORK\ADMIN 此目录下找到sqlne…...
赚钱网站如何做/it教育培训机构
由于公司停了系统的密码认证,所有传输文件只能用其他认证方式。 rsync和scp都可以用自己的认证方式传输数据,rsync传输速度快,但是需要deamon模式运行,配置起来比较慢,而scp可以比较快速的部署两台机器之间的认证&…...
想给公司做个网站/网站设计培训
本文内容:1.僵尸进程,孤儿进程的定义,区别,产生原因,处理方法2.wait函数,waitpid函数的分析,以及比较背景:由于子进程的结束和父进程的运行是一个异步的过程,即父进程永远…...
成都开发公司/seo关键词优化
目录:唠嗑火速离职案例一火速离职案例二“老油条”的四种加班情况加班压力吗?做得好的优化师,都加班吗?入行前该考虑的三个点从“一头热”的开始做这个公众号到今天,我“满月”了。我记得4月份微博有一个热搜ÿ…...
还有专门给别人做性奴的网站/百度图片查找
1.介绍 一个一个遍历 定义: 提供一种方法,顺序访问一个集合对象中的各个元素,而不暴露该对象的内部表示 适用场景: 访问一个集合对象的内容而无需暴露它的内部表示 为遍历不同的集合结构提供一个统一的接口 优点: …...