简介
scene text spotting旨在更好地检测和识别文本内容。但是在需要检测的文本之间存在巨大的空格,或者一张图片中,文字的排列顺序既可以是水平也可以是垂直排列的时候,就会出现检测不准确的情况。错误地将一个文本区域分为两个,或者是错误地标注了文本排列顺序。这是因为这些检测的方法都仅仅使用了视觉信息,而语言信息只是单单用来做后处理(比如说字典)。作者希望通过添加语言信息,并将语言信息结合到网络的训练过程中,来辅助视觉信息,最终解决这些错误的问题。
模块
这个网络分为三个模块,检测识别和重排序模块。首先是提取特征的部分,作者在这使用的是resnet50+fpn的网络结构,之后通过rpn网络来产生文本区域(文本行,文本列)和字符区域。(rpn,region proposal network,将之前提取到的特征分两支转换,一支用来预测anchor是否为正样例,一支用来预测每个anchor的,另外一支用来预测x,y的偏移量和w,h的尺度因子)。TDM和CRM分别预测出bounding box和文字内容。最后通过语言模型打分,结合视觉的分数,将低分数(不正确的文本区域)排除。
TDM的目标是为了以高召回率来检测出所有的候选框。由于这个目标,因此这个文本检测器需要能够通过分类的分数和nms的分数来控制以保证高召回。因此这部分参照的是mask-rcnn。经过roi align的特征来预测和bounding box的偏移量,之后另一分支用来预测mask。最后用一个宽松的分数和nms限制来获得候选框。
CRM的模块则包含了一个检测头和一个匹配算法。通过检测头获得字符框和字符的类别。检测头和TDM的差别在于特征图翻倍,使用的卷积层翻倍。在字符检测和分类完之后,就需要匹配。如果字符框和文本框的重合面积除以字符框的面积大于一个阈值,那么就把这个字符归到这个文本框中。最后就获得了不同文本框和其对应的文本内容。
LM就是用来判断这个单词是否符合要求,符合自然语言的分布。将单词中的每个字符输入到bert当中,最后获得这个单词的向量。之后过bigru,average pooling,全连接,最后获得分数。
loss
训练这个网络有两个部分,第一部分是关于视觉信息的部分,第二部分是关于LM的部分。前面是三个部分的相加。lm的loss就是一个cross entropy。
数据集
训练这个网络需要字符级别的标注。并且需要有多方向的文本框。因此作者选择了ICDAR2019 ReCTS(reading challenge on reading chinese text on signboard)。作者从训练集中选了1000张有多文本方向作为多文本方向的验证集。命名为TDA。
1-NED
归一化的编辑距离
编辑距离指的是针对二个字符串(例如英文字)的差异程度的量化量测,量测方式是看至少需要多少次的处理才能将一个字符串变成另一个字符串。其中D代表的是编辑距离,max代表取两个字符的最长值。
参考
编辑距离
icdar2019Rects &1-NED
faster-cnn rpn
mask-rcnn
AE-textspotter