文字检测算法——PSENet阅读笔记

多种文本检测算法性能对比及算法介绍
(https://blog.csdn.net/qq_39707285/article/details/108754444)



0. 论文摘要

0.1 目前文字检测存在的挑战

  1. 大多数最先进的算法都需要精确的四边形bounding box来定位任意形状的文本,而不能检测curve文本,如Fig. 1(b)
  2. 对于两个比较接近的文本行可能会导致一个错误的检测,检测结果会覆盖两个实例,如Fig. 1(c)
    Figure 1

0.2 本文解决办法

  1. 基于分割的方法可以解决第一个问题,但通常不能解决第二个问题。
  2. 提出了一种新的渐进扩展网络(Progressive Scale Expansion Network,PSENet),它可以精确地检测任意形状的文本实例。

1. Introduction

目前的文字检测算法可以简单的分为两大类: regression-based approaches(基于回归的方法) and segmentation-based approaches(基于分割的方法)。基于回归的方法不能解决曲形文本,基于分割的方法可以解决曲形文本,但是对于距离较近的文本行往往会检测出错(如上图c)。
本文提出的PSENet可以解决这些问题,PSENet有两大优点,第一,属于分隔的算法,用时可以处理任意形状的文本;第二,提出了一张渐进尺度扩展算法,对于临近的文本行可以成功的分离开,如上图d。
对于每个文本实例,用不同的分割区域进行预测,我们把这些分割区域成为"核",每个文本实例的核与原始文本形状类似,但尺寸不同,用Breadth-First-Search (BFS)的方法生成不同的分割target,BFS算法简介,1)最开始的核用最小的尺寸,文本实例在这一步就可以被检测出来;2)通过在更大的内核中包含更多的像素来扩展它们的区域;3)直到完整的文本实例(最大的内核)被找到。


2. 文本检测算法回顾

场景文本检测算法总体可分为两类:基于回归的方法和基于分割的方法。

2.1 基于Regression的算法

基于回归的方法经常使用目标检测的框架,例如Faster R-CNN
和SSD等,下面介绍一下其他基于回归的算法:

  1. TextBoxes 修改了anchor的比例和卷积核,来适应任意比例的文本。
  2. EAST 使用FCN去直接预测每一个像素的score、旋转角度和bbox。
  3. RRPN 采用 Faster R-CNN,设计了旋转的RPN,可以直接检测任意旋转的文本。
  4. RRD 从两个独立的分支中提取用于文本分类和回归的特征映射,以更好地进行长文本检测。
    以上几种算法的缺点:
  1. 需要设计复杂的anchor,需要繁琐的多个阶段来完成
  2. 耗时,性能不佳
  3. 不能处理曲形文本

2.2 基于Segmentation的算法

基于分割的算法主要受FCN的启发。

  1. PixelLink 通过预测不同文本实例之间的像素连接,分离出彼此相近的文本
  2. TextSnake 使用规则的圆盘去表示用于曲线文本检测的曲线文本
  3. SPCNet 使用实例分割框架,利用上下文信息检测任意形状的文本,同时抑制假阳性
    以上的这些方法在横向和任意方向的文本检测上都取得了不错的效果,但是这些算法除了TextSnake之外,没能够解决曲形文本。而TextSnake需要在算法预测之前进行非常耗时的预处理操作,本文的算法仅仅需要一步高效的操作。

3. 提出的算法

这一部分首先综述算法Progressive Scale Expansion Network
(PSENet),然后详细的展开来讲该算法如何高效的定位文本,接着介绍如何生成label,最后介绍loss函数的设计。

3.1 算法综述

整体的网络结构如下图所示。
在这里插入图片描述
PSENet使用ResNet作为backbone,整个网络结合低层的纹理特征和高层的语义特征,各个特征图最后一起融合成F,从直觉上看,融合之后的特征图能够检测不同尺度的文本。然后特征图F分为n个分支,每个分支产生不同的分割结果S1,S2,…Sn,每一个Si代表一个实例的不同尺度的mask,生成这些mask由超参数决定,这部分后面讲。S1是文本实例分割的最小尺度,Sn代表真实的标注结果。使用 progressive scale expansion algorithm不断的扩大S1到Sn,直到最终的结果R。

3.2 网络设计

PSENet的基础框架由FPN构成,首先从backbone中得到256通道的不同的特征图中(例如P2,P3,P4,P5),然后通过函数 C(·)融合成1024通道的特征图F,融合函数如下所示,其中“||”代表连接,Up ×2 (·)代表2倍上采样。之后F经过 Conv(3,3)-BN-ReLU降维到256,最后经过n个 Conv(1,1)-Up-Sigmoid生成n个分割结果S1,…Sn
在这里插入图片描述

3.3 渐进尺度扩展算法

对于一般的分割算法很难区分相近的文本,如Fig. 1(c)所示,为了解决这个问题,提出了 渐进尺度扩展算法(progressive scale expansion algorithm),如图4所示,解释了整体的算法流程。
在这里插入图片描述
算法的中心思想来源于Breadth-First-Search (BFS),在图示的例子中,选用3个分割结果S = {S1 ,S2 ,S3 }, S 1 S_1 S1代表最小的kernel map,从 S 1 S_1 S1中可以很明显的看到四个联通组件,(b)中四个不同的颜色代表四个不同的文本组件,到这一步,就已经得到了所有文本的最小面积区域,然后,通过合并 S 2 S_2 S2中的像素逐渐的扩大这个kernel ,然后利用 S 3 S_3 S3继续扩大,两次扩充的结果如图©和(d)所示,最后提取不同颜色的区域,就得到了最终的文本区域。

图4(g)中说明了kernel 是如何扩展的,从多个kernel的像素开始,迭代地合并相邻的文本像素,合并时有可能会出现冲突,如图中(g)红色方框,处理这种有争论的像素,就是利用先到先得原则。由于渐进扩展处理,这些边界冲突不会影响最终的检测和性能,在算法1中总结了尺度扩展算法的详细内容。
在这里插入图片描述
T T T P P P是中间结果, Q Q

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值