文本识别-SVTR论文解读


论文: 《SVTR: Scene Text Recognition with a Single Visual Model》
github: https://github.com/PaddlePaddle/PaddleOCR

解决问题

常规的文本识别模型包括两部分:用于特征提取的视觉模型及文本转录的序列模型;
问题:
这种模型虽然准确率高,但是复杂且低效;
解决:
作者提出SVTR,仅有视觉模型,免去序列模型;
1、解耦图像文本patch;
2、层级阶段通过mixing、merging、combining循环执行;全局和局部mixing模块用于感知字符内和字符间形态;
SVTR-L在英文及中文识别上速度快的同时accuracy高;

算法

SVTR整体结构如图2所示,
在这里插入图片描述
流程如下:
1、输入文本图像 H × W × 3 H \times W \times 3 H×W×3,经过patch embedding模块,转换为 H 4 × W 4 \frac H4 \times \frac W4 4H×4W个维度为 D 0 D_0 D0的patch;
2、三个stage用于提取特征,每个stage有一系列mixingblock及merging 或combing构成;
局部和全局mixing block用于提取笔画局部特征及元素间依赖关系;
使用此backnobe,可表征不同距离不同尺度的字符元素特征及依赖关系,此特征尺寸为 1 × W 4 × D 3 1 \times \frac W4 \times D_3 1×4W×D3,用符号C表示;
3、最后经过FC层得到字符序列;

progressive overlap patch embedding

作者没有使用vit中kernel=4, stride=4卷积;而是使用两个kernel=3,stride=2卷积,如图3;虽然增加一些计算量,但是有利于特征融合;消融实验见3.3
在这里插入图片描述

mixing block

mixing block如图4所示,
局部特征:编码字符形态特征以及字符不同部分之间相关关系;
全局特征:表征不同字符之间、有文本或无文本的patch之间相关关系;
在这里插入图片描述

Merging

为降低计算量以及去除多余表征,提出Merging;通过kernel=3,stride=(2,1),conv将高度下采样2倍;因为大多文本是水平的;同时增加channel维度补偿信息损失;

Combining & Prediction

Combining
首先池化高度维度为1,接着为全连接层、非线性激活层和dropout层;

Prediction
线性分类器有N个节点,生成 W 4 \frac W4 4W的序列,理想情况下同一字符的patch会转录为重复字符,无文本patch会转录为空格;英文中N设置为37,中文中N设置为6625;
英文模型最大预测长度为25,中文模型最大预测长度为40.

结构变体

SVTR中有几个超参,每个stage中channel深度,head数量,mixing blockj数量及local mixing、global mixing数量,因此有SVTR- T (Tiny), SVTR-S (Small), SVTR-B (Base) and SVTR-L (Large),如表1。
在这里插入图片描述

实验

IC13:ICDAR 2013数据集,规则文本。
IC15:ICDAR 2015数据集,不规则文本。

patch embedding消融实验

如表2左侧,渐进embedding机制超越极限0.75%,2.8%,在不规则文本识别效果明显;
在这里插入图片描述

Merging消融实验

如表2右侧,渐进降分辨率网络相对保持固定分辨率网络不仅计算量提升,而且性能提升

置换融合模块消融实验

如表3,
1、每种策略都有一定程度提升,归因于全面字符特征感知;
2、L6G6方式最佳,IC13性能提升1.9%,IC15性能提升6.6%。
3、切换他们的组合坑你导致全局mixing block不起作用,其可能重复关注局部特征;
在这里插入图片描述

SOTA比较

图5为各个模型accuracy与参数量、速度关系;
在这里插入图片描述
表4为各种方法性能比较,
在这里插入图片描述
SVTR综合耗时及accuracy具有不错性能;

结论

本文提出的图像文本识别视觉模型SVTR,提出多细粒度字符特征表征局部笔画及多尺度下字符间依赖关系;因此SVTR效果佳。

猜你喜欢

转载自blog.csdn.net/qq_41994006/article/details/125457363