【论文阅读】Fused Text Segmentation Network for Multi-oriented Scene Text Detection

针对多朝向场景文本检测的fused text segmentation networks

摘要

本文我们介绍了一种新的端对端框架,基于instance-aware视角的分割来解决多朝向场景文本检测。我们提出fused text segmentation 网络,该网络在特征提取阶段结合了多层次特征,因为文本instance与通用目标检测相比依赖于更细的特征表达。该网络将检测和分割文本instance联合一起做,利用基于语义分割和region proposal的目标检测任务两者的优点。不包含任何其他的流程,我们的方法成为多朝向场景文本检测(ICDAR2015随机场景文本和MSRA-TD500)的最佳,hmean值分别达到84.1%和82%。这说明了该方法的有效性。

introduction

最近,场景文本检测吸引了很多计算机视觉和机器学习社区的关注。受许多基于内容的图像应用的驱动,比如photo translation 和 receipt content recognition,文本检测已经成为学术界和工业界热门且具有挑战性的研究领域。在自然图像中检测文本是很难的,因为文本和背景在野外都是很复杂的,而且常常会受遮挡和不可控的光照条件所干扰。
之前的文本检测方法[4][6][1][39][15]已经达到较好的结果。文本检测中本质的问题是用区分度高的特征来表示文本区域。传统上,手动设计的特征捕捉文本区域的性质,如纹理和形状。但是在过去几年里,基于深度学习的方法[14][16][15][7][44][22]直接从训练数据中学习hierarchical 特征,在不同的benchmark上如ICDAR系列比赛中获得了更准确更有效的结果。
已有的方法[16][14][15][22]在水平或接近水平的文本检测问题上取得了相当好的效果。然而水平文本检测受轴平行矩形框真值的限制,多朝向文本并不局限于特定的旋转方向并且通常用四边形作标注。因为这种不受限的情况,和水平场景文本检测榜相比,ICDAR15第四个比赛(随机场景文本定位)取得相对较低的准确率。
最近,有一些方法提出来解决多朝向文本检测。总体上来看,可分为四种不同的方法。

  • Region based:
### 基于多尺度特征融合的桥梁表面图像缺陷分割方法 为了实现高精度的桥梁表面图像缺陷分割,可以采用基于卷积神经网络(CNN)的方法来提取多尺度特征并进行融合。这种方法的核心在于通过不同层次的特征图捕获局部细节和全局上下文信息,从而提高模型对复杂背景和微小缺陷区域的识别能力。 #### 多尺度特征融合的作用 多尺度特征融合能够有效解决单一尺度特征无法全面描述目标对象的问题。具体来说,在深层网络中,浅层特征通常包含更多的纹理和边缘信息,而深层特征则更注重语义理解[^1]。因此,将两者结合起来可以在保持空间分辨率的同时增强对物体边界的刻画能力。 #### 实现过程中的关键技术点 以下是几个重要的技术环节: - **编码器解码器结构** 使用U-Net架构作为基础框架,其中编码部分负责逐级下采样获取抽象化特征;解码阶段则是逐步上采样的过程,恢复原始输入尺寸,并在此过程中引入跳跃连接以保留更多细粒度的空间位置关系[^2]。 - **注意力机制的应用** 引入通道注意模块(Channel Attention Module,CAM)或者空间注意模块(Spatial Attention Module,SAM),使得网络更加关注那些对于当前任务至关重要的区域或通道响应强度较大的地方[^3]。 - **损失函数设计** 结合交叉熵损失(Cross Entropy Loss)与Dice系数等指标共同指导训练方向,确保像素级别分类准确性以及连通域完整性得到兼顾。 ```python import torch.nn as nn class MultiScaleFusionModule(nn.Module): def __init__(self, in_channels, out_channels): super(MultiScaleFusionModule, self).__init__() # 定义不同的分支操作 self.branch_1x1 = nn.Conv2d(in_channels, out_channels//4, kernel_size=1) self.branch_3x3_reduce = nn.Conv2d(in_channels, out_channels//4, kernel_size=1) self.branch_3x3 = nn.Conv2d(out_channels//4, out_channels//4, kernel_size=3, padding=1) def forward(self, x): branch_1x1_output = self.branch_1x1(x) branch_3x3_output = self.branch_3x3(self.branch_3x3_reduce(x)) fused_feature_map = torch.cat([branch_1x1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值