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

作者:雪地(>^ω^<) 时间:2021-08-31 06:01:45 

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

PPOCR是个好东西

默认的训练文件是用自带的PPOCRLabel标注的,有时候需要用labelme来修改一些东西,比如后期用到的字段提取,就需要加一个参数,PPOCRLabel就没法做了,只能转成labelme,并利用group_id这个参数来赋值。

所以写了下面这个脚本

Label.txt每一行对应一个图片标注,该脚本作用是将PPOCRLabel的标注文件Label.txt转换为一个一个的json文件

并存储至json1目录下:

# -*- coding:utf-8 -*-
# 开发人员 : csu·攀-_-||
# 开发时间 : 2021/9/7 0007 10:30
# 文件名称 : pplable2json.py
# 开发工具 : PyCharm
# 功能描述 : PPOCRLabel标注的txt格式转换成labelme能修改的json格式

import os
import cv2
import json
import base64

#转base64
def image_to_base64(image_np):
   image = cv2.imencode('.jpg', image_np)[1]
   image_code = str(base64.b64encode(image))[2:-1]
   return image_code

def pp2json(path,savepath):
   with open(os.path.join(path,'Label.txt'),'r',encoding='utf-8') as f:
       for line in f.readlines():
           line = line.strip('\n')  # 去掉列表中每一个元素的换行符
           imgname = line.split('\t')[0].split('/')[1]
           img = cv2.imread(os.path.join(path,imgname))
           H,W,C = img.shape
           items = json.loads(line.split('\t')[1])
           item_shapes = []
           for item in items:
               item_shapes.append({
                   "label":item['transcription'],
                   "points":item['points'],
                   "group_id": 0,
                   "shape_type": "polygon",
                   "flags": {}
               })
           new_dict = {
               "version": "4.5.9",
               "flags": {},
               "shapes": item_shapes,
               "imagePath": imgname,
               "imageData": image_to_base64(img),
               "imageHeight": H,
               "imageWidth": W
           }
           with open(os.path.join(savepath,imgname.split('.')[0] + '.json'), "w",encoding='utf-8') as fw:
               print(imgname,' succeed!')
               json.dump(new_dict, fw)

if __name__ == '__main__':
   path = r'E:\Projects\OCR-release-2.1\tools\infer\imgs\train_data'
   savepath = r'json1'
   pp2json(path,savepath)

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

PPOCRLabel标注的Label.txt文件,所有的图片标注都在一个txt里头,一个图片一行,文件名和标注内容之间用制表符&rsquo;\t&rsquo;隔开。

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

labelme标注的json文件格式

来源:https://blog.csdn.net/qq_36563273/article/details/120822514

标签:PPOCRLabel,txt格式,labelme,json格式
0
投稿

猜你喜欢

  • Ubuntu16.04 server下配置MySQL,并开启远程连接的方法

    2024-01-17 08:59:10
  • python基础教程之python消息摘要算法使用示例

    2023-07-03 20:06:00
  • 在Django下测试与调试REST API的方法详解

    2023-05-19 16:09:32
  • asp可设置参数的分页代码例子

    2007-10-07 12:34:00
  • 极力推荐10个短小实用的JavaScript代码段

    2024-06-05 09:12:40
  • mysql创建master/slave详细步骤

    2011-05-21 15:29:00
  • python如何写出表白程序

    2023-12-19 17:10:56
  • Python爬虫中urllib库的进阶学习

    2023-12-13 19:31:53
  • python使用tkinter实现屏幕中间倒计时

    2021-03-10 22:28:11
  • python3用urllib抓取贴吧邮箱和QQ实例

    2022-05-15 16:25:18
  • 用 Python 元类的特性实现 ORM 框架

    2022-02-12 12:45:24
  • 深入讲解Go语言中函数new与make的使用和区别

    2023-06-16 17:52:29
  • python3写爬取B站视频弹幕功能

    2023-10-31 10:00:50
  • 使用vue.js实现checkbox的全选和多个的删除功能

    2024-04-10 10:32:00
  • asp删除mssql数据库中没有记录的图片代码

    2011-03-11 11:22:00
  • Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解

    2021-07-10 03:34:55
  • Python读写Excel文件的实例

    2023-03-05 03:25:10
  • Python简单实现子网掩码转换的方法

    2021-10-10 21:40:30
  • python 装饰器的使用与要点

    2023-02-05 01:04:02
  • ASP.Net MVC 布局页、模板页使用方法详细介绍

    2023-06-28 19:24:31
  • asp之家 网络编程 m.aspxhome.com