所以我选择的第一个Attention_ocr.pytorch-master.zip,从名字上可以看出这个是加入注意力机制,感觉效果会好一些。
下图是Attention_ocr.pytorch-master.zip自带的数据集截图,从截图上可以看出,数据的格式:“图片路径+空格+标签”。我们也需要按照这样的格式构建数据集。
新建makedata.py文件,插入下面的代码。
import os
import json
#官方给的数据集
image_path_amount = “./data/train/amount/images”
image_path_date = “./data/train/date/images”
#增强数据集
image_path_test=‘./data/gan_test_15000/images/0’
image_path_train=‘./data/gan_train_15500_0/images/0’
amount_list = os.listdir(image_path_amount)
amount_list = os.listdir(image_path_amount)
new_amount_list = []
for filename in amount_list:
new_amount_list.append(image_path_amount + “/” + filename)
date_list = os.listdir(image_path_date)
new_date_list = []
for filename in date_list:
new_date_list.append(image_path_date + “/” + filename)
new_test_list = []
for filename in amount_list:
new_test_list.append(image_path_amount + “/” + filename)
new_train_list = []
for filename in amount_list:
new_train_list.append(image_path_amount + “/” + filename)
image_path_amount和image_path_date是官方给定的数据集路径。
image_path_test和image_path_train是增强的数据集(在后面会讲如何做增强)
创建建立list,保存图片的路径。
amount_json = “./data/train/amount/gt.json”
date_json = “./data/train/date/gt.json”
train_json = “train_data.json”
test_json = “test_data.json”
with open(amount_json, “r”, encoding=‘utf-8’) as f:
load_dict_amount = json.load(f)
with open(date_json, “r”, encoding=‘utf-8’) as f:
load_dict_date = json.load(f)
with open(train_json, “r”, encoding=‘utf-8’) as f:
load_dict_train = json.load(f)
with open(test_json, “r”, encoding=‘utf-8’) as f:
load_dict_test = json.load(f)
四个json文件对应上面的四个list,json文件存储的是图片的名字和图片的标签,把json解析出来存到字典中。
#聚合list
all_list = new_amount_list + new_date_list+new_test_list+new_train_list
from sklearn.model_selection import train_test_split
#切分训练集合和验证集
train_list, test_list = train_test_split(all_list, test_size=0.15, random_state=42)
#聚合字