将icdar2015数据集转换成paddleOCR标注数据格式

简介: 将icdar2015数据集转换成paddleOCR标注数据格式

1、icdar2015下载地址



请.png

2、gen_label.py


import os
import argparse
import json
def gen_rec_label(input_path, out_label):
    with open(out_label, 'w') as out_file:
        with open(input_path, 'r') as f:
            for line in f.readlines():
                tmp = line.strip('\n').replace(" ", "").split(',')
                img_path, label = tmp[0], tmp[1]
                label = label.replace("\"", "")
                out_file.write(img_path + '\t' + label + '\n')
def gen_det_label(root_path, input_dir, out_label):
    with open(out_label, 'w',encoding='utf-8') as out_file:
        for label_file in os.listdir(input_dir):
            img_path = root_path + label_file[3:-4] + ".jpg"
            label = []
            print(label_file)
            with open(os.path.join(input_dir, label_file), "r",encoding='UTF-8-sig') as f:
                for line in f.readlines():
                    print(line)
                    #tmp = str(line).replace("\\xef\\xbb\\xbf", "").split(',')
                    #tmp = str(line).strip("\\r\\n").replace("\\xef\\xbb\\xbf", "").split(',')
                    tmp=str(line).strip("\n\r").split(',')
                    print(tmp)
                    points = tmp[:8]
                    print(len(points))
                    s = []
                    for i in range(0, len(points), 2):
                        b = points[i:i + 2]
                        print(b)
                        b = [int(float(t)) for t in b]
                        s.append(b)
                    result = {"transcription": tmp[8], "points": s}
                    label.append(result)
            out_file.write(img_path + '\t' + json.dumps(
                label, ensure_ascii=False) + '\n')
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--mode',
        type=str,
        default="rec",
        help='Generate rec_label or det_label, can be set rec or det')
    parser.add_argument(
        '--root_path',
        type=str,
        default="text_localization/ch4_test_images/",
        help='The root directory of images.Only takes effect when mode=det ')
    parser.add_argument(
        '--input_path',
        type=str,
        default="icdar2015/text_localization/Challenge4_Test_Task1_GT",
        help='Input_label or input path to be converted')
    parser.add_argument(
        '--output_label',
        type=str,
        default="text_localization/test_icdar2015_label.txt",
        help='Output file name')
    args = parser.parse_args()
    if args.mode == "rec":
        print("Generate rec label")
        gen_rec_label(args.input_path, args.output_label)
    elif args.mode == "det":
        gen_det_label(args.root_path, args.input_path, args.output_label)

3、转换之后的目录如下


/PaddleOCR/train_data/icdar2015/text_localization/
  └─ icdar_c4_train_imgs/         icdar数据集的训练数据
  └─ ch4_test_images/             icdar数据集的测试数据
  └─ train_icdar2015_label.txt    icdar数据集的训练标注
  └─ test_icdar2015_label.txt     icdar数据集的测试标注


去.png

4、如果标记的字符中本来就有"这个字符,这里我们需要自己手动转义一下,如8"需要我们手动添加为8\",否则paddle会分辨不出两个",读取数据会错误。

 


相关文章
|
传感器 C++ 计算机视觉
【opencv3】详述PnP测距完整流程(附C++代码)
【opencv3】详述PnP测距完整流程(附C++代码)
1707 0
|
前端开发 NoSQL JavaScript
【开源视频联动物联网平台】开箱即用的物联网项目介绍
【开源视频联动物联网平台】开箱即用的物联网项目介绍
950 1
|
存储 移动开发 算法
语音识别(ASR)--语音转文字
音识别(Automatic Speech Recognition) 是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门涉及面很广的交叉学科,它与声学、语音学、语言学、信息理论、模式识别理论以及神经生物学等学科都有非常密切的关系。
3920 0
|
存储 编解码 Java
图片Exif信息解析(Java实现)
图片Exif信息解析(Java实现)
|
存储 人工智能 数据可视化
AI计算机视觉笔记二十一:PaddleOCR训练自定义数据集
在完成PaddleOCR环境搭建与测试后,本文档详细介绍如何训练自定义的车牌检测模型。首先,在`PaddleOCR`目录下创建`train_data`文件夹存放数据集,并下载并解压缩车牌数据集。接着,复制并修改配置文件`ch_det_mv3_db_v2.0.yml`以适应训练需求,包括设置模型存储目录、训练可视化选项及数据集路径。随后,下载预训练权重文件并放置于`pretrain_models`目录下,以便进行预测与训练。最后,通过指定命令行参数执行训练、断点续训、测试及导出推理模型等操作。
1869 3
|
编解码 人工智能 文字识别
阶跃星辰开源GOT-OCR2.0:统一端到端模型,魔搭一站式推理微调最佳实践来啦!
GOT来促进OCR-2.0的到来。该模型具有580百万参数,是一个统一、优雅和端到端的模型,由高压缩编码器和长上下文解码器组成。
阶跃星辰开源GOT-OCR2.0:统一端到端模型,魔搭一站式推理微调最佳实践来啦!
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
1464 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
人工智能 Cloud Native 虚拟化
小白学网络系列之---从物理网络到云网络
本文由阿里云技术服务部枫桥撰写,围绕物理网络和云网络的基础知识展开,强调网络在云计算中的重要性。文章首先介绍了OSI模型下的物理层、数据链路层、网络层、传输层和应用层,解释了各层的功能与作用。接着探讨了云网络的必要性及其核心技术,如VPC(虚拟私有网络)、Overlay和Underlay网络,并阐述了它们之间的协作关系。最后,文章分析了AI大模型浪潮下云网络的演进方向,包括高速RDMA网络架构、高性能集合通信库ACCL和高性能数据主动加载加速软件KSpeed等技术的应用,展示了云网络在支持大规模分布式AI训练中的关键作用。通过本文,读者可以深入了解从物理网络到云网络的技术演进及其未来发展趋势。
1248 15
|
机器学习/深度学习 人工智能 编解码
《AI “造脸术”:生成对抗网络打造超真实虚拟人脸》
生成对抗网络(GANs)通过生成器和判别器的对抗训练,从随机噪声中生成高度真实感的虚拟人脸。生成器逐步优化图像生成,判别器不断提升辨别能力,最终生成逼真的人脸图像。GANs在影视、游戏和虚拟现实等领域广泛应用,为虚拟角色塑造和个性化定制提供了强大支持。未来,随着技术进步,GANs有望进一步提升生成质量与多样性,推动虚拟人脸技术迈向新高度。
765 13