Closed DietDietDiet closed 3 years ago
参考代码
def gen_h5file(all_imgs, all_texts, all_wids, save_name):
img_seek_idxs, img_lens = [], []
cur_seek_idx = 0
for img in all_imgs:
img_seek_idxs.append(cur_seek_idx)
img_lens.append(img.shape[-1])
cur_seek_idx += img.shape[-1]
lb_seek_idxs, lb_lens = [], []
cur_seek_idx = 0
for lb in all_texts:
lb_seek_idxs.append(cur_seek_idx)
lb_lens.append(len(lb))
cur_seek_idx += len(lb)
save_imgs = np.concatenate(all_imgs, axis=-1)
save_texts = list(itertools.chain(*all_texts))
save_lbs = [ord(ch) for ch in save_texts]
save_path = os.path.join(save_name + '.hdf5')
h5f = h5py.File(save_path, 'w')
h5f.create_dataset('imgs',
data=save_imgs,
compression='gzip',
compression_opts=4,
dtype=np.uint8)
h5f.create_dataset('lbs',
data=save_lbs,
dtype=np.int32)
h5f.create_dataset('img_seek_idxs',
data=img_seek_idxs,
dtype=np.int64)
h5f.create_dataset('img_lens',
data=img_lens,
dtype=np.int16)
h5f.create_dataset('lb_seek_idxs',
data=lb_seek_idxs,
dtype=np.int64)
h5f.create_dataset('lb_lens',
data=lb_lens,
dtype=np.int16)
h5f.create_dataset('wids',
data=all_wids,
dtype=np.int16)
h5f.close()
print('save->', save_path)
每张图片需要人工缩放到大小为[32, 16 * len(text)]。
中文是要改成32*len(text)吧,但中英混排的场景是不是按照图片宽度不固定的逻辑会比较好
@DietDietDiet 这个就要你自己试一下了。
有个问题想确认下,config里面关于generator的n_class就不用考虑blank了对吧
要考虑的。blank是0。
Hi, 非常感谢您的开源工作。 个人想尝试一下在中文数据上的生成效果,能否麻烦简述一下hdf5文件的过程和生成前的大概数据排布,感谢!
请问您在中文数据上实验成功了么,我将中文数据缩放成[32, 32 * len(text)],char_width也设置为32,但生成的图像中字符总是缺一半
@isyyzhang 你好,默认的字符长宽比是2:1,设成1:1需要调一下网络结构。
Hi, 非常感谢您的开源工作。 个人想尝试一下在中文数据上的生成效果,能否麻烦简述一下hdf5文件的过程和生成前的大概数据排布,感谢!
请问您在中文数据上实验成功了么,我将中文数据缩放成[32, 32 * len(text)],char_width也设置为32,但生成的图像中字符总是缺一半
请问一下中文效果怎么样呢?
参考代码
def gen_h5file(all_imgs, all_texts, all_wids, save_name): img_seek_idxs, img_lens = [], [] cur_seek_idx = 0 for img in all_imgs: img_seek_idxs.append(cur_seek_idx) img_lens.append(img.shape[-1]) cur_seek_idx += img.shape[-1] lb_seek_idxs, lb_lens = [], [] cur_seek_idx = 0 for lb in all_texts: lb_seek_idxs.append(cur_seek_idx) lb_lens.append(len(lb)) cur_seek_idx += len(lb) save_imgs = np.concatenate(all_imgs, axis=-1) save_texts = list(itertools.chain(*all_texts)) save_lbs = [ord(ch) for ch in save_texts] save_path = os.path.join(save_name + '.hdf5') h5f = h5py.File(save_path, 'w') h5f.create_dataset('imgs', data=save_imgs, compression='gzip', compression_opts=4, dtype=np.uint8) h5f.create_dataset('lbs', data=save_lbs, dtype=np.int32) h5f.create_dataset('img_seek_idxs', data=img_seek_idxs, dtype=np.int64) h5f.create_dataset('img_lens', data=img_lens, dtype=np.int16) h5f.create_dataset('lb_seek_idxs', data=lb_seek_idxs, dtype=np.int64) h5f.create_dataset('lb_lens', data=lb_lens, dtype=np.int16) h5f.create_dataset('wids', data=all_wids, dtype=np.int16) h5f.close() print('save->', save_path)
每张图片需要人工缩放到大小为[32, 16 * len(text)]。
请问一下,函数中的参数都是什么意思以及是怎么得到的呀?
Hi, 非常感谢您的开源工作。 个人想尝试一下在中文数据上的生成效果,能否麻烦简述一下hdf5文件的过程和生成前的大概数据排布,感谢!