【论文笔记】端到端文本检测与识别——FOTS

FOTS是一种快速的端到端文本检测与识别模型,它将文本检测和识别整合在一个统一的网络中,显著提高了处理效率和准确性。通过引入RoIRotate操作,FOTS能够处理任意方向的文本,同时共享卷积特征,减少计算开销。在多个数据集上的实验表明,FOTS在保持高速的同时,检测和识别精度超越了现有的两阶段方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的深度学习OCR过程中,会把文本检测与文本识别拆分成两个部分,通过先检测后识别的方法对图片中的文本进行OCR识别。在商汤的paper中,一种新的端到端快速检测识别模型给了我们一个很大的惊喜。

 

【论文题目】FOTS: Fast Oriented Text Spotting with a Unified Network

【摘要】偶然的场景文本定位被认为是文档分析社区中最困难和最有价值的挑战之一。大多数现有方法将文本检测和识别视为单独的任务。在这项工作中,我们提出了一个统一的端到端可训练的快速定向文本定位(FOTS)网络,用于在两个互补任务之间同时检测和识别,共享计算和视觉信息。特别地,引入RoIRotate以在检测和识别之间共享卷积特征。受益于卷积分析策略,与基线文本检测网络相比,我们的FOTS具有很少的计算开销,并且联合训练方法学习更多通用特征以使我们的方法比这两个阶段方法表现更好。 ICDAR 2015,ICDAR 2017 MLT和ICDAR 2013数据集上的实验证明,所提出的方法显着优于最先进的方法,这进一步使我们能够开发出第一个面向实时的文本定位系统在保持22.6 fps的同时,ICDAR 2015文本定位任务超过了所有先前的最新成果超过5%。

【亮点】端到端快速文本检测识别、提出了RoIRotate

 

FOTS是一个快速的端到端的集成检测+识别的框架,和其他two-stage的方法相比,FOTS具有更快的速度。FOTS通过共享训练特征,互补监督,从而压缩了特征提取所占用的时间。

上图,蓝色框为FOTS,红色框为其他two-stage方法,可以看出FOTS消耗的时间是two-stage时间的一半。

 

1  模型整体结构

FOTS的整体结构由四部分组成。分别是:卷积共享特征(shared convolutions),文本检测分支(the text detection branch), RoIRotate操作(RoIRotate operation),文本识别分支(the text recognition branch)。

 

2  四部分结构及实现细节

2.1  卷积共享(shared convolutions)

共享网络的主干是 ResNet-50。 受FPN的启发,我们连接了低级特征映射和高级语义特征映射。 共享卷积产生的特征图的分辨率是输入图像的1/4。

FOTS的基础网络结构为ResNet-50,共享卷积层采用了类似U-net的卷积的共享方法,将底层和高层的特征进行了融合。这部分和EAST中的特征共享方式一样。最终输出的特征图大小为原图的1/4。

2.2  文本检测分支(the text detection branch)

受EAST与DDRN的启发,我们采用完全卷积网络作为文本检测器。 由于自然场景图像中有许多小文本框,我们将共享卷积中原始输入图像的1/32到1/4大小的特征映射放大。 在提取共享特征之后,应用一个转换来输出密集的每像素的单词预测。 第一个通道计算每个像素为正样本的概率。 与EAST类似,原始文本区域的缩小版本中的像素被认为是正的。 对于每个正样本,以下4个通道预测其到包含此像素的边界框的顶部,底部,左侧,右侧的距离,最后一个通道预测相关边界框的方向。 通过对这些正样本应用阈值和NMS产生最终检测结果。

这一部分与EAST相同。损失函数包括了分类的loss(Cross Entropy Loss)和坐标的回归的loss(IOU Loss)。实验中的平衡因子,λreg =1。

2.3  RoIRotate操作(RoIRotate operation)

这一部分的主要功能,将有角度的文本块,经过仿射变换,转化为正常的轴对齐的文本块。

在这项工作中,我们修正输出高度并保持纵横比不变以处理文本长度的变化。对比RRoI,其通过最大池化将旋转的区域转换为固定大小的区域,而本文使用双线性插值来计算输出的值。避免了RoI与提取特征不对准,使得输出特征的长度可变,更加适用于文本识别。这个过程分为两个步骤:①通过文本提议的预测或ground truth坐标计算仿射变换参数。②将仿射变换分别应用于每个区域的共享特征映射,并获得文本区域的正常情况下水平的特征映射。

第①步中的计算:

M:仿射变换矩阵,包含旋转,缩放,平移

Ht:仿射变换后的特征图的高度,实验中为8

wt:仿射变换后的特征图的宽度

(x,y):特征图中的点的位置

(t; b; l; r) :特征图中的点距离旋转的框的上下左右的距离

θ:检测框的角度

第②步中的计算:

Vcij:在位置(i,j),通道c处的输出值。

Ucnm:在位置(i,j),通道c处的输入值。

hs:输入的高度

ws:输入的宽度

Φx, Φy :双线性插值的核的参数

2.4  文本识别分支(the text recognition branch)

文本识别分支旨在使用由共享卷积提取并由RoIRotate转换的区域特征来预测文本标签。 考虑到文本区域中标签序列的长度,LSTM的输入特征沿着宽度轴通过原始图像的共享卷积仅减少两次。 否则,将消除紧凑文本区域中的可辨别特征,尤其是窄形字符的特征。 我们的文本识别分支包括类似VGG的顺序卷积,仅沿高度轴减少的汇集,一个双向LSTM,一个完全连接和最终的CTC解码器。

这一部分主要是与CRNN类似,结构如下图所示。

FOTS最终的损失函数是检测+识别的loss,λrecog=1。

2.5  实现细节

我们使用ImageNet数据集训练的模型作为我们预先训练的模型。 训练过程包括两个步骤:首先我们使用Synth800k数据集训练网络10个epoch,然后采用实际数据对模型进行微调直到收敛。 不同的任务采用不同的训练数据集。 ICDAR 2015和ICDAR 2017 MLT数据集中的一些模糊文本区域被标记为“DO NOT CARE”,我们在训练中忽略它们。
数据增强对于深度神经网络的鲁棒性很重要,特别是当真实数据的数量有限时。 首先,图像的较长边从640像素调整为2560像素。 接下来,图像随机旋转[-10°,10°]范围。 然后,图像的高度以0.8到1.2的比例重新缩放,同时它们的宽度保持不变。 最后,从变换的图像中裁剪640×640个随机样本。

 

3  实验效果

3.1  ICDAR2015结果

3.2  ICDAR2017 MLT结果

3.3  ICDAR2013结果

3.4  速度和模型大小

 

4  总结

FOTS一个检测+识别一体化的框架,具有模型小,速度快,精度高,支持多角度等特点。大大减少了这四种类型的错误(Miss:遗漏了一些文本区域;False:将一些非文本区域错误地视为文本区域;Split:错误地将整个文本区域拆分为多个单独的部分;Merge :错误地将几个独立的文本区域合并在一起)。

 

参考文献

[1]论文原文:https://arxiv.org/pdf/1801.01671.pdf

[2]文字检测+识别之FOTS:https://blog.youkuaiyun.com/qq_14845119/article/details/84635847

[3]PyTorch实现:https://github.com/jiangxiluning/FOTS.PyTorch

<think>嗯,用户让我介绍一下基于深度学习的自然场景文字检测识别。首先,我需要理解这个主题的基本概念和应用场景。自然场景中的文字检测识别,也就是通常所说的场景文本检测识别(Scene Text Detection and Recognition),是计算机视觉领域的一个重要研究方向。它的主要目标是从自然场景的图像中定位并识别出文字内容,比如街景中的招牌、商品包装上的文字等等。 接下来,我需要考虑用户可能的背景。他们可能是学生、研究人员,或者是对技术感兴趣的非专业人士。如果是学生或研究人员,可能需要更详细的技术细节;如果是普通用户,可能需要更通俗的解释。但用户提到要使用中文回答,并且要求结构清晰,帮助逐步解决问题,所以需要平衡专业性和易懂性。 然后,我应该分解这个问题。自然场景文字检测识别通常分为两个主要步骤:检测(Detection)和识别(Recognition)。检测部分负责在图像中找到文字的位置,识别部分则负责将检测到的文字区域转换为可读的字符。近年来,深度学习在这两个步骤中都取得了显著的进展。 在检测方面,传统方法可能依赖于手工设计的特征,比如SWT(Stroke Width Transform)或MSER(Maximally Stable Extremal Regions),但这些方法在复杂场景中效果有限。深度学习的方法,如Faster R-CNN、YOLO、SSD等目标检测框架被改进用于文字检测。此外,还有一些专门针对文字设计的网络结构,比如TextBoxes、CTPN(Connectionist Text Proposal Network)和EAST(Efficient and Accurate Scene Text Detector)。这些方法通常处理文字的独特特性,比如长宽比大、方向多变等。 然后是识别部分。传统的OCR(Optical Character Recognition)技术可能在规整的文本上表现良好,但在自然场景中,由于光照、角度、字体、背景复杂等因素,效果会大打折扣。深度学习方法,如CRNN(Convolutional Recurrent Neural Network),结合了CNN和RNN,能够处理变长的文本序列。此外,注意力机制(Attention Mechanism)和Transformer结构也被引入,比如使用Transformer-based模型进行端到端文本识别。 还有一个趋势是端到端检测识别系统,即同时完成检测识别,比如FOTS(Fast Oriented Text Spotting with a Unified Network)。这种方法通过共享特征提取网络,提高整体效率。 不过,用户可能想知道当前面临的挑战。比如,复杂背景下的文字检测、弯曲文本的处理、多语言混合、低分辨率或模糊图像等。此外,实际应用中的实时性要求也是一个挑战,尤其是在移动设备上部署时需要考虑模型的大小和推理速度。 另外,可能还需要提到一些常用的数据集,如ICDAR、COCO-Text、SVT等,这些数据集用于训练和评估模型的性能。评价指标方面,检测常用IoU(Intersection over Union)和F-measure,识别则使用字符准确率(Character Accuracy)和词准确率(Word Accuracy)。 最后,应用场景方面,可以举例说明,比如自动驾驶中的路牌识别、智能客服中的图像转文字、文档数字化、辅助视障人士等。这些实际应用展示了技术的价值。 总结来说,我需要按照检测识别端到端系统、挑战、数据集评估、应用场景的结构来组织内容,确保每个部分都简明扼要,同时使用例子帮助理解。还要注意使用正确的LaTeX格式,比如数学公式需要用$$包围,但根据用户要求,行内公式用$,独立公式用$$并单独成段。同时避免使用Markdown,保持口语化但专业的中文表达。</think>基于深度学习的自然场景文字检测识别(Scene Text Detection and Recognition)是计算机视觉领域的核心任务之一,旨在从复杂背景的图像中定位并识别文字信息。以下从技术框架、核心方法和应用场景进行分步说明: --- ### 一、技术框架 任务通常分为两步: 1. **文字检测(Text Detection)** 定位图像中所有文字区域,输出边界框(水平/旋转/弯曲框)。 常用输出格式:$B = \\{(x_1,y_1), (x_2,y_2), ..., (x_n,y_n)\\}$,表示多边形顶点坐标。 2. **文字识别(Text Recognition)** 将检测到的文字区域转换为字符序列,例如从图像片段“Hello”输出字符串“Hello”。 --- ### 二、核心方法 #### (1)文字检测 - **基于通用目标检测的改进** 早期采用Faster R-CNN、SSD等框架,但文字具有长宽比大、密集排列等特点,需针对性改进。 例如:**TextBoxes++** 通过调整锚框(Anchor)比例适应文字形状。 - **文本专用检测网络** - **CTPN(2016)**:将文本视为字符序列,通过RNN连接候选框,擅长处理水平文本。 - **EAST(2017)**:直接回归文本区域几何特征(如旋转矩形),实现端到端高效检测。 - **PSENet(2019)**:通过渐进式尺度扩展处理弯曲文本,输出任意形状的文本区域。 #### (2)文字识别 - **CRNN(2015)** 经典框架:CNN(特征提取) + BiLSTM(序列建模) + CTC(对齐输出),支持变长文本识别。 数学表达: $$ P(y|x) = \sum_{\pi \in \mathcal{B}^{-1}(y)} P(\pi|x) $$ 其中$\mathcal{B}$表示CTC的路径映射函数。 - **注意力机制Transformer** 如**ASTER**(2018)引入注意力机制对齐字符位置,**TrOCR**(2021)基于Transformer实现端到端识别,显著提升复杂场景的鲁棒性。 #### (3)端到端系统 - **FOTS(2018)** 共享主干网络,检测识别联合训练,减少计算冗余。公式化表示为: $$ \mathcal{L}_{total} = \lambda \mathcal{L}_{det} + (1-\lambda) \mathcal{L}_{rec} $$ --- ### 三、挑战解决方案 | 挑战 | 解决方案示例 | |--------------------|-----------------------------------| | 弯曲文本 | 使用可变形卷积(DCN)或参数化曲线建模 | | 多语言混合 | 扩充多语言训练数据,设计统一字符集 | | 低分辨率/模糊 | 超分辨率网络预处理(如ESRGAN) | | 实时性要求 | 轻量化设计(MobileNet主干 + 模型蒸馏)| --- ### 四、典型数据集评估指标 - **数据集** ICDAR2015(自然场景)、Total-Text(弯曲文本)、MLT(多语言)。 - **评估指标** - 检测:F-measure(综合精确率召回率) - 识别:词准确率(Word Accuracy) - 端到端:NE(Normalized Edit Distance) --- ### 五、应用场景 1. **自动驾驶**:实时识别交通标志路牌。 2. **零售行业**:商品价格标签自动识别。 3. **无障碍服务**:为视障用户朗读图像中的文字。 4. **文档数字化**:将拍摄的文档转换为可编辑文本。 --- ### 代码示例(PyTorch伪代码) ```python # 检测示例(EAST) detector = EAST(backbone='ResNet50') boxes = detector.predict(image) # 识别示例(CRNN) recognizer = CRNN(vocab='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') text = recognizer.read_text(cropped_image) ``` 当前前沿方向包括**少样本学习**(Few-shot Text Recognition)和**视频文本理解**(Video Text Tracking)。研究论文可参考CVPR、ICCV等顶会的最新成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值