PSENet PANNet DBNet 三个文本检测算法异同

       这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行segment,然后再根据segment text,计算出text的instance,接下来将从以下几个方面做对比:

1.backbone

2.计算instance的方式

3.loss

4.Label generation

 

1.backbone:

      a.PSENet:

PSENet PANNet DBNet 三个文本检测算法异同_第1张图片

      resnet50卷积神经网络提取图像的特征,并利用FPN,融合深层和底层的特征,得到p2(尺寸是原图的1/4),p3,p4,p5,再通过以下的公式,融合p2,p3,p4,p5,得到F,作为最终预测的融合特征:

其中,UPx2(p3),就是向上upsample两倍,同样UPx4(p4),UPx8(p5),向上upsample四倍和八倍,这样通过unsample,p3,p4,p5的尺寸跟p2一样,再通过contenation 这四个特征,得到最后的F,这个F再通过n个conv1x1_sigmoid,得到n副Sn图。

 

 

        b.PANNet:

PSENet PANNet DBNet 三个文本检测算法异同_第2张图片

      PANNet采用lightweight backbone resnet18提取特征,再通过级联Feature Pyramid Enhancement Module (FPEM)模块,添加该模块在不太增加多少计算的情况下,使得不同的尺寸的特征可以更深,更有表达力,最后,通过Feature Fusion Module (FFM)模块,融合不同深度的FPEM特征,得到最后用于语义分割的图像。

      FPEM模块:PANNet的resnet18得到conv2,conv3,conv4,conv5的4个层特征图(其中conv2,conv3,conv4,conv5为原图的1/4,1/8,1/16,1/32),然后利用1X1的convolution,把resnet18的conv2,conv3,conv4,conv5特征图的通道数减为128,得到四个尺寸由小到大通道数为128的特征金字塔,通过级联n个FPEM模块,得到n个金字塔特征。

PSENet PANNet DBNet 三个文本检测算法异同_第3张图片

FPEM包括两个过程,都是U-shape,up-scale enhancement和down-scale enhancement,其中up-scale enhancement,小尺寸的特征通过线性放大两倍,add到相应的特征上,再通过3X3 DWConv(一种小计算量的卷积)和1X1 conv,BN,Relu,得到融合的特征,down-scale enhancement,从up-scale enhancement得到的小尺寸特征通过线性放大两倍,add到相应的特征上,然后再stride=2 的3X3 DWConv(一种小计算量的卷积)和1X1 conv,BN,Relu,得到融合的特征,输出最终的特征金字塔。

     FFM模块 :该模块就是融合由FPEM产生的n个金字塔特征,如下图所示,

PSENet PANNet DBNet 三个文本检测算法异同_第4张图片

通过add相对应的n个金字塔特征,得到最后的金字塔特征,每个特征通道128,4层的金字塔总共512,最后通过upsample 不同尺寸的特征为原图的1/4大小,最后concatenates所有的特征,作为语义分割特征。

 

      c.DBNet:

PSENet PANNet DBNet 三个文本检测算法异同_第5张图片

DBNet的backbone,为resnet50,其架构跟PSENet雷同,都是通过FPN得到金字塔特征,再通过upsample,把金字塔特征都resize到原图的1/4,最后concatenate成一个融合的特征,其中resnet50的conv3,conv4,conv5中所有的3X3 conv都替代为Deformable convolution,可以参考https://arxiv.org/abs/1811.11168。

2.计算instance的方式

        segmentation_base method 就是先把文本的区域分割出来,但分割的图是没有分instance实例的,所以要采用某种策略才能得到最后的实例分割。

     a.PSENet:

 如上一部分PSENet的fig3所示,由backbone得到n个语义分割图,论文n=3,也就是说,得到了s1,s2,s3,如下图所示:

 

PSENet PANNet DBNet 三个文本检测算法异同_第6张图片

由s1的二值图,通过CC操作,求解s1的连通区域,再通过s2和s3采用EX对s1的连通区域进行膨胀,得到最后的结果图,其中EX采用的是BFS算法,但会出现(g)图那样的冲突,解决的方式就是先到先得,BFS算法具体如下:

PSENet PANNet DBNet 三个文本检测算法异同_第7张图片

其中T,P是中间结果,Q是一个队列,Neighbor(.)表示p的4领域(左右上下)像素,GroupByLabel(.) 对T进行集成最后的结果,S i [q] = True表示q在si上是True的,也就是q在si的白色区域。

     b.PANNet:

       由上部分,PANNet的fig4所示,由backbone产生了三副结果图,Text Region,Kernel,Similarity Vector,其中kernel就是text instances,但kernel 并不是完整的text,该论文把kernel作为聚类中心,并利用可学习的算法Pixel Aggregation和Text Region图,完成了完整的text instances的识别。

      在train的时候,利用aggregation loss:

       其中:

N 是text instances 的个数,Ti 是第i个text instance,D(p,Ki)定义了text pixel p 和Ti的kernel Ki 的距离,δ是一个常量,通过实验设定为0.5,用于过滤掉简单的samples, F(p)是pixel p的similarity vector,G(·)是kernel Ki的similarity vector,G(·)=

         同时,kernel聚类中心之间需要保持更加有辨识度,该论文利用discrimination loss:PSENet PANNet DBNet 三个文本检测算法异同_第8张图片

 Ldis 就是为了保证kernel之间的距离不能少于δdis,通过实验,δdis值为3。

          在test阶段,(1)首先求出 kernel图的连通区域,通过每个连通区域Ki,(2)计算在Text Region上并且是kernel ki的四领域的pixel p的similarity vector的距离,给其kernel ki的label(3)重复第二步骤,直到所有的Text Region都分配完label。

      c.DBNet:

        如上一部分DBNet的fig3所示,由backbone提取图像的特征,产生三幅图probabilily map(P),threshold map(T)和 approximate binary map (B),在训练阶段,同时监督P,T,B,其中P和B的训练map是一样的,在推断的阶段,bbox可以由probablility map或者approximate map产生。如下图所示:

PSENet PANNet DBNet 三个文本检测算法异同_第9张图片

通过segmentation map产生binarization map 传统的就是通过如下的公式:

设置一个固定的阈值t,该操作是不可微的,所有不能在训练阶段一起训练,该论文将采用Differentiable binarization 可微的二值化操作来解决这个问题,,如下图所示, 

PSENet PANNet DBNet 三个文本检测算法异同_第10张图片

我们可以看出,在 T监督的情况下,其梯度会加大对错误的samples进行惩罚,这种adaptive threshold按我的理解就是,P就是预测一堆水,T就是一个个山谷,来盛这个水,每一份水就是一个text instance,如下图所示:

PSENet PANNet DBNet 三个文本检测算法异同_第11张图片

同时可以看出,如果T没有监督label,那么其效果是远远差于有监督label的。

3.Loss

    a.PSENet:

该方法的loss,如下:

Lc和Ls表示完整的text instance 和缩小的text instance的loss,λ 用于平衡Lc和Ls,pred和ground true,采用dice 系数如下:

Lc采用OHEM方法得到训练中OHEM的M图,其dice系数定义为:

Ls忽略在Sn中的non-text的区域,减少训练的冗余,其dice系统定义为:

PSENet PANNet DBNet 三个文本检测算法异同_第12张图片

W就是一个忽略non-text的mask。

   b.PANNet

该方法的Loss有四部分,如下:

Ltex就是text region的loss,Lker就是the kernel 的loss, α 和 β就是平衡 Ltex , Lker , Lagg 和 Ldis,在实验中被设定为0.5和0.25,

为了解决text和non-text的极度不平衡,该论文采用dice loss:

PSENet PANNet DBNet 三个文本检测算法异同_第13张图片

为了忽略simple negative samples,Ltex采用OHEM,在计算Lker,Lagg和Ldis时,只考虑text pixels.

      c.DBNet

该方法loss如下:,Ls就是the probability map的loss,Lb是the binary map的loss,Lt是the threshold map的loss,α 和 β 被设定为 1.0 and 10 ,Ls采用hard negative mining策略,BCELoss,如下:

其正例和负例的比例为1:3。

Lt由L1范数进行计算:

4.Label generation 

    a.PSENet:

PSENet PANNet DBNet 三个文本检测算法异同_第14张图片

该论文利用 Vatti clipping algorithm对segmentation map 按比例缩小。

   c.DBNet

PSENet PANNet DBNet 三个文本检测算法异同_第15张图片

类似PSENet label 方式,先缩小groudtrue map(G),得到probability map(Gs),在膨胀得到Gd,计算Gs和Gd与G的距离得到threshold label map。

 

 

 

 

你可能感兴趣的:(PSENet PANNet DBNet 三个文本检测算法异同)