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标注的Label.txt文件,所有的图片标注都在一个txt里头,一个图片一行,文件名和标注内容之间用制表符’\t’隔开。
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