PPOCRLabel标注的txt格式如何转换成labelme能修改的json格式

以下是将PPOCRLabel标注的txt格式转换成labelme能修改的json格式的完整攻略:

1. 确认PPOCRLabel标注格式

在将PPOCRLabel标注的txt格式转换成labelme能修改的json格式之前,我们需要首先确定PPOCRLabel标注格式的具体规则和内容。PPOCRLabel标注的txt格式通常是由以下信息组成:

图片名称,标注框数量,x0,y0,x1,y1,x2,y2,x3,y3,标签名称

其中,图片名称是指已经在标注工具中打开的图片文件名;标注框数量是指要标注的图片中目标物体数量;x0、y0、x1、y1、x2、y2以及x3、y3是指目标物体在图片中所对应的四个顶点坐标;标签名称是指目标物体所属的类别名称。

2. 下载和安装labelme

接下来,我们需要从官方网站或Github中下载和安装labelme工具。labelme是一款免费开源的图像标注工具,使用Python语言编写。

3. 将PPOCRLabel标注的txt格式转换为labelme支持的json格式

我们可以使用以下代码将PPOCRLabel标注的txt格式转换为labelme支持的json格式:

from labelme import utils
import json

def txt2json(txt_file_path, json_save_path):
    # 读取txt文件
    with open(txt_file_path, 'r') as f:
        lines = f.readlines()

    # 设置labelme json格式模板
    json_dict = {
        "version": "4.5.7",
        "flags": {},
        "shapes": [],
        "imagePath": "",
        "imageData": None,
        "imageHeight": 0,
        "imageWidth": 0
    }

    # 将txt内容转换为json格式
    for line in lines:
        line = line.strip().split(',')
        img_name = line[0]
        x0, y0, x1, y1, x2, y2, x3, y3 = line[2:10]

        # 设置标注框坐标和标签类别
        shape_attr = {
            "label": line[-1],
            "points": [[int(x0), int(y0)], [int(x1), int(y1)], [int(x2), int(y2)], [int(x3), int(y3)]],
            "group_id": None,
            "shape_type": "polygon",
            "flags": {}
        }

        # 将标注框添加到labelme格式模板中
        json_dict["shapes"].append(shape_attr)

    # 将json格式数据保存到指定路径
    with open(json_save_path, "w") as f:
        json.dump(json_dict, f, ensure_ascii=False)

4. 使用示例

假设我们需要将以下图片的PPOCRLabel标注txt格式转换为labelme JSON格式:

图片文件名:test1.jpg

标注框数量:2

标注框1坐标:x0=144,y0=226,x1=221,y1=231,x2=219,y2=261,x3=146,y3=256

标注框1类别:其他

标注框2坐标:x0=441,y0=250,x1=487,y1=252,x2=487,y2=282,x3=444,y3=281

标注框2类别:人

则可以使用以下代码将其转换为labelme JSON格式:

# 转换标注文件格式
txt2json("test1.txt", "test1.json")

经过上述步骤,我们可以得到一个标注格式为labelme支持的json格式的标注文件:test1.json,可以使用labelme工具进行修改和编辑。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PPOCRLabel标注的txt格式如何转换成labelme能修改的json格式 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 有密码 优酷视频 破解方法

    有密码优酷视频破解方法 登录优酷账号,找到需要观看的有密码视频,在视频页面右下角找到“复制链接”按钮,复制视频链接。 打开一个新的浏览器窗口,访问秘迹网。 在搜索框输入“优酷破解”,点击“搜索”按钮,选择其中一个页面打开。 在页面中粘贴复制的视频链接,点击“获取真实地址”按钮,等待几秒钟。 在页面下方会显示出视频的真实地址,复制该地址。 打开一个新的浏览器窗…

    人工智能概论 2023年5月25日
    00
  • Python 3.x 安装opencv+opencv_contrib的操作方法

    Python 3.x 安装opencv+opencv_contrib的操作方法: 安装依赖库 在Linux系统中,先安装一些必要的依赖库: sudo apt-get install build-essential cmake unzip pkg-config sudo apt-get install libjpeg-dev libpng-dev libtif…

    人工智能概览 2023年5月25日
    00
  • Python FastAPI 多参数传递的示例详解

    关于“Python FastAPI 多参数传递的示例详解”的完整攻略,我可以为您提供以下内容。 标题 本文主要讲解如何在 FastAPI 中实现多参数传递的示例,让读者了解如何在接口中传递多个参数并进行处理。 环境 在开始之前,需要准备以下环境: FastAPI 0.63.0 Python 3.7+ 示例1:路径参数+查询参数 接下来我们将介绍如何在 Fas…

    人工智能概论 2023年5月25日
    00
  • python中的三种注释方法

    当写Python代码时,我们需要在一些片段代码和特定表达式旁边添加一些注释。注释不会执行,而是为了方便代码的阅读和理解。Python提供了三种注释代码的方法。 单行注释 单行注释以井号(#)开始,直到行结束。单行注释通常在新行中独立写,也可以出现在代码行的后面。单行注释只针对一行代码进行注释。例如: # 这是一行单行注释 print("Hello,…

    人工智能概览 2023年5月25日
    00
  • Python Setuptools的 setup.py实例详解

    《Python Setuptools的 setup.py实例详解》是一篇关于如何使用Python Setuptools的文章,这里将提供完整的攻略。 前置条件 在使用Python Setuptools之前,需要保证已经安装了Python环境以及setuptools库。如果没有安装过setuptools,可以通过以下命令进行安装: pip install se…

    人工智能概览 2023年5月25日
    00
  • python实战练习之最新男女颜值打分小系统

    Python实战练习之最新男女颜值打分小系统攻略 项目概述 该项目是一个基于 Python 的小型交互式程序,通过终端界面为用户提供一个男女颜值打分系统。男女的颜值分别通过百度AI人脸识别API获取后展示在终端上,用户可以根据相应提示进行打分。 项目架构 该项目由如下几个模块构成: face_detect.py:用于调用百度AI人脸识别API,获取用户输入的…

    人工智能概览 2023年5月25日
    00
  • django使用channels2.x实现实时通讯

    下面我将详细介绍如何使用 Django 和 Channels 2.x 搭建实时通讯应用。 准备工作 首先,需要安装 Django 和 Channels,可以使用 pip 命令安装。假设你已经熟悉了 Django 的基本使用方法,下面就是 Channels 的部分了。 创建 Django 项目 首先,我们创建一个 Django 项目: $ django-adm…

    人工智能概览 2023年5月25日
    00
  • Docker容器中数据卷volumes的使用

    下面就给您详细讲解一下 Docker 容器中数据卷 volumes 的使用攻略。 数据卷 volumes 介绍 Docker 中的数据卷 volumes 是用于将主机文件系统中的目录或文件挂载到容器中的一种方法。在容器中使用 volumes 可以方便地将容器生成的数据,例如日志文件、数据库文件等持久化到主机上,如此一来,容器本身就不再担任数据的存储管理任务,…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部