pytorchOCR之PAN

pytorchOCR之PAN

论文
官方代码

主要思想

这篇文章主要是基于一个聚类的思想,将每一个单独的文本看做是一类。文章借鉴了CornerNet 中的思想,为每个像素点预测一个四维的向量。文本kernel中像素点的四维向量的均值,作为一个聚类中心,于是属于该类中心的像素的四维向量与聚类中心四维向量的距离应该尽可能小,并且每个聚类中心四维向量距离应该尽可能大。

模型架构

在这里插入图片描述
本文主要创新点在于提出了两个模块,FPEM和FFM,以及通过训练一个聚类的思想的四维相似向量。最后依旧通过相似向量聚合文本像素得到文本框。

FPEM

在这里插入图片描述
这里也很明显通过上采样和下采样,不断融合相邻的特征图,参见ptocr/model/head/det_FPEM_FFM_Head.py的FPEM类。

FFM

在这里插入图片描述
FFM就是将FPEM中得到的每个尺度的特征图,相同大小的特征图相加,进一步融合特征。最终将每个尺度特征图插值到同一大小进行concat,就得到最后的分割预测图。,参见ptocr/model/head/det_FPEM_FFM_Head.py的FFM类。

loss

在这里插入图片描述
在这里插入图片描述
F ( p ) F(p) F(p)代表代表像素p的四维向量, g ( k i ) g(k_i) g(ki)代表第 k i k_i ki个kernel的四维向量(这里的四维向量为属于kernel向量的像素的四维向量的均值)。两者求二范数减去一个实验定值 δ a g g δ_{agg} δagg并和0作比较求最大。当像素p和kernel的四维向量越相似,公式二越趋向于0,代入公式1同样趋向于0。所以越相似loss越小

在这里插入图片描述
g ( k i ) g(k_i) g(ki) g ( k j ) g(k_j) g(kj)分别为第 k i k_i ki k j k_j kj个kernel的四维向量, δ d i s δ_{dis} δdis为实验常数。由公式4可知,当两者的四维向量越不相似,两者的范数越大,则 δ d i s − ∣ ∣ g ( k i ) − g ( k j ) ∣ ∣ δ_{dis}-||g(k_i)-g(k_j)|| δdisg(ki)g(kj)趋向于0或小于0,则整个式子趋向于0.代入公式3也趋向于0,所以kernel之间越不相似,loss越小。

在这里插入图片描述
kernel和text的loss为dice loss,用作分割。

最终总的loss如下:
在这里插入图片描述
所有loss的代码在ptocr/model/loss/basical_loss.py,对应Agg_loss,Dis_loss,DiceLoss.

像素聚合

像素聚合和pse区别不大,只是加入了一个相似向量之间距离的约束,论文中设定了与kernel四维向量距离小于6的像素进行聚合。

说明:文中图均来自论文

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值