import os
import glob
import cv2
import ast
import re
root_path=r'D:\Ship_dataset\Ship_dataset\ONE/' #存放标签和图片的上两级文件夹
dir=r'hull_number/' #存放标签和图片的文件夹
filelabel='Label.txt' #PPOCRLabel标注标签
output_image='./hullnumber' #输出图片
output_label='./gt' #标签
if not os.path.exists(output_image):
os.mkdir(output_image)
if not os.path.exists(output_label):
os.mkdir(output_label)
image_name=[]
label_information=[]
with open(root_path+dir+filelabel,'r',encoding='utf-8') as f:
label=f.readlines()
for i in range(len(label)):
image_name.append(label[i].split('\t')[0])
message=label[i].split('\t')[-1].rstrip()
message=message[1:-1]
start=[each.start() for each in re.finditer('{',message)]
end=[each.start()+1 for each in re.finditer('}',message)]
Labeldict=[]
for j in range(len(start)):
number=message[start[j]:end[j]].replace('false','False')
c=eval(number)
Labeldict.append(c) #字典列表
str_point=''
for j in range(len(Labeldict)):
points=Labeldict[j]["points"]
list_point=points[0]+points[1]+points[2]+points[3]+[Labeldict[j]["transcription"]]
str_point+=str(list_point[0:8])[1:-1]+','+list_point[8]+'\n'
label_information.append(str_point)
for i in range(len(image_name)):
name=image_name[i].split('/')[-1][:-4]
image=cv2.imread(root_path+image_name[i])
Labelname='gt_'+name+'.txt'
cv2.imwrite(output_image+os.sep+name+'.jpg',image)
with open(output_label+os.sep+Labelname,'w') as f:
f.write(label_information[i])
print(image_name[0:9])
print(label_information[0:9])
训练文字识别数据集可用
该代码实现了一个将PPOCRLabel标注的文本识别数据集转换为特定格式的功能。它读取标签文件,解析标注信息,保存图片到指定目录,并创建对应的标签文件,适用于训练文字识别模型。
1万+

被折叠的 条评论
为什么被折叠?



