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

告别标注混乱!用Labelme搞定语义分割与实例分割数据集的完整流程(附VOC/COCO格式转换)

计算机视觉数据标注实战从Labelme标注到VOC/COCO格式转换全指南在计算机视觉项目中数据标注的质量直接影响模型性能的上限。许多初学者在完成图像采集后往往陷入标注工具选择困难、标注规范混乱、格式转换出错等困境。本文将手把手带你用Labelme完成语义分割与实例分割数据标注并实现VOC/COCO格式的高效转换解决以下核心痛点标注效率低下多边形标注耗时耗力如何用快捷键提升3倍效率标签管理混乱多人协作时如何避免标签命名冲突格式转换陷阱VOC和COCO格式转换后为何出现标签错位验证盲区转换后的数据集如何快速验证完整性1. Labelme环境配置与高效标注技巧1.1 跨平台安装方案Labelme支持Windows/macOS/Linux全平台推荐使用Python虚拟环境隔离依赖# 创建虚拟环境Python3.6 python -m venv labelme_env source labelme_env/bin/activate # Linux/macOS labelme_env\Scripts\activate # Windows # 安装Labelme pip install labelme5.1.1 pyqt5注意若出现PyQt5兼容性问题可尝试降级到pyqt55.15.41.2 专业级标注操作手册启动Labelme后掌握这些快捷键可提升标注效率操作快捷键适用场景新建多边形Ctrl N快速开始新标注撤销上一个点Backspace修正错误标注点完成当前多边形Enter封闭多边形并保存移动画布空格拖拽查看大尺寸图像不同区域缩放图像鼠标滚轮精细调整标注边界语义分割标注要点同类物体使用相同标签名如car不同实例间允许重叠如密集人群背景区域无需标注自动视为_background_实例分割特殊处理每个物体实例必须独立标注添加instance_id后缀区分相同类别如person_01, person_022. 标签体系设计与规范管理2.1 标签文件智能生成在标注目录外创建labels.txt需包含两个特殊标签__ignore__ _background_ car person traffic_light警告标签名称禁止包含空格或特殊字符建议使用下划线连接如traffic_light可通过Python脚本自动生成标签文件import os labels [__ignore__, _background_, car, person] with open(labels.txt, w) as f: f.write(\n.join(labels))2.2 多人协作解决方案当团队协作标注时采用以下规范避免冲突标签命名规范统一使用英文小写多单词用下划线连接如road_sign避免使用易混淆名称如vehicle和car版本控制流程# 标注文件版本管理示例 git add *.json git commit -m add 50 car annotations git push origin main3. 格式转换核心技术解析3.1 VOC格式深度转换执行转换命令前需确认目录结构dataset_raw/ ├── img1.jpg ├── img1.json ├── img2.jpg └── img2.json转换命令示例# 语义分割转换 labelme2voc.py dataset_raw dataset_voc --labels labels.txt # 实例分割转换额外生成SegmentationObject labelme2voc.py dataset_raw dataset_voc --labels labels.txt --noviz关键输出文件说明文件路径用途JPEGImages/原始图像备份SegmentationClass/语义分割标签单通道PNGSegmentationClassVisualization/可视化彩色标签SegmentationObject/实例分割标签仅实例转换生成3.2 COCO格式转换实战COCO格式更适合实例分割任务生成单个JSON注解文件labelme2coco.py dataset_raw dataset_coco --labels labels.txt转换后需验证关键字段import json with open(dataset_coco/annotations.json) as f: data json.load(f) print(f图像数量: {len(data[images])}) print(f标注数量: {len(data[annotations])}) print(f类别列表: {[c[name] for c in data[categories]]})常见问题排查表问题现象可能原因解决方案标签值为255被标记为__ignore__检查原始标注是否误标转换后类别数量减少labels.txt未包含所有类别更新labels.txt后重新转换实例ID重复标注时未区分相同类别不同实例检查原始JSON文件4. 高级技巧与质量保障4.1 标注质量检查方案开发自动化检查脚本from labelme import utils import numpy as np def check_annotation(json_file): data json.load(open(json_file)) img utils.img_b64_to_arr(data[imageData]) lbl, _ utils.shapes_to_label( img.shape, data[shapes], data[version] ) unique_labels np.unique(lbl) if 255 in unique_labels: print(f警告{json_file} 包含忽略区域) return unique_labels4.2 数据集划分最佳实践推荐按8:1:1比例分割数据集# 使用sklearn划分 python -c from sklearn.model_selection import train_test_split import os files [f for f in os.listdir(dataset_voc/JPEGImages) if f.endswith(.jpg)] train, test train_test_split(files, test_size0.2) test, val train_test_split(test, test_size0.5) print(fTrain: {len(train)}, Val: {len(val)}, Test: {len(test)}) 4.3 性能优化技巧处理大规模数据集时并行转换# 使用GNU parallel加速 find dataset_raw -name *.json | parallel -j 8 labelme2voc.py {} {.}_voc --labels labels.txt缓存机制from joblib import Memory memory Memory(./cachedir) memory.cache def load_annotation(json_file): return json.load(open(json_file))在实际项目中标注团队曾遇到转换后标签错位问题最终发现是图像EXIF方向信息未正确处理。解决方案是在转换前统一执行mogrify -auto-orient dataset_raw/*.jpg

相关文章:

告别标注混乱!用Labelme搞定语义分割与实例分割数据集的完整流程(附VOC/COCO格式转换)

计算机视觉数据标注实战:从Labelme标注到VOC/COCO格式转换全指南 在计算机视觉项目中,数据标注的质量直接影响模型性能的上限。许多初学者在完成图像采集后,往往陷入标注工具选择困难、标注规范混乱、格式转换出错等困境。本文将手把手带你用…...

DIY Layout Creator 5.0.0:开源跨平台电路设计工具的深度解析与实践指南

DIY Layout Creator 5.0.0:开源跨平台电路设计工具的深度解析与实践指南 【免费下载链接】diy-layout-creator multi platform circuit layout and schematic drawing tool 项目地址: https://gitcode.com/gh_mirrors/di/diy-layout-creator DIY Layout Crea…...

告别手动拼报文!用MThings调试Modbus设备,这5个高效功能让我效率翻倍

告别手动拼报文!用MThings调试Modbus设备,这5个高效功能让我效率翻倍 调试Modbus设备时,你是否经历过这样的场景:盯着十六进制报文反复核对CRC校验码,手忙脚乱地切换计算器和串口助手,或是为了批量读取寄存…...

高波动行情中,真正决定交易结果的,不只是方向

当市场进入高波动阶段,很多交易者第一反应往往是: 找方向、找机会、找入场点,甚至急着判断下一步到底该多还是该空。这很正常。因为交易者站在行情面前,最直观能看到的,就是价格在动。价格上涨,就想追&…...

深度技术解析:Zotero-OCR插件的高阶配置与性能优化

深度技术解析:Zotero-OCR插件的高阶配置与性能优化 【免费下载链接】zotero-ocr Zotero Plugin for OCR 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-ocr Zotero-OCR作为文献管理工具Zotero的核心OCR扩展,通过集成Tesseract引擎为PDF文献…...

docx2tex:将Word文档专业转换为LaTeX的终极解决方案

docx2tex:将Word文档专业转换为LaTeX的终极解决方案 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 你是否在学术写作或技术文档创作中,经常面临Word与LaTeX格式转换的…...

C++项目智能助手:Phi-4-mini-reasoning辅助代码重构与设计模式应用

C项目智能助手:Phi-4-mini-reasoning辅助代码重构与设计模式应用 1. 引言:大型C项目的维护挑战 维护一个大型C项目就像在管理一座不断扩建的城市。随着代码库规模的增长,各种"城市病"开始显现:交通拥堵(性…...

用手机学Java编程?AIDE保姆级入门指南,从零到第一个小游戏

用手机学Java编程?AIDE保姆级入门指南,从零到第一个小游戏 地铁上掏出手机刷短视频?不如试试用碎片时间写代码。AIDE这款Android平台的集成开发环境,让Java学习摆脱了电脑束缚——你完全可以在通勤路上完成从"Hello World&qu…...

Fish Speech 1.5中英混合语音合成教程:电商商品描述自动配音实战

Fish Speech 1.5中英混合语音合成教程:电商商品描述自动配音实战 1. 引言:电商卖家的配音烦恼与AI解决方案 如果你是电商卖家,每天要处理几十上百个商品上架,最头疼的是什么?除了拍照修图,可能就是给商品…...

MaaYuan:终极智能游戏自动化助手,3分钟解放你的游戏时间

MaaYuan:终极智能游戏自动化助手,3分钟解放你的游戏时间 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan MaaYuan是一款免费开源的智能游戏自动化工具,专门为《代号鸢》…...

别再只盯着LoRaWAN了!聊聊智能水表里那颗‘小磁铁’:干簧管选型与防误触实战指南

智能水表设计进阶:干簧管选型与抗干扰实战解析 在物联网智能水表的设计中,数据采集的可靠性直接决定了整个系统的准确性。当大多数讨论聚焦于LoRaWAN通信协议时,硬件设计中的关键元件——干簧管却往往被忽视。这颗"小磁铁"的选型和…...

[Java][Leetcode hard] 42. 接雨水

没做出来,看的官解。 1. 动态规划的思想 当位于i处,i处能接水的体积左侧最高点和右侧最高点的最小值(水桶原理)-自身的高度 class Solution {public int trap(int[] height) {int sum 0;int n height.length;int[] leftMax new…...

知识图谱里的“辈分”怎么算?聊聊HAKE如何用极坐标建模语义层级

知识图谱中的"家族树":HAKE模型如何用极坐标破解语义层级之谜 想象一下你正在整理一个庞大家族的族谱——从曾祖父辈到玄孙辈,每个人在家族树中的位置清晰可见。这种层级结构在人类社会中无处不在,而知识图谱中的实体同样存在着类似…...

玩转CloudCompare点云着色:手把手教你配置Scalar Field,让强度、高程数据一目了然

玩转CloudCompare点云着色:手把手教你配置Scalar Field,让强度、高程数据一目了然 点云数据的可视化是三维重建、地形测绘、逆向工程等领域的关键环节。当面对包含多维属性(如强度、高程、法向量)的激光雷达扫描数据时&#xff0c…...

当 ROS Noetic 遇上 Conda:在 Ubuntu 20.04 上管理 Python 环境的避坑指南

当 ROS Noetic 遇上 Conda:在 Ubuntu 20.04 上管理 Python 环境的避坑指南 在机器人开发领域,ROS(Robot Operating System)和Conda环境管理工具各自扮演着重要角色。ROS Noetic作为首个官方支持Python 3的LTS版本,与C…...

别再死记硬背了!用‘阅览室占座’和‘独木桥过河’两个生活例子,彻底搞懂操作系统的P、V操作

从生活场景秒懂操作系统:用阅览室和独木桥破解P、V操作 记得大学时第一次在图书馆抢座,好不容易找到空位却发现桌上放着"已占"的纸条——这种资源争夺的混乱场景,恰如操作系统中的进程竞争。而管理员后来推出的座位登记系统&#x…...

C++计算直线倾斜角与方位角

要计算一条直线的倾斜角(与X轴正方向的夹角)或方位角(与正北方向的顺时针夹角),核心在于根据直线上的两点坐标进行数学计算。以下是具体的数学原理和C实现。 一、核心数学公式 1. 倾斜角(与X轴夹角&#…...

【实战】RuoYi-Vue开发环境一站式部署:从零到一启动前后端分离项目

1. 环境准备:从零搭建基础组件 刚接触RuoYi-Vue时,最头疼的就是环境搭建。记得我第一次部署时,光是处理各种依赖冲突就花了整整两天。现在把踩坑经验总结成这份保姆级教程,帮你半小时搞定全套环境。 JDK安装是第一个门槛。推荐使…...

[Java毕设2026]宿舍管理系统_SpringBoot+Vue【文末附源码】

系统介绍 宿舍管理系统是一套面向高校、职校和学生公寓场景的数字化宿舍管理平台,围绕楼栋、房间、床位、学生和宿舍日常事务,打造一套清晰、高效、可追踪的业务管理系统。 系统概述 本系统采用前后端分离架构,前端基于 Vue 3 Element Pl…...

终极Windows右键菜单清理指南:ContextMenuManager让你的桌面操作效率翻倍

终极Windows右键菜单清理指南:ContextMenuManager让你的桌面操作效率翻倍 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否经常在Windows右键菜…...

终极鼠标灵敏度转换指南:3D游戏间精准保持肌肉记忆的完整解决方案

终极鼠标灵敏度转换指南:3D游戏间精准保持肌肉记忆的完整解决方案 【免费下载链接】SensitivityMatcher Script that can be used to convert your mouse sensitivity between different 3D games. 项目地址: https://gitcode.com/gh_mirrors/se/SensitivityMatch…...

2026届最火的降AI率网站解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,占据主流地位的降 AIGC 工具,凭借同义词替换、句式重组以及语义…...

如何理解A醇价格背后的检测与批次管理逻辑

如何理解A醇价格背后的检测与批次管理逻辑在化妆品原料采购领域,A醇(视黄醇)作为一种高活性功效成分,其价格差异往往令采购与研发人员困惑——同标称纯度的A醇,不同供应商报价可能相差悬殊。价格差异的根源&#xff0c…...

如何为Calibre高效获取豆瓣图书元数据:New Douban插件完整指南

如何为Calibre高效获取豆瓣图书元数据:New Douban插件完整指南 【免费下载链接】calibre-douban Calibre new douban metadata source plugin. Douban no longer provides book APIs to the public, so it can only use web crawling to obtain data. This is a cal…...

Windows 10安卓子系统完整安装教程:无需升级Win11的终极解决方案

Windows 10安卓子系统完整安装教程:无需升级Win11的终极解决方案 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在羡慕Windows 11用…...

国民技术 N32G430F8S7 TSSOP-20 单片机

关键特性 内核CPU -32位ARMCortex-M4 内核FPU,支持DSP指令 一内置1KB指令Cache缓存,支持Flash加速单元执行程序0等待 一 最高主频128MHz,160DMIPS 加密存储器 高达64KByte片内Flash,支持加密存储、分区管理及数据保护,…...

如何用Python-miio掌控小米智能设备:2025终极自动化控制指南

如何用Python-miio掌控小米智能设备:2025终极自动化控制指南 【免费下载链接】python-miio Python library & console tool for controlling Xiaomi smart appliances 项目地址: https://gitcode.com/gh_mirrors/py/python-miio Python-miio是一款强大的…...

手把手教你用PyTorch复现SuperPoint:从官方源码到自定义匹配可视化(附完整代码)

PyTorch实战:从零构建SuperPoint特征检测器与自定义可视化系统 在计算机视觉领域,特征点检测与匹配一直是基础而关键的技术环节。SuperPoint作为自监督学习的里程碑式工作,以其优异的性能表现成为众多视觉任务的基石。本文将带您深入PyTorch实…...

新能源数智化

1、方案总览 基于通用大数据实施方案框架,深度融合汽车行业「研产供销服」全价值链场景,构建以 “多模态数据智能中台”为核心,“数据智能引擎”与“空间智能引擎(数字孪生)” 为两翼的一体化平台,实现乘用…...

保姆级避坑指南:在Ubuntu 24.04虚拟机里用Docker搞定YOLOv11到MaixCam的模型转换

从零到一:Ubuntu 24.04虚拟机Docker实现YOLOv11模型到MaixCam的高效转换实战 边缘AI部署正成为智能硬件开发的热门方向,但对于刚接触Linux和Docker的开发者来说,从训练好的模型到实际设备部署往往充满挑战。本文将手把手带你完成YOLOv11模型从…...