transformer做ocr任务
transformer的结构天然适合做seq2seq的学习任务,直觉上讲,格式标准的图像任务需要做一系列转换才能使用transformer任务,或者说在输入侧适配encoder。ocr任务包含解码的过程,因此在输出侧使用掩码可以适配transformer decoder。
看完datawhale 教程,最为tricky的一部分是作者观察到宽高1:1的原图范围内对应着3个英文字符,因此将图片宽高设置为3:1,保证经过resnet18 感受野降低32倍后能够使得feature map每个点(512维)对应一个英文字符。
暂时还未手撕代码,先挖个坑待填充。没有看懂在模型训练完成前后decoder操作机制的不同,在训练的时候可以用上三角矩阵mask attention,而在输出的时候是使用rnn的思路,不断输入隐变量然后argmax解码出来字符?如果是这样的话,又如何处理字符长度不定长的问题呢?
引用