labelme标注转Coco数据集格式
发布日期:2025-04-04 00:21:48 浏览次数:14 分类:精选文章

本文共 1184 字,大约阅读时间需要 3 分钟。

Labelme 标注转 COCO 数据集格式

安装所需库

本地运行前,需要安装所需的 Python 库。可以通过以下命令安装:

pip install labelme imgviz -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,脚本将能够处理图片标注并将其转换为 COCO 格式。

COCO 数据集格式

在 COCO 数据集中,image对象和annotation对象的属性如下:

图片对象 (image 的主要属性)

  • id:图片的唯一标识符
  • file_name:图片的名称
  • width:图片的宽度
  • height:图片的高度

标注对象 (annotation 的主要属性)

  • id:标注的唯一标识符
  • image_id:标注所属的图片 ID
  • category_id:标注所属的类别 ID
  • iscrown:是否紧凑,默认为 0
  • area:标注的面积
  • bbox:标注的边框坐标,格式为 [x1, y1, x2, y2]
  • segmentation:标注的分割掩膜,有两种格式:
    • 多边形格式:列表形式,按顺序列出顶点坐标
    • RLE 格式:位移编码字符串
  • width:标注所属图片的宽度
  • height:标注所属图片的高度

转换过程

�_DISK:代码解释

以下是转换脚本的主要功能和逻辑:

  • 导入库和解析参数

    • 导入必要的库:argparsecollectionsjsonosnumpylabelmepycocotools
    • 解析输入参数:输入目录、输出目录、类别文件和是否启用可视化
  • 创建数据集目录

    • 创建输出目录和必要的子目录(如JPEGImagesVisualization
    • 初始化 COCO 数据集结构
  • 读取类别文件

    • 读取类别文件并生成类别到 ID 的映射关系
  • 处理每张图片

    • 遍历输入目录中的标注文件
    • 读取标注文件并解析图片数据
    • 保存转换后的图片到输出目录
  • 处理标注数据

    • 遍历标注中的形状数据,生成边框和分割掩膜
    • 使用 pycocotools 工具将分割掩膜编码到 COCO 格式
  • 可视化(可选)

    • 如果不启用可视化,直接处理标注文件
    • 否则,生成可视化的图片以便检查
  • 生成最终 JSON 文件

    • 将所有图片和标注数据整合到一个 JSON 文件中
    • 按照 COCO 数据集规范输出格式
  • 示例输入

    python labelme_to_coco.py \
    --input_dir "D:\BaiduPan\catDog" \
    --output_dir "D:\BaiduPan\catDogOut" \
    --labels "D:\BaiduPan\label.txt"

    类别文件示例

    __ignore__
    catdog

    通过以上命令,可以轻松将 Labelme 标注转换为 COCO 数据集格式。

    上一篇:label标签的for属性实现点击文字即可选中控件
    下一篇:label+input实现开关切换效果

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月09日 17时06分25秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章