Open Eric-Sunxr opened 2 years ago
遇到了同样的问题,蹲个点
应该是先在SynthText上进行预训练后再在其他数据集上进行微调训练吧
刚debug了一下,对于totaltext数据集,对于一张图片中坐标点个数不一样的图片是没有进行加载的,比如,一张图片中有三个文本,第一个文本12个点,第二、三个文本8个点,那么这张图片就没有参与训练,但是我又不会改,不知道改哪里,如果你会改的话告我一下
应该是先在SynthText上进行预训练后再在其他数据集上进行微调训练吧 我使用官方那个DB代码的预训练模型finetune不知道为啥一点效果都没有5555
刚debug了一下,对于totaltext数据集,对于一张图片中坐标点个数不一样的图片是没有进行加载的,比如,一张图片中有三个文本,第一个文本12个点,第二、三个文本8个点,那么这张图片就没有参与训练,但是我又不会改,不知道改哪里,如果你会改的话告我一下
我使用的是转换成Coco的数据,然后写的数据读取是这样的。 `class CocoDataset(BaseDataSet): def init(self, data_path: str, img_mode, pre_processes, filter_keys, ignore_tags, transform=None, **kwargs): super().init(data_path, img_mode, pre_processes, filter_keys, ignore_tags, transform)
def load_data(self,data_path: str) -> list:
data_path=data_path[0]
file=COCO(annotation_file=data_path)# 这里的路径是一个列表哦
data_list=[]
root_path='/'+os.path.join(*(data_path.split('/')[:-1]))
# 针对不同的数据集进行root path的修改
if "totaltext" in data_path:
if "train" in data_path:
root_path=root_path+"/Images/Train"
elif "test" in data_path or "val" in data_path:
root_path=root_path+"/Images/Test"
elif "ctw" in data_path:
if "train" in data_path:
root_path=root_path+"/train/text_image"
elif "test" in data_path:
root_path=root_path+"/test/text_image"
elif "mlt" in data_path:
root_path=root_path
for id,image_info in tqdm(file.imgs.items()):
img_path=os.path.join(root_path,image_info['file_name'])
img_name=pathlib.Path(img_path).stem
#获取标注
label_id=image_info['id']
ann_ids=file.getAnnIds(imgIds=label_id)
annotation=file.loadAnns(ann_ids)
boxes=[]
texts=[]
ignores=[]
for ann in annotation:
boxes.append(np.array(ann['segmentation'],dtype="float32").reshape(-1,2))
if 'transcription' in ann.keys():
texts.append(ann['transcription'])
ignores.append(ann['transcription'] in self.ignore_tags)
else:
texts.append('None')
ignores.append(False)
# text_polys=np.array(boxes)#CWT1500
text_polys=boxes
data_list.append({
'img_path': img_path,
'img_name': img_name,
'text_polys': text_polys,
'texts': texts,
'ignore_tags': ignores
})
return data_list
`
应该是先在SynthText上进行预训练后再在其他数据集上进行微调训练吧
是的,都是先在SynthText上预训练的
您好,请问您在训练CTW数据集时有没有遇到这个问题呀
我单独再TotalText训练集和CTW1500训练集上面疯狂训练,然后效果都还挺低的六七十这样,然后重温论文突然发现实验细节中有一句所有模型均在SynthText上训练之后微调,所以是由于这个原因所以才会这样的嘛?还是我的超参数设置不对呀?
大佬您好,方便咨询一下CTW1500是怎样打标注,用代码当中哪个进行训练吗?是用DetDataset这个吗?
我单独再TotalText训练集和CTW1500训练集上面疯狂训练,然后效果都还挺低的六七十这样,然后重温论文突然发现实验细节中有一句所有模型均在SynthText上训练之后微调,所以是由于这个原因所以才会这样的嘛?还是我的超参数设置不对呀?