Transformer 技术在好大夫在线的落地探索
Transformer技术最初是由谷歌大脑发表的论文《Attention is all your need》[1]中提出一种Sequence-to-Sequence模型,用于解决机器翻译的问题。随后,由于Transformer技术强大的特征提取能力,其逐渐取代循环神经网络,成为自然语言处理(Natural Language Processing, NLP)领域的主流框架。之后Transformer技术也在计算机视觉(Computer Vision, CV)领域取得了巨大的成功。这一系列的成就都说明Transformer技术拥有非常巨大的潜力。
Transformer技术一个非常吸引人的特点就是其能利用海量的未标记的数据对其进行预训练以显著提升其预测性能。众所周知,好大夫在线拥有数十亿条医患交流和数亿张医疗相关照片。它们占有着大量的存储空间,且由于标记成本过高,而没办法被利用。Transformer技术给了我们一个将它们利用起来的机会,从而给医患群体提供更可靠的帮助。
在本文的余下部分,我们首先介绍Transformer技术,然后介绍该技术在好大夫在线的落地探索,最后总结Transformer技术的特点,以及未来的规划。
一、Transformer技术介绍
Transformer技术最初被提出是用于机器翻译。Transformer技术诞生之前的机器翻译主流使用循环/卷积神经网络(RNN/CNN)作为编码器和解码器。编码器和解码器之间使用注意力机制(Attention Mechanism)行连接。谷歌大脑的研究员认为注意力机制足以提取所有的特征,而根本不需要循环/卷积神经网络的参与。为此他们只用注意力机制之间的组合便创造了Transformer技术。因此注意力机制是Transformer技术的基础单元。
不同于卷积/循环神经网络(RNN/CNN)会对数据分布进行先验假设,Transformer技术对数据没有任何假设,其参数均从数据对之间的联系中学习。因此Transformer技术无论在图像还是文本数据上都能有非常好的效果。
在本部分,我们先介绍注意力机制的原理,然后再介绍Transformer技术的大体结构,最后介绍Transformer技术在学术界和工业界的应用。
1.1 注意力机制
在实际应用中,注意力机制通常由线性层或U-Net-like网络结构输出。注意力机制定义了输入特征的重要性,通过对不同特征赋予权值,从而使得更重要的特征对预测结果影响更大。
在自然语言处理中,注意力机制定义了不同词语之间的关联程度。如图1.1.1所示,“正义”和“它”之间的关联程度紧密,二者在算法输出的注意力图上的权值应非常大。
在计算机视觉中,注意力机制定义了图像不同区域的重要程度。一个典型的注意力机制应用为视觉问答(Visual Question Answering,VQA),即给一张图像和一个相关问题让AI回答这个问题。输入图像、相关问题、算法给出的注意力结果示例如图1.1.2所示。从图1.1.2中可以看到,与所问问题越有关联的图像区域的注意力权值越高,这使得该区域的图像特征越有效。
在计算机视觉另一个领域OCR文字识别中,注意力机制同样也有应用。因为图像中并不是每一处都有文字,因此图像每一处并不是同样重要的。图1.1.3显示了SRN算法[3]输出的有关图像的注意力图。由图1.1.3可以看出SRN算法只在存在文字的对应区域能计算出较大的注意力权值。
1.2 Transformer技术的网络结构
1.2.1 整体结构
最初始的Transformer结构如图1.2.1所示。图中左半部分为特征编码器,右半部分为特征解码器。
该结构是用于进行机器翻译的,因此其编码器和解码器均有输入。编码器输入Inputs在经过Embedding层后转换为词向量,词向量与位置编码的向量相加后即为最终处理好的编码器输入向量。解码器输入Outputs为上一步翻译好了的内容,经过和编码器输入一样的处理即为最终处理好的解码器输入向量。
在不同的子任务上会使用不同Transformer架构:
1)编码器-解码器完整架构:该架构通常用于机器翻译领域。
2)只有编码器架构:该架构常用于分类,序列打标签等任务。
3)只有解码器架构:该架构常用于文本生成任务。
1.2.2 多头注意力模块
网络的输入模块最终会输出一个带位置编码信息的特征,设该特征为 a 。对特征 a 的每一个元素,多头注意力模块会使用三个不同的全连接层对其进行处理。设 a 的第 i 个元素为 a_i (i为任意值)。a_i 对应的三个不同的全连接层处理结果分别记为 query_i (询问分量)、 key_i (被询问分量)、 value_i (值分量)。此时多头注意力模块会将 query_i 、 key_i 、 value_i 、按通道分割为多份,以满足注意不同特征的需求。
特征 a 中的每一个元素会用它自己的询问分量 query 去对其他每一个元素的被询问分量 key 进行轮询,以计算该元素与其他每一个元素之间的关系权重。该元素与其他每一个元素之间的关系权重与其他每一个元素各自的值分量 value 的加权和即为该元素的注意力模块输出。合并所有头的注意力模块输出即为多头注意力模块的最终输出。
解码器的masked多头注意力模块机制与上面讲的一致,其只不过加了一个掩码机制防止已翻译出来的词与未翻译出的词之间产生联系。
1.2.3 编码器前馈模块
该模块先通过全连接层进行特征提取,然后使用残差求和防止过深的神经网络使得特征丢失,最后使用归一化加快模型的优化速度。它是常用的特征精炼模块。
至此编码器的三个模块叙述完毕,解码器由于其子任务多变性在此不做多的叙述。
1.3 Transformer技术的应用
Transformer技术最开始被应用于机器翻译领域,并取得了比较满意的结果。Transformer技术由于未对数据做任何先验假设,所有特征倾向都是从数据中学习到的,因此其在小数据集上很容易过拟合。为解决小数据集过拟合问题,谷歌大脑提出Bert算法[4]。Bert算法会先在超大规模未被标记的文本上进行预训练,以学习所需的特征倾向。然后Bert算法再在小规模数据上进行微调,以满足不同的下游任务。受Transformer结构中的位置编码限制,Bert算法会有一个最大处理长度(通常设置为512),因此Bert算法无法处理超长文本。为解决长文本的处理问题,Transformer-XL算法[5]在Bert算法基础上诞生了。Transformer-XL算法会将长文本进行分割处理。在处理下一段分割文本时,Transformer-XL算法会对上一段的特征进行缓存,以供其使用。Transformer-XL算法在一定程度上缓解了Bert算法的长文本处理问题。然而Transformer-XL算法更大的显存占用和更长的处理时间为其在实际落地上设置了一定障碍。Bert算法的预训练使用掩码预测机制,即随机对15%的词语进行打码,让算法预测这15%的词进行训练。由于打码只能使用一次(毕竟使用多次会使得算法在预测前就知悉答案),这等效于Bert算法只能利用15%的有效数据。这种预训练方式甚至被证明会对下游任务产生不利影响[7]。为改变这一情况,ELECTRA算法[6]提出使用生成对抗网络生成打码区域的词语,然后让算法预测哪一个词是被生成的假词语而去预训练算法。ELECTRA算法的打码可以进行任意多次,因此其能有效利用100%的数据进行预训练。实验结果中,ELECTRA算法使用更小的网络结构即可实现Bert在更大网络结构下才能实现的效果。
Transformer在自然语言处理任务中取得的先进成果吸引了许多视觉界的学者研究其在计算机视觉中的应用。ViT[8]是第一个将Transformer完整的应用到图像上的模型。Transformer网络需要输入固定大小的序列化向量,而图片数据与文本数据不同,图片通常是二维数据格式,所以需要通过某种方法将图像这种二维数据转化为序列化的数据。在这个基础上,ViT模型把图片分成大小相等、互不重叠的patch,然后通过patch_embedding把patch映射为固定大小的向量输入到网络中。然而,ViT由于网络结构的限制,存在对于密集检测任务不适用的问题。Swin Transformer[11]在ViT的基础上提出了几点改进,解决了ViT在下游任务不友好的问题。ViT的patch大小固定,Swin Transformer是从小patch开始计算,逐渐合并相邻小patch,并且每个patch中通过shift-window计算self-attention,这样不仅减少了许多计算量,同时会关注到图片不同位置之间的关联信息。通过充分的实验证明,Swin Transformer不仅适用于图像分类,还适用于密集预测任务,例如目标检测和语义分割。
鉴于Transformer技术在自然语言处理和计算机视觉上的巨大成功,学术界又开始将Transformer技术应用于OCR文字识别领域。首先Transformer这种可用于处理序列文本的特性被利用了起来。SRN算法[3]使用Transformer编码器结构替换掉LSTM结构以对图像序列特征进行处理。同时,SRN算法也使用Transformer编码器进行文本后处理,以从语义上纠正识别错误的词语。MASTER算法[9]同样采用Transformer编码器结构替换掉LSTM结构,在英文数据集上取得了不错的效果。为了更好地发挥OCR场景下的语言建模能力,ABINet算法[20]使用一种基于双向特征表示的双向完形填空网络(BCN)去替代SRN算法中的Transformer文本纠错模型,从而取得了更为满意的结果。BCN模型为一种非常类似于Transformer解码器的结构。随后Transformer可用于处理图像的特性也被使用起来。TrOCR算法[21]是首次将Transformer图像处理技术应用于文字识别领域的算法。TrOCR算法类似于VIT算法,将待识别的文字图像分为大小相等、互不重叠的patch后再进行识别。然而,由于patch之间没有特征联系,而一个字非常有可能跨越好几个相邻的patch而存在,因此TrOCR算法的这种做法限制了它的识别能力。之后,SVTR[22]算法改进了VIT算法各个patch无特征联系的缺点。SVTR算法采用mask的方式计算文字图像上不同滑动窗口里的图像特征。即其结果等效于按照一定步长计算窗口内各个patch之间的特征,该形式极其类似于卷积神经网络。然而,由于SVTR算法采用mask的方式实现的滑动窗口,因此它在计算某个滑动窗口的自注意力值时,也会同时计算窗口之外的自注意力值(之后这些无效的自注意力值会被mask给置为零),这会连累整体算法的推理速度。
目前Transformer技术已统治自然语言处理领域,对计算机视觉的的任务也在一项一项攻克中。我们看好Transformer技术未来的发展,因此我们在Transformer技术做了一系列落地探索。
二、Transformer技术落地探索
2.1 自然语言处理领域
好大夫在线存储有数十亿条医患交流文本数据。目前这些数据被我们分诊团队利用起来,用于训练Bert文本分类算法[4],进行AI自动分诊,最终将分诊的工作效率提高十倍以上。
与此同时,在我们存储的数十亿条医患交流中,附带数亿计的患者上传照片,这些照片中一多半包含文本。在我们使用OCR技术将这些文本提取出来后,我们使用Bert算法对其进行文本处理,以满足各种需求。
首先,报告单结构化项目要求提取出报告单照片对应文本中的“检查项”及其对应的“数值”和“范围”。这需要使用Bert算法进行命名实体识别,提取出所需的字段。如图2.1.1所示,Bert算法从OCR识别出的文本中提取出所需的“检查项名”、“项数值”、“项范围”字段。目前在测试集上,提取这些字段的f1分数为98%。
除此之外,隐私处理项目要求我们提取出报告单照片中的隐私信息区域,以便进行隐私脱敏。这同样需要用到Bert算法进行命名实体识别。Bert算法提取到隐私字段的位置后,然后使用文字位置回溯,将文字对应到图像的具体区域。目前隐私提取项目已经在点评运营等业务上得到了落地应用。
最后,我们也用Bert算法[4]对报告单照片对应的文本进行文本分类,以判断该报告单照片属于哪种类型的报告单(类别有血常规、肝功能等)。目前随机抽测2800张报告单图片,Bert算法分类准确率为95.6%。同时,我们也试验了ELECTRA算法[6]。试验该算法时,我们使用以医患交流文本数据为预训练的Electra-tiny算法,其编码器基础骨架为2层多头注意力层(Bert算法为12层)。然而,由于模型过于简单,虽然处理速度提高一倍以上,但该算法在测试集上的准确率相较Bert算法仍然下降1.3%左右。未来我们还可以使用OCR提取的大量文本进行预训练以进一步提高Electra-tiny算法的准确率。
2.2 OCR文字识别领域
Transformer技术在OCR文字识别领域的应用目前主要有1)使用Transformer替代原文字识别算法中的LSTM结构,以增强算法的序列建模能力;2)使用Transformer进行语义纠偏;3)使用Transformer直接处理图像数据。应用1和2目前在学术界比较成熟了,应用3属于最新出现的技术,其可靠性有待学术界进一步探索。
MASTER算法[9]是使用Transformer替代原文字识别算法中的LSTM结构的一个代表,但它只在英文数据集上进行了训练,其在中文数据集上的效果存有疑问。SVRT算法[22]是最新提出的使用Transformer直接处理图像数据的文字识别算法,我们在pytorch上对其进行了复现。原始的SVRT算法只能处理长度为280的图像,这明显不符合现实场景的需求。我们将SVRT算法的位置编码由主动学习的位置编码改为固定的余弦位置编码,这使得SVRT算法能处理任意长度的图像。然而经过训练发现,这样的SVRT算法只有在处理512长度的图像才效果最好(因为训练集中的图像就是512长度的),处理其他长度的图像则效果很差,这种特性使得SVRT算法在我们公司难以落地。
SRN算法[3]是由百度研究院于2020年提出的基于attention的文字识别算法。其使用Transformer替代传统的LSTM来对卷积网络得到的特征进行序列特征提取。同时,SRN算法也使用Transformer进行文本后处理,以从语义上纠正识别出的文本。SRN算法在中文和英文数据集上都进行了测试,并取得了不错的效果。然而,SRN算法在我们的700万中英文数据集上进行训练后,其在人工标记的7000多张测试集上字符准确率比公司现有的CRNN算法[10]低了近2%。经过中间结果分析,我们发现SRN算法效果较差的原因在于attention漂移。attention漂移即指用于识别某个字的attention值漂移到其他字符的位置上了。attention漂移现象极易出现在中文文字识别领域,因为中文的常用字符通常达到数千个之多,远多于英文字母的数十个。且中文文字识别的长文本现象非常多,这进一步增多了attention漂移现象的出现。与之相反,基于CTC解码的算法在中文文字识别场景下不会产生这些问题。
虽然SRN算法在中文文字识别上有一些问题,然而它的语义纠偏思想仍然值得我们重视。基于语义纠偏的文字识别算法近些年得到了学术界的广泛研究,SRN算法[3]和ABINet算法[20]为其中的代表性方法。由于实验结果发现ABINet算法的语义纠偏效果强于SRN算法。因此我们采用ABINet算法所提出的BCN语义纠偏网络作为实验模块。然而无论是SRN算法还是ABINet算法,它们的视觉对齐模块均为基于attention的结构,这限制了它们在中文OCR识别上的能力。因此我们在视觉模块仍然采用CRNN+CTC的算法结构。BCN结构主要设计用于接收基于attention的结构的解码结果。基于attention的解码结果表示如图2.2.1(b)所示。基于CTC的解码结果如图2.2.1(c)所示。可以看到基于attention的解码结果会将无效字符置于全部字符之后,而基于CTC的解码结果则会将无效字符置于字符之间。因此BCN结构与CRNN+CTC的算法的解码结果不适配,不可直接组合。
当然,我们可以通过循环处理的方式将CTC的解码结果迭代式地变为attention的解码结果的形式。但是这种做法会使得梯度反向传播发生错误,导致程序无法运行。因此我们设计了一个自适应矩阵A。矩阵A可以根据CTC解码结果自动计算参数,使得A与CTC的解码特征的矩阵乘积恰好等于attention解码结果的形式。由于梯度反向传播可以在矩阵乘法中通过,因此该操作使得BCN结构与CRNN+CTC的算法完美结合。所结合的算法被我们称为CRNN-BCN算法,其中CRNN的骨架网络使用ResNet34。CRNN-BCN算法中视觉结果和语义纠偏结果会使用门控单元进行融合,以得到最终的混合结果。CRNN-BCN算法的结构如图2.2.2所示。
CRNN-BCN算法和原始CRNN算法的对比结果如表2.2.1所示。CRNN_real_test_all数据集为我们手工标记的,从用户上传的医学报告单照片上截取的七千多张文本切片图像。在实验中,在训练集完全相同的前提下,CRNN-BCN算法在字符串准确率上明显高于原始的CRNN算法,并且我们惊喜地发现CRNN-BCN算法经过训练后,其视觉解码结果也比单独的CRNN的结果要好。目前CRNN-BCN算法已经在我们公司完成了落地应用。
table2.2.1 算法对比结果
模型 | CRNN_real_test_all数据集(7371张)字符准确率/字符串准确率(%) | 处理速度(帧/s) |
---|---|---|
CRNN | 98.12/92.61 | 66.41 |
CRNN-BCN | 98.68/95.08 | 57.6 |
CRNN-BCN(只取视觉结果) | 98.41/93.77 | 66.41 |
2.3 图像分类领域
对于上面提到的网站上患者上传的图片,其中主要包括医学影像、身体部位、报告单等类别的图片。这些都是无标签的数据,我们可以通过深度学习模型,对这些图片进行标签化处理,目前线上的各业务中已经展示了图片的标签信息,方便了医生和患者对图片的使用和管理。为了更深入的了解Transformer网络对于我们网站上图像数据的可用性,我们用这些数据分别对Swin Transformer进行图像分类实验,得出以下结论。
首先,我们分别用Swin-tiny,Swin-small,Swin-base,Swin-large这四个模型在医学影像部位数据集上做模型训练和结果测试,实验发现Swin-large模型比较大,训练耗费时间更高,但是在数据集上的表现对比Swin-base模型没有明显优势,Swin-small模型比Swin-base模型较小,但是推理速度没有体现出优势,且准确率没有Swin-base高,所以最终选择了Swin-tiny和Swin-base两个模型进行训练。
table2.3.1 各个模型预测速度
模型 | 图片大小 | 单张图片预测时间(s) |
---|---|---|
Swin-tiny | 224 | 0.0138 |
Swin-base | 224 | 0.0240 |
EfficientnetB4 | 224 | 0.0233 |
我们在图片粗分类,医学影像和身体部位三个数据集上做了实验。实验中,使用固定图片大小224*224,采用等比例缩放和多gpu训练模型,同时使用了image augmentation数据增广。下面三个表格是在不同的数据集上的实验结果,其中EfficientnetB4[19]模型作为基础对比模型,为了使模型的测试结果更有说服力,我们从两个方面对模型进行了测试,一个是模型训练时的测试集,另一个是从线上下载近期部分图片进行测试。从下面三个表格可以发现,Swin-tiny模型准确率上表现的差一点,但是推理时间大概是其他模型的二分之一,所以在主要考虑模型的推理效率时,我们可以考虑Swin-tiny模型。Swin-base模型效果好于Swin-tiny,略好于EfficientnetB4模型效果,并且在模型推理速度上也几乎相同,模型预测时的gpu占用量也没有太大差异。因此在之后的工作中,根据不同的需求场景,可以尝试用Swin Transformer模型代替EfficientnetB4模型。
table2.3.2 图像粗分类数据集上模型测试结果
模型 | 测试集准确率(%) | 线上抽测数据集准确率(%) |
---|---|---|
Swin-tiny | 99.26 | 97.65 |
Swin-base | 99.17 | 98.32 |
EfficientnetB4 | 99.26 | 98.24 |
对于医学影像数据集,分为两个任务,一个是医学影像类型的识别,另一个是医学影像部位识别。考虑到医学影像类别和部位的特征之间存在一些联系,并且多任务模型可以用一个模型完成两个模型的任务,大大提高了工作效率。所以我们尝试对Swin Transformer模型进行多任务训练,修改了Swin Transformer的模型结构,进行多任务学习的模型训练。通过实验发现Swin Transformer得出了较好的结果。
table2.3.3 医学影像数据集上模型测试结果
模型 | 医学影像类型测试集准确率(%) | 医学影像部位测试集准确率(%) | 线上抽测数据集类型准确率(%) | 线上抽测数据集部位准确率(%) |
---|---|---|---|---|
Swin-tiny | 95.79 | 92.44 | 93.14 | 85.47 |
Swin-base | 96.91 | 94.01 | 94.72 | 88.83 |
EfficientnetB4 | 96.14 | 93.10 | 93.80 | 86.73 |
table2.3.4 身体部位数据集上模型测试结果
模型 | 测试集准确率(%) | 线上抽测数据集准确率(%) |
---|---|---|
Swin-tiny | 94.07 | 91.62 |
Swin-base | 95.72 | 93.80 |
EfficientnetB4 | 93.61 | 92.68 |
综上,我们可以发现Swin Transformer在图像处理方面有较好的表现,后面我们可以根据不同的业务需求尝试使用Swin Transformer模型。
三、总结
3.1 Transformer技术的优缺点
Transformer技术经常被与卷积神经网络和循环神经网络进行比较。Transformer技术与后两者最大的区别是,它未对数据进行任何先验假设。
卷积神经网络对于图像数据有很强的先验假设,即假设图像数据具有特征局部性和平移不变性。具体而言,这两个假设的意思是,局部像素关联紧密,较远像素关联性弱,且图像的局部特征在图像中经过平移后依然不变。
循环神经网络对于序列数据同样有很强的先验假设,即序列数据具有时序不变性和局部性。具体而言,指的是序列数据中每一个元素共享一套组合规则(在文本数据中该规则指的是语法),且距离越近的两个元素关联越紧密。
与这两种网络不同的是,Transformer技术未对数据分布进行任何先验假设,所有的参数均由输入元素的成对关系学习而来。这个特点使得Transformer技术有学习所有类型数据特征的潜力,同时也导致Transformer技术容易对小规模数据过拟合,极大损害了它的泛化性。
为解决Transformer技术的过拟合问题,学者们使用大规模未标记数据对其进行预训练有效缓解了该问题。但预训练所需的高昂硬件资源限制了Transformer技术的发展。
在自然语言处理领域,RNN和Transformer的区别一目了然:前者受限于距离,不会计算出很强的长程依赖关系;后者则会无视距离计算所有词对之间的联系。在计算机视觉领域,我们同样需要比较Transformer与CNN之间的区别。2021年,谷歌大脑团队通过实验[13],给出了Vsion Transformer和CNN的对比结果。主要是把ViT模型和ResNet模型的表征抽取出来,利用CKA向量相似计算进行分析,发现ViT和ResNet的内部结构有很大的不同。得出以下几点内容:1.ViT低层便聚合了全局信息,浅层到深层的特征相似性更大,传播性更强;CNN的特征是分段相似,即低层与低层特征相似,高层与高层特征相似,CNN对局部信息关注更多。2.ViT很好的保留了空间信息,这一特点可能会使得在目标检测任务中有很好的应用。3.ViT可以通过更大的模型结构和更多的数据更好的学习更强的中间表征。总体来说,目前Transformer还没有针对图像数据做专门处理的特性,图像的信息量远远大于文本的信息量,所以在计算效率上还有很大的优化空间。工业上的图像处理都是适配的CNN架构,现在计算机视觉中还是沿用自然语言处理中的传统Transformer结构,所以Transformer应对图像数据有自己的结构特点,考虑更多的应用适配问题。上述提到的Swin Transformer模型便在此问题上进行了优化,并取得了优异的成果。
3.2 未来规划
对于自然语言处理领域,Bert算法是一个很旧的预训练方法(2019年提出)。我们期待用速度更快,理论准确率更高的ELECTRA算法去替代它。后续我们会尝试使用好大夫在线积累的大批量线上问诊数据对ELECTRA算法进行预训练。
对于OCR领域,CRNN-BCN算法的实验结果和成功落地已经强有力地证明了Transformer技术在该领域的威力。目前在学术界,学者倾向于用Transformer技术直接处理图像来进行图像上的文字识别。然而由于前面提到的一些原因(无法处理任意长度的文本图像),该项技术的学术成果距离落地还有一段距离。我们会一直关注相关学术界的变化,随时准备好进行算法的落地探索。
对于计算机视觉领域,迄今为止,CNN是计算机视觉中最主要的深度神经网络架构,并且取得了卓越的成果,我们之前的图像方向的工作内容也是一直集中在CNN方向上,例如正在使用的EfficientNetB4模型。现在,Transformer在视觉领域中,除了图像分类方面,在图像生成、分割、目标检测也都取得了不错的成果,如DERT[14]、CT[15]、ColTran[16]、ST-TR[17]等等。在目标检测中,相同的任务我们分别用Swin Transformer模型和经典的检测模型来进行实验对比,Swin Transformer模型也表现突出。Swin Transformer也推出了V2[12]版本,在V1的基础上解决了模型内存消耗较大,对于高分辨率图片训练困难的问题,和模型不稳定的问题。接下来。基于好大夫的图像数据库,我们会在视觉Transformer方向上探索和尝试更多的方法,为用户带来更多的便利和使用体验提升。
参考文献
[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszko- reit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in Neural Information Processing Systems, pages 5998-6008, 2017.
[2] Fukui A , Park D H , Yang D , et al. Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding[J]. 2016.
[3] Yu D , Li X , Zhang C , et al. Towards Accurate Scene Text Recognition With Semantic Reasoning Networks[J]. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020.
[4] Devlin J , Chang M W , Lee K , et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.
[5] Dai Z , Yang Z , Yang Y , et al. Transformer-XL: Attentive Language Models beyond a Fixed-Length Context[J]. 2019.
[6] Clark K , Luong M T , Le Q V , et al. ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators[J]. 2020.
[7] Lin T , Wang Y , Liu X , et al. A Survey of Transformers[J]. 2021.
[8] Dosovitskiy A , Beyer L , Kolesnikov A , et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale[J]. 2020.
[9] Lu N , Yu W , Qi X , et al. MASTER: Multi-Aspect Non-local Network for Scene Text Recognition[J]. 2019.
[10] Shi B , Bai X , Yao C . An End-to-End Trainable Neural Network for Image-Based Sequence Recognition and Its Application to Scene Text Recognition[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2016, 39(11):2298-2304.
[11] Liu Z , Lin Y , Cao Y , et al. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows[J]. 2021.
[12] Liu Z , Han H , Yutong L , et al. Swin Transformer V2: Scaling Up Capacity and Resolution[J]. 2021.
[13] Raghu M , Unterthiner T, Kornblith S , et al. Do Vision Transformers See Like Convolutional Neural Networks?[M]. 2021.
[14] Carion N , Massa F , Synnaeve G , et al. End-to-End Object Detection with Transformers[M]. 2020.
[15] Doersch C, Gupta A, Zisserman A. CrossTransformers: spatially-aware few-shot transfer[J].2020.
[16] Kumar M , Weissenborn D , Kalchbrenner N. Colorization Transformer[J]. 2021.
[17] Plizzari C , Cannici M , Matteucci M , Spatial tempo- ral transformer network for skeleton-based action recognition[J]. arXiv , 2020.
[18] Redmon J , Farhadi A . YOLOv3: An Incremental Improvement[J]. arXiv e-prints, 2018.
[19] Tan M , Le Q V . EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks[J]. 2019.
[20] Fang S , Xie H , Wang Y , et al. Read Like Humans: Autonomous, Bidirectional and Iterative Language Modeling for Scene Text Recognition[J]. 2021.
[21] Li M , Lv T , Cui L , et al. TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models[J]. arXiv e-prints, 2021.
[22] Du Y , Chen Z , Jia C , et al. SVTR: Scene Text Recognition with a Single Visual Model[J]. 2022.
【作者简介】
张健琦:好大夫在线机器学习工程师,专注于AI图像处理与AI自然语言处理方面的技术。主导和负责好大夫在线OCR算法相关工作。
丛榕:好大夫在线机器学习工程师,专注于AI图像处理方面的技术。目前主要负责好大夫在线AI服务架构和图像识别相关工作。