最近在做自然场景的OCR检测识别算法,对于检测来说,需要对文件图片进行ground truth坐标点label的标注,刚开始使用的是标注精灵助手,标注好boundingbox后导出的是json格式的文件信息,但是CTPN、PSE等文字检测算法的训练需要点坐标信息的txt格式文件,因此(重点了):

当你准备做自然场景下的文字检测算法时,类似于CTPN/PSE等,你使用了标注精灵助手标注好了文字位置的bounding box信息并导出了json格式的文件,你可以使用如下脚本(python3)将json文件,批量转成训练时方便使用的点坐标txt文件。

代码如下:

#-*- coding:utf-8 _*-
"""
@author:xxx
@file: read_json.py
@time: 2019/06/05
"""
# 根据标注精灵标好导出的json文件生成txt
import json
import os
import glob
from tqdm import tqdm
def get_files(path,_ends=['*.json']):all_files = []for _end in _ends:files = glob.glob(os.path.join(path,_end))all_files.extend(files)file_num = len(all_files)return all_files,file_num
def get_text_mark(file_path):with open(file_path,'r',encoding='utf-8') as fid:result_dict = json.load(fid)obj = result_dict['outputs']['object']all_text_mark = []for obj_item in obj:text = obj_item['name']try:coords = obj_item['polygon']try:output_coord = [int(float(coords['x1'])), int(float(coords['y1'])), int(float(coords['x2'])), int(float(coords['y2'])), int(float(coords['x3'])), int(float(coords['y3'])),int(float(coords['x4'])), int(float(coords['y4']))]except:continueexcept:coords = obj_item['bndbox']try:output_coord = [int(float(coords['xmin'])), int(float(coords['ymin'])), int(float(coords['xmax'])), int(float(coords['ymin'])), int(float(coords['xmax'])), int(float(coords['ymax'])),int(float(coords['xmin'])), int(float(coords['ymax']))]except:continueoutput_text = ''for item in output_coord:output_text = output_text+str(item)+','output_text+=textall_text_mark.append(output_text)return all_text_markdef write_to_txt(out_txt_path,one_file_all_mark):#windowswith open(os.path.join(out_txt_path,file.split('\\')[-1].split('.')[0]+'.txt'),'a+',encoding='utf-8') as fid:##linux# with open(os.path.join(out_txt_path, file.split('/')#                                      [-1].split('.')[0] + '.txt'), 'a+', encoding='utf-8') as fid:for item in one_file_all_mark:fid.write(item+'\n')if __name__=="__main__":json_path = r'xxxxxx'out_txt_path = r'xxxxxx'files,files_len=get_files(json_path)bar = tqdm(total=files_len)for file in files:bar.update(1)print(file)try:one_file_all_mark = get_text_mark(file)except:print(file)continuewrite_to_txt(out_txt_path,one_file_all_mark)bar.close()

注:该脚本在windows下和linux下都可以正常运行,但是需要实际需要修改write_to_txt()方法里的备注部分。

根据标注精灵助手标好并导出的json文件生成txt文件(一)相关推荐

  1. (C++)将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法

    将数据库文件导出XML文件以及解析XML文件生成数据库文件的处理方法 思路:将数据库所有要导出的信息通过sql语句得到,存储到结构体中,然后将结构体的内容通过自定义的xml格式导出. 此方法使用的是T ...

  2. mysql怎么导出pdm文件_根据mysql的.sql文件生成pdm文件

    POWERDESIGNER 是一个不错的数据库建模工具,但是如果是采用MYSQL数据库的话却很少人用它来建模型,因为MYSQL是一个比较简单(但速度很快)的优秀数据库,不支 持存储过程,触发器,bus ...

  3. 从Oracle导出数据到TXT文件从TXT文件导入数据到Oracle

    如果是txt文件的数据导入oracle中,数据量大的话用pl/sql会卡死,那么就要用到sqlload命令. 前两天在做一个不算任务的任务,用shell脚本将数据库中的数据导出到文件,在万能的百度上找 ...

  4. python如何打印txt文件_关于文本:如何将所有打印导出到Python中的.txt文件?

    本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: Redirect stdout to a file in Python? 我终于完成了我项目的所有代码.现在,我需要所有 ...

  5. 标注精灵助手标注使用教程(nlp方向,文本标注)

    一,网址为:http://www.jinglingbiaozhu.com/,其中下载中文版,for windows版: 二,下载后好直接双击安装: 三,如何使用: (1)点击"+" ...

  6. qq群 消息导出 html,【更新】QQ群成员提取工具(可导出xls、xlsx、txt文件)(csv文件)...

    本帖最后由 何人与我立黄昏 于 2019-12-5 08:47 编辑 说明一下:因为是二次开发,贴上原帖地址,感谢作者提供开源的核心算法 https://www.52pojie.cn/thread-8 ...

  7. COLMAP导出相机外参(bin文件转txt文件)

     官方给出的images.txt如下图: # Image list with two lines of data per image: # 每张图像数据占两行 # IMAGE_ID, QW, QX, ...

  8. PHP导出word【 直接生成word文件 】

     使用composer安装PHPword: composer require phpoffice/phpword  直接生成word文件: public function makePhpWord(){ ...

  9. R语言中的导出为pdf文件或txt文件的注意事项

    最近看了下R语言的书,练练手发现一些问题 比如保存图像为pdf文件,我一开始老是显示文件为不含页面,后来才想清楚其中的道理 首先输入 pdf("mypdf.pdf") 然后用sou ...

最新文章

  1. ECMAScript 6中的let和const关键词
  2. java的23设计模式
  3. java中的“”、“|”、“^”、“~”运算符怎么用?
  4. 使用ETL控件还是存储过程
  5. 一线互联网架构师筑基必备技能之Java篇,工作感悟
  6. Spark学习之路 (二十三)SparkStreaming的官方文档
  7. clearTaskOnLaunch的作用,自己总结,求关注
  8. 如何更好地控制input输入框的高度
  9. 解决办法:undefined reference to symbol 'shm_open@@GLIBC_2.2.5'
  10. Apizza在chrome上安装apizzaSQ扩展
  11. 单片机c语言 教案,《单片机C语言》 课程教案.doc
  12. linux-查看CPU温度
  13. 十大著名黑客——George Hotz
  14. Ubuntu系统在VMWare中鼠标闪烁的问题解决方案
  15. TIA protal与SCL从入门到精通(4)——软件单元使用
  16. WP模板常用调用函数
  17. 友价内核房产交易系统整站源码
  18. Windows命令行窗口 - DOS 指令
  19. 怎么修改PDF文字,PDF修改文字用什么方法
  20. Cisco Anyconnect 导致 wsl2 网络连接异常问题处理

热门文章

  1. VLAN--虚拟局域网(理论详解)
  2. [悦读简报] 2021年1月5日,星期二,农历十一月二十二
  3. 淘宝天猫电商活动大促PS模板,附带预览图、源文件
  4. 考研c语言难度,大一新生注意:这些学科的“补考”比考试还难,而且挂科率超高...
  5. dj打碟怎么学_DJ打碟教学全程
  6. Frequency函数 分段统计个数 去除重复值的唯一值数组(常用于提取不重复的数字)
  7. GlobalFree
  8. 解答edge浏览器自带小游戏在哪里
  9. 记录Python使用Django框架操作数据库遇到的问题与流程
  10. java程序员面试被骗,心灰意冷,却不想峰回路转,“意外“拿到美团offer