1、icdar2015下载地址
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数据集的测试标注
4、如果标记的字符中本来就有"这个字符,这里我们需要自己手动转义一下,如8"需要我们手动添加为8\",否则paddle会分辨不出两个",读取数据会错误。