当前位置:网站首页>文本识别-SVTR论文解读
文本识别-SVTR论文解读
2022-06-30 20:40:00 【‘Atlas’】
文章目录
论文: 《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效果佳。
边栏推荐
- 北京大学ACM Problems 1001:Exponentiation
- MySQL introduction, detailed installation steps and usage | dark horse programmer
- 转:用实际行动赢得别人追随
- Amazon restricts LGBTQ related search and product sales in the United Arab Emirates
- 翻转链表II[翻转链表3种方式+dummyHead/头插法/尾插法]
- 开发技术-使用easyexcel导入文件(简单示例)
- What bank card do you need to open an account online? In addition, is it safe to open an account online now?
- Go learning notes
- 哈夫曼樹(一)基本概念與C語言實現
- 判断js对象是否为空的方式
猜你喜欢

Lumiprobe cell biology - dia, instructions for lipophilic tracer

obsidian配合hugo的使用,让markdown本地编辑软件与在线化无缝衔接

Is the project manager a leader? Can you criticize and blame members?

偏向锁/轻量锁/重级锁锁锁更健康,上锁解锁到底是怎么完成实现的

Label Contrastive Coding based Graph Neural Network for Graph Classification

Qiao NPMS: search for NPM packages

基于开源流批一体数据同步引擎ChunJun数据还原—DDL解析模块的实战分享

Lumiprobe copper free click chemical solution

uniapp-路由uni-simple-router

Lumiprobe无铜点击化学解决方案
随机推荐
What are database OLAP and OLTP? Same and different? Applicable scenarios
stacking集成模型预测回归问题
Game 81 biweekly
判断js对象是否为空的方式
软工UML画图
Analysis of breakpoint continuation and download principle
Peking University ACM problems 1002:487-3279
[original] unable to use the code dialog height and width to solve the screen problem
Go学习笔记
阿里kube-eventer mysql sink简单使用记录
1.微信小程序页面跳转方法总结;2. navigateTo堆栈到十层不跳转问题
Peking University ACM problems 1003:hangover
Lumiprobe生物素亚磷酰胺(羟脯氨酸)说明书
Summary of PHP file upload (garbled code, move failure, permission, display picture)
Qiao NPMS: search for NPM packages
Label Contrastive Coding based Graph Neural Network for Graph Classification
Lumiprobe染料酰肼丨BDP FL 酰肼方案
uniapp-路由uni-simple-router
左值引用和右值引用
qiao-npms:搜索npm包