当前位置: 首页 > news >正文

CVAT在线数据标注

CVAT支持矩形、多边形、视频插值的数据标注平台,支持团队协作、复杂项目、视频标注等,可导出YOLO格式

一、平台地址

https://app.cvat.ai/

必须先登录在进入系统

二、创建项目

主要用于管理多个共享同一套标签体系的任务

三、创建任务与配置

任务是实际进行标注工作的单元,包含了要标注的具体数据(图片或视频)以及最终的标注结果。

format就用默认的就行,其他的格式导出数据有问题,下一步通过脚本转成yolo格式的

# -*- coding: utf-8 -*- # CVAT转YOLO格式 import xml.etree.ElementTree as ET import os from pathlib import Path # CVAT的xml格式文件路径 XML_FILE = '../cvat/annotations.xml' # 数据yolo格式的路径 OUTPUT_DIR = Path('/Users/wangqingpan/Desktop/baby/labels') # 标签 CLASS_MAP = {'heater': 0} def convert_to_yolo_seg(): OUTPUT_DIR.mkdir(parents=True, exist_ok=True) try: tree = ET.parse(XML_FILE) root = tree.getroot() except (ET.ParseError, FileNotFoundError) as e: print(f"读取 XML 文件失败: {e}") return img_count = 0 for img in root.findall('image'): w = float(img.get('width')) h = float(img.get('height')) # 使用 Path 处理文件名,兼容性更好 name = Path(img.get('name')).stem yolo_lines = [] for tag in ['polyline', 'polygon']: for poly in img.findall(tag): label = poly.get('label') if label not in CLASS_MAP: continue cls_id = CLASS_MAP[label] points_str = poly.get('points') if not points_str: continue raw_points = points_str.replace(';', ' ').replace(',', ' ').split() try: pts = [float(p) for p in raw_points] except ValueError: continue if len(pts) < 6 or len(pts) % 2 != 0: continue norm_pts = [] for i in range(0, len(pts), 2): nx = max(0.0, min(1.0, pts[i] / w)) ny = max(0.0, min(1.0, pts[i+1] / h)) norm_pts.extend([f"{nx:.6f}", f"{ny:.6f}"]) yolo_lines.append(f"{cls_id} {' '.join(norm_pts)}") if yolo_lines: output_path = OUTPUT_DIR / f"{name}.txt" with open(output_path, 'w', encoding='utf-8') as f: f.write("\n".join(yolo_lines)) img_count += 1 print(f"转换完成!共处理图片: {img_count} 张。") print(f"输出目录: {OUTPUT_DIR}") convert_to_yolo_seg()
http://www.jsqmd.com/news/693965/

相关文章:

  • 避坑指南:在x86服务器或FPGA项目中配置PCIe Switch时,关于VC数量与TC映射的那些坑
  • Windows上安装Android应用的终极指南:告别模拟器,APK Installer让你轻松搞定
  • 京东抢购神器:3分钟学会自动化秒杀茅台等热门商品
  • DeepSeek V4 本地部署 + 生产级监控:从 Dockerfile 到 K8s 完整运维方案(2026)
  • 用Logitech G Hub写Lua脚本:手把手教你为PUBG M416调一个专属压枪宏
  • 新手避坑指南:手把手教你用51单片机做电子钟,从仿真到打板焊接的全过程复盘
  • 蓝桥杯单片机DS1302时钟不走?手把手教你排查硬件连接与驱动代码问题
  • 微电网多层控制架构设计的发展趋势
  • LSTM神经网络在时间序列预测中的应用与实践
  • 为什么大家都在疯狂转行网络安全!_网络安全和大数据哪个在agi时代二本应届生好就业
  • Obsidian个性化首页配置指南:如何从信息混乱到高效知识管理?
  • 临床前同源性反应种属筛选:利用AI Agent加速筛选的实操方案 —— 2026企业级智能体选型与技术落地指南
  • 抖音无水印视频下载神器:5分钟掌握批量下载的完整解决方案
  • 混合copula方法在二维数据拟合中的应用:针对Clayton、Frank、Gumbel三种常...
  • 2026年设备厂家榜单好评分析,环保设备/水过滤设备/纯化水设备/净化水设备/软水处理设备 - 品牌策略师
  • Vulkan开发环境搭建全记录:从SDK下载到第一个窗口弹出,我踩过的那些坑(Win11/VS2022实测)
  • 智能体在药物发现阶段如何辅助完成靶点专利覆盖的自动识别?2026药研AI Agent全景盘点与自动化选型指南
  • 告别‘Unable to find suitable Visual Studio toolchain’:一份给Flutter开发者的Windows环境自查清单
  • Goby插件生态初探:如何用社区力量打造你的专属漏洞扫描武器库
  • 中药执业药师模拟试卷哪家强?六大维度硬核测评,数据告诉你答案 - 医考机构品牌测评专家
  • 从扑克牌到C++标准库:深入Knuth洗牌算法,手把手教你实现自己的std::shuffle
  • 代谢组学找差异物别再只画火山图了!试试用R语言做OPLS-DA,VIP筛选更精准
  • MySQL 索引覆盖查询优化
  • 2026支付宝消费券回收实测口碑榜 - 京顺回收
  • Phi-3.5-Mini-Instruct快速上手:CLI命令行模式调用与API服务封装方法
  • Google亮出第八代TPU:Agent时代的芯片战争,真正的下半场开始了
  • Wand-Enhancer完全指南:开源WeMod专业版解锁工具深度解析
  • 别再死记硬背堆的定义了!从PTA L2-012这道题,彻底搞懂小顶堆的构建与家族关系查询
  • 如何完整导出微信聊天记录:WeChatMsg数据管理完全指南
  • 数据库安全