文字检测:PSENet——原理简介

目录

1.概述

2.核心思想

3.网络结构

4.渐进的尺度扩展算法

5.标签生成

6.损失函数

7.其他一些说明


1.概述

1.能检测弯曲的文本

2.能有效的分割距离较近的文本

2.核心思想

1.基于像素级别的分割,对任意形状的文本进行定位

2.使用渐进的尺度扩展算法,对相邻文本实例进行识别

3.网络结构

整个网络的结构大致如下:

1、首先是一个简单的ResNet的网络结构

2、其次是类似于FPN的操作方法,生成p2~p5的fpn特征图

3、随后的处理方法为:

        (1) 将p3~p5的feature map都upsample到p2的尺度

        (2) 不同尺度的feature map进行concat ( element-wise 相加),得到F

        (3) 对进行3x3的卷积处理

        (4)再进行1x1的上采样

        (5)最后得到n个分割结果(S1,S2,...,Sn)

4.渐进的尺度扩展算法

 其中心思想来自于广度优先搜索(BFS)算法。具体步骤:

1)从具有最小尺度的kernel开始(在此步骤中可以区分实例),S1(上图a)代表最小kernel的分割结果,它内部有四个连通域C={c1,c2,c3,c4},通过查找连通域得到S1中的四个连通域,得图b(四个连通区域使用不同颜色标记,,小kernel,不同文本行之间的margin很大,很容易区分开)

2)将属于S2中的kernel的但不属于S1中的kernel的像素点(即图g左图中的灰色的部分)进行分配。在灰色区域(S2的kernel范围)内,将b图所找到的连通域的每个pixel以BFS的方式,逐个向上下左右扩展,即相当于把S1中预测的文本行的区域逐渐变宽(或者换种说法:对于S2中kernel的每个像素点,把它们都分别分配给S1中的某个连通域)

3)重复上述过程,完成直到发现最大的kernel做为预测结果

注:此处的kernel可以理解为文本区域

5.标签生成

 不同尺度的真实标签,可以通过缩小原始文本区域的标签来得到。

利用Vatti clipping algorithm来得到不同尺度的标签,即录用d_{i}将原始文本区域标签p_{n}缩放到小尺度的问区域p_{i},得到的标签用G_{i}表示。

margin d_{i} 可以通过以下公式得到:

d_{i}=\frac{Area(p_{n})\times (1-r_{i}^{2})}{Perimeter(p_{n})}

Area()表示求面积,Perimeter()表示求周长。

r_{i}=1-\frac{(1-m)\times (n-i)}{n-1}

m为最小缩放比例,n为缩放尺度的个数。

6.损失函数

L=\lambda L_{c}+(1-\lambda )L_{s}

损失函数分为两部分:

  • Lc 代表整个文本实例(Sn)的损失
  • Ls 代表缩放后文本实例(S1 -> Sn-1)的损失

其中λ用于平衡Lc和Ls,这里设置为0.7。

这里用dice coefficient损失函数:

D(S_{i},G_{i})=\frac{2\sum _{x,y}(S_{i,x,y}*G_{i,x,y})}{\sum _{x,y}S_{i,x,y}^{2}+\sum _{x,y}G_{i,x,y}^{2}}

S_{i,x,y}G_{i,x,y}分别代表S_{i}G_{i}在(x,y)处的像素值。

因为图片中会有许多和文字笔画比较像的物体比如栅栏、格子图案等,因此对L_{c}使用在线困难样本挖掘来更好的区分文本和这些相似的非文本。L_{c}专注于区分文本和非文本。

L_{c}=1-D(S_{n}\cdot M,G_{n}\cdot M)

其中M代表OHEM(在线难例挖掘)training mask

缩放的文本实例L_{s}的计算公式如下

L_{s}=1-\frac{\sum _{i=1}^{n-1}D(S_{i}\cdot W,G_{i}\cdot W)}{n-1}W_{x,y}=\left\{\begin{matrix} 1, &ifS_{n,x,y}\geq 0.5; \\ 0,& otherwise. \end{matrix}\right. 

Ls主要是shrink文本区域的损失,考虑到shrink后的文本区域被原始文本区域包围,因此作者忽略了分割结果Sn中非文本区域的像素从而避免像素冗余的情况。其中W代表Sn中文本区域的mask,Sn,x,y代表Sn中(x,y)的像素值。

7.其他一些说明

1.PSENet输入imgs是包含img、gt_text、training_mask和gt_kernels的列表。 其中img是原始图像,gt_text背景为0的文本区域的值是1。 training_mask是标签为“#”,即文本行区域为0,其余地方的值为1的二值图,gt_kernels共有6张图是与文本区域shrink的不同比例相对应的二值图,文本区域为1,其余区域为0。 psenet是基于实例分割的模型,标签与模型输入大小相同,因此对原图进行反转、旋转、裁剪等操作,对标签也进行同样的操作即可。

2.对于弯曲的文本,论文采用了道格拉斯-普克算法(the Ramer Douglas-Peucker algorithm)来生成任意形状的边界框。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值