【转载】【论文笔记】文本检测之EAST

本文介绍了端到端的文本检测方法EAST,它消除中间多个stage,直接预测文本行。该方法结合DenseBox和Unet网络特性,采用全卷积网络和非极大值抑制,可检测不同尺度和方向文本。文中还阐述了实现细节、训练标签生成、loss计算等,最后给出在ICDAR2015数据集上的评测结果。

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

【原文地址】https://zhuanlan.zhihu.com/p/37504120

简介

论文题目:EAST: An Efficient and Accurate Scene Text Detector

论文地址:https://arxiv.org/pdf/1704.03155.pdf

代码复现:https://github.com/argman/EAST

传统的文本检测方法和一些基于深度学习的文本检测方法,大多是multi-stage,在训练时需要对多个stage调优,这势必会影响最终的模型效果,而且非常耗时.针对上述存在的问题,本文提出了端到端的文本检测方法,消除中间多个stage(如候选区域聚合,文本分词,后处理等),直接预测文本行.

下图给的是几个不同框架的检测pipeline:可以发现本文只包含两个stage

 

论文关键idea

  • 提出了基于two-stage的文本检测方法:全卷积网络(FCN)和非极大值抑制(NMS),消除中间过程冗余,减少检测时间.
  • 该方法即可以检测单词级别,又可以检测文本行级别.检测的形状可以为任意形状的四边形:即可以是旋转矩形(下图中绿色的框),也可以是普通四边形(下图中蓝色的框)).
  • 采用了Locality-Aware NMS来对生成的几何进行过滤
  • 该方法在精度和速度方面都有一定的提升.

 

Pipeline

论文的思想非常简单,结合了DenseBox和Unet网络中的特性,具体流程如下:

  • 先用一个通用的网络(论文中采用的是Pvanet,实际在使用的时候可以采用VGG16,Resnet等)作为base net ,用于特征提取
  • 基于上述主干特征提取网络,抽取不同level的feature map(它们的尺寸分别是inuput-image的\tfrac{1}{32}\tfrac{1}{16}\tfrac{1}{8}\tfrac{1}{4} ),这样可以得到不同尺度的特征图.目的是解决文本行尺度变换剧烈的问题,ealy stage可用于预测小的文本行,late-stage可用于预测大的文本行.
  • 特征合并层,将抽取的特征进行merge.这里合并的规则采用了U-net的方法,合并规则:从特征提取网络的顶部特征按照相应的规则向下进行合并,这里描述可能不太好理解,具体参见下述的网络结构图
  • 网络输出层,包含文本得分和文本形状.根据不同文本形状(可分为RBOX和QUAD),输出也各不相同,具体参看网络结构图

实现细节

合并层中feature map的合并规则

具体的合并步骤如下:

  1. 特征提取网络层中抽取的最后层feature map被最先送入uppooling层(这里是将图像放大原先的2倍),
  2. 然后与前一层的feature map进行concatenate,
  3. 接着依次送入卷积核大小为1\times{1}3\times{3},卷积核的个数随着层递减,依次为128,64,32
  4. 重复1-3的步骤2次
  5. 将输出经过一个卷积核大小为3\times{3},核数为32个

具体的公式如下:

 

输出层的输出

  • 对于检测形状为RBOX,则输出包含文本得分和文本形状(AABB boundingbox 和rotate angle),也就是一起有6个输出,这里AABB分别表示相对于top,right,bottom,left的偏移
  • 对于检测形状为QUAD,则输出包含文本得分和文本形状(8个相对于corner vertices的偏移),也就是一起有9个输出,其中QUAD有8个,分别为(x_{i},y_{i}),i\subset [1,2,3,4] 

训练标签生成

QUAD的分数图生成

得分图上QUAD的正面积为原图的缩小版,缩小的规则如下:

对一个四边形Q={pi|i属于1,2,3,4},pi是按顺时针顺序排列的四边形的顶点。对于缩小的Q,我们首先计算ri:

r_{i}=min(D(p_{i},p_{(i mod 4)+1},D(p_{i},p_{(i-1) mod 4)+1}) 
D(pi,pj)是两个顶点pi和pj之间的L2距离。

我们首先收缩两个长点的边,再收缩两个短点的边。对于每对对边,我们通过比较平均长度值来确定长边。对于每个边<p_{i},p_{(i mod 4 +1)}> ,我们分别通过沿边赂内移动两个端点收缩它,分别为0.3r_{i}0.3r_{(i mod 4)+1},这里论文中缩放的系数是0.3,具体可以根据你的实际任务设置。

注:论文中上述公式可能存在问题,这里仅是个人理解,这里对应的结果图如下:其中绿色框为ground truth,红色框为shrink后的坐标

QUAD分数图如下,这里其实就是上图红色四边形框的掩膜:

 

几何形状图生成

很多数据集(如ICDAR2015)是用QUAD的方式标注的,首先生成以最小面积覆盖区域的旋转矩形框。每个像素有一个正的分数值,我们计算它与文本框四边的距离,把它们放入四通道的RBOX 真值中。对于QUAD真值,8通道几何形状图每个像素的正分数值是它与四边形4个顶点的坐标偏移。

下图给出的是生成完的结果,绿色框表示生成的RBOX:

训练loss

loss由两部分组成:score map loss 和geometry loss,具体公式如下: L_{loss}=L_{s}+\lambda_{g}L_{g}Lloss​=Ls​+λg​Lg​

  • 分数图损失(score map loss)

论文中采用的是类平衡交叉熵,用于解决类别不平衡训练,避免通过 平衡采样和硬负挖掘 解决目标物体的不不平衡分布,简化训练过程,具体公式如下:

但是在具体实战中,一般采用dice loss,它的收敛速度会比类平衡交叉熵快

  • 几何形状损失(geometry loss)

文本在自然场景中的尺寸变化极大。直接使用L1或者L2损失去回归文本区域将导致损失偏差朝更大更长.因此论文中采用IoU损失在RBOX回归的AABB部分,尺度归一化的smoothed-L1损失在QUAD回归,来保证几何形状的回归损失是尺度不变的.

针对RBOX loss,其损失函数公式为: L_{g}=L_{AABB}+\lambda_{\theta}L_{\theta}=-logIoU(\hat{R},R^*)+\lambda_{\theta}(1-\cos(\hat{\theta}-\theta))

针对QUAD loss,其具体公式如下:

  • 局部感知NMS(locality-aware NMS)

与通用目标检测相似,阈值化后的结果需要经过非极大值抑制(NMS)来得到最终的结果.由于本文中面临的是成千上万个几何体,如果用普通的NMS,其计算复杂度是O(n^2)O(n2),n是几何体的个数,这是不可接受的.

针对上述时间复杂度问题,本文提出了基于行合并几何体的方法,当然这是基于邻近几个几何体是高度相关的假设.注意:这里合并的四边形坐标是通过两个给定四边形的得分进行加权平均的,也就是说这里是**"平均"而不是"选择"几何体**.

  • 训练其它参数

整个训练采用基于Adam的端到端的训练.为了加速学习,统一从图像集中采样512*512构建minibatch大小为24,然后staged learning rate decay,但是在具体实验过程中可以使用linear learning rate decay.

在ICDAR2015数据集上的评测结果

使用EAST训练自己数据集

这里由于时间问题,就详细介绍了,我的显卡型号是Tesla P40,检测一张需要的时间在60ms左右,这里给出几张效果图:

 

总结

  • 在特征合并层,利用不同尺度的feature map,并通过相应的规则进行自顶向下的合并方式,可以检测不同尺度的文本行
  • 提供了文本的方向信息,可以检测各个方向的文本
  • 本文的方法在检测长文本的时候效果表现比较差,这主要是由网络的感受野决定的(感受也不够大)
  • 在检测曲线文本时,效果不太理想

本人文笔粗浅,若有理解错误的地方,望大家指正.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值