博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OCR之端到端任意形状的场景文字识别 ICCV2019 End-to-End Text Spotting
阅读量:3664 次
发布时间:2019-05-21

本文共 2969 字,大约阅读时间需要 9 分钟。

OCR之端到端任意形状的场景文字识别 ICCV2019 End-to-End Text Spotting

端到端文本识别(End-to-End Text

Spotting)是将文本阅读问题看成一个整体来解决,其基本思想是设计一个同时具有检测单元和识别单元的模型,共享其中两者的CNN特征,并联合训练。在推断阶段,此端到端模型可以在一个前向传播中预测场景图像中的文本位置和内容信息。
这篇文章是谷歌发表在2019ICCV上的一篇文章,主要解决了自然场景下任意形状的文字识别问题,而且是一种端到端的方法。

一.原理简介

首先整体框架图如下图所示。

在这里插入图片描述
总体上,模型由3个单元和RoI Masking组成,3个单元分别是Backbone(CNN特征提取单元),Detector(检测单元),Recognizer(识别单元),其中RoI Masking是本文提出的Detector与Recognizer的一种交互模式。
1.在backbone模块中引入Atrous Convolutions使其有效的Output Stride为8,作用是提供Dense Feature的同时可以维持较大的Receptive Field,便于捕获自然场景中尺寸上有巨大变化的文本信息。这个Backbone产生的特征会共享给Detector和Recognizer作为其输入。
2.在检测单元这一部分中,作者采用了mask rcnn,作为了检测器,和mask rcnn不同的主要有两点:(1)在第二阶段的cls head是有无文本二分类,(2)与cls head相应,mask prediction head输出通道数是2,分别是background还是text分割的binary。
3.关于Recognizer,由于前述的RoI Masking并没有对特征进行矫正,故CTC-based方法并不适用,据此,作者借鉴了Bahdanau-style的Attention思路来识别文本,如Fig2所示。Recognizer的主要思想是由一个LSTM-Decoder来依次预测各个字符,直到预测类别为End-of-Sequence(EOS)才停止。上述的Context Vector就是Attention机制的输出表征,其实质是Flattened Image Feature h的加权和
4.关于多尺度特征融合和RoI Masking,作者指出Stride 8的特征对于Text Detection是足够的,但对于Text Recognition这个较细粒度的任务则需要更密集的特征,因此,作者引入了多尺度特征融合的方法来加强输入到Recognizer的特征。具体来说,作者将Backbone中的Stride 8和Stride 4的特征按照Feature Pyramid Network[5]的思路进行了两个尺度的融合,可参考Fig1红色虚线框的前半部。另外,本文指出目前End-to-End识别方法存在的一个问题是Detector和Recognizer的交互模式,例如[6]和[8]中是分别使用了RoI Transforms和RoI Rotate去对Rotated Rectangles或Quadrilaterals的文本实例特征进行矫正,这样的交互模式对于直线文本情况是适用的,但往往会失效于曲线文本。因此,作者提出了新的交互模式RoI Masking,具体流程是先由Detector产生的Axis-aligned Bounding Box用来截取特征,然后将这些Cropped Out Feature和Instance Segmentation Mask(Inference阶段由Mask Branch预测得)相乘,最后经过Resize后再送到Attention Decoder中。此举目的是过滤相邻文本和背景信息,并免去对文本特征的矫正操作。本文指出RoI Masking可显著提高Recognizer的性能。

关于联合训练和损失函数,作者还观察到了目前End-to-End方法存在的另一个问题,也就是Recognizer在训练过程中往往需要远比Detector更多的数据和迭代次数,因此会出现的情况是,现有公开数据集想用来联合训练并得到一个高性能的Attention Decoder是显得不够大的,进一步说,即使通过训练足够长的时间来使Recognizer收敛,但Detector会存在过拟合的高风险。因此,作者通过增加一个部分标注的数据集(通过一个OCR引擎[2]来自动标注)来解决这问题,具体来说,训练过程中当样本是Fully Labeled时,Detector和Recognizer的权值都会更新,当样本是Partially Labeled时,则只有Recognizer被更新.

二.总结

本文模型中的Detector在MaskR-CNN]的基础上把其中的Classification Head从多分类改为Text/non-text的二分类,Mask Prediction Branch的输出也相应地调整2通道,分别为Text Mask和Non-text Mask,Masks经过Polygon的拟合得到最终的检测结果。也即,作者将mask rcnn修改为了一个简单、有效的纯检测器。然后,基于Detector产生的RoIs和Masks,作者提出了RoI Masking方法来为Recognizer提供准确的文本特征信息。而Recognizer则是基于Bahdanau-style[1]的Attention思路去构建的一个LSTM-Decoder,能依次选择相关的字符特征进行解码,直到预测的字符类别为EOS。

值得学习的一点是,本文模型是目前为止第一个可以在端到端训练策略中从部分标注的样本(借助现有OCR Engine)中收获性能增益的方法。
RoI Masking是本文方法的一个亮点。
关于和Mask TextSpotter的比较,本文和Mask TextSpotter相似的地方是两者模型都和Mask R-CNN关系很大,但不同的地方也很明显。可以概括为,Mask TextSpotter比较完整地继承了Mask R-CNN的思想,它将Mask Prediction Head用于字符分割,Global Word分割和Background分割,值得注意的是,既然Mask Head用于字符分割,即Mask Prediction Head也完成了Recognizer的功能,因为每个Character Mask的通道索引就代表着字符类别;而明显不同的是,本文模型只将Mask R-CNN修改为一个单纯的文本检测器(Detector),其Mask Prediction Head只负责分割出文本和非文本区域,而Recognizer则由独立于Mask R-CNN的Attention-decoder来担任,Detector输出的RoIs和Masks则用于为Recognizer提供准确的Text Instance Feature。另外,两个模型的Mask R-CNN模块中的Classification Head和Regression Head是一致的设计。

转载地址:http://tvnfn.baihongyu.com/

你可能感兴趣的文章
Linux-ssh服务及服务管理、文件传输
查看>>
Linux-网络配置
查看>>
开发中浏览器兼容的问题总结
查看>>
Vue初体验
查看>>
Vue学习之二(vue指令)
查看>>
人力资源项目-角色模块
查看>>
Matrixport首席执行官葛越晟:区块链市场具有充足的流动性及高溢价
查看>>
量子链创始人帅初:平台和应用需要具备区块链特征,但不一定需要去中心化...
查看>>
印度加密交易所解禁:交易量暴增6倍,全球Buy in了吗?
查看>>
明年3月实施!韩国通过特别金融法案,加密货币完全合法化
查看>>
7种启动Spring Boot项目的方式,一次性打包说给你听
查看>>
Js动态生成Div、带属性。append()和appendChild()
查看>>
整合trtc遇到的坑:<ERROR> navigator.mediaDevices is undefined
查看>>
前端实现视频在线预览插件之video.js上手
查看>>
【Unity】删除所有子物体保留父物体的2种方式
查看>>
基本组件操作
查看>>
Time模块
查看>>
InputModule
查看>>
Unity3D Waypoint (路点)
查看>>
同步延时问题解决方案
查看>>