Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection

Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection

一,Overview

 

 

二,文本组件预测:

首先每个文本组件D与一组几何属性相关联,即D=(x, y, h, w, cosθ, sinθ),其中xy表示文本框的坐标轴,wh表示文本组件的高度和宽度。 cosθsinθ表示的是文本组件的方向。如图所示:

 

 

文本中心区域(TCR):通过缩小文本区域获得(TR),首先,计算文本中心线,然后,缩小文本中心线两端0.5w像素点,使得网络能够容易地分离相邻的文本实例和减少nms(非极大值抑制)的计算。 最后扩大中心线0.3h。

 

 

在提取共享特征后,应用两个卷积层预测文本组件的属性为:

                                       CR = conv1x1(conv3x3(F share))

                                      在这里 CRR hxwx8 其中 四个通道是TR/TCR分类逻辑(Classification logits)四个通道是 h1 ,h2,cosθ, sinθ的回归逻辑(regression logits)

                                      Architecture of shared convolutions使用的是VGG-16+FPN 骨架

检测损失(detection loss):文本组件预测损失由两个部分组成,分别是回归损失(regression loss) 和 分类损失(classification loss)可以被计算为:

           其中分类损失又可以被计算为:

 

 

     这里 Ltr 表示的是文本区域损失,Ltcrp 只计算文本区域内的像素点,Ltcrn 计算文本区域外的像素点。Ltcrn 被用来抑制文本中心区域背景噪声。在本文的实验中,权重λ1λ2被各自设置为1.0 和0.5.

     由于non-TCR region 没有高度和宽度属性, 我们只计算TCR region 的回归损失:

    

 

                 hki sinθ 和 cosθ 是 ground-truth value

                 hki_ sinθ _ 和cosθ_是predicted value

                Ω 表示在TCR中正样本的数据集

                h是文本组件的真实高度

               超参数β 被设置为1

 

三,生成局部图

      

通过修改《Linkage Based Face Clustering via Graph Convolution Network》 中 IPS(Instance Pivot Subgraphs) 来产生局部图,本文中使用 中轴节点的两跳作为局部图的节点。中轴节点的一跳由最近的8个节点组成,二跳由最近的4个节点组成。

     考虑把节点之间的欧式相似性Es来执行knn操作。

     

         

    D(p, vi) 是节点p和vi 之间的L2距离

    Hm,Wm 分别为图像的高度和宽度

similarity_e = np.array(EuclideanDistances(ctr_xy, ctr_xy), dtype=np.float) / img_size
knn_graph = np.argsort(similarity_matrix, axis=1)[:, :]

   为了避免在训练中由许多相同的图引起的简单样本梯度积累:

 Gp 和Gq 是两个局部图,中轴节点p和q都是同一个文本实例中,Gp ∩ Gq 是中轴节点一跳的交集,Gp ∪Gp 是中轴节点一跳的并集。在实验中,我们设置ζ为0.75

节点特征提取:由两个部分组成,第一个部分是 RROI特征** 。 第二个部分是几何特征

   RROI特征提取的过程:我们结合feature maps Fn 把文本组件输入到RRoI-Align 层,然后获得一个1x3x4xCr 特征块。

              RROI-Align层,结合了ROI-Align 和 RROI的优点来提取输入文本组件的特征块

  文本组件几何特征的提取过程:文本的几何属性通过在《Attention is all you need》和《learning region features for object detection》两篇论文中的方 法被嵌入到高维空间中。嵌入是通过将不同波长的正弦和余弦函数应用于标量z来实现的。

 


  pos_feat = self.PositionalEncoding(geo_map, self.pst_dim)
  pos_feat = torch.from_numpy(pos_feat).cuda().float()  # shape=(600,120)
  roi_feat = self.NodePooling(feats[bind].unsqueeze(0), roi_map)
  roi_feat = roi_feat.view(roi_feat.shape[0], -1) #shape=(600,480)
  node_feat = torch.cat((roi_feat, pos_feat), dim=-1) #shape=(600.600)

节点特征归一化:

     通过减去中轴节点的特征来归一化节点的特征,它将中轴节点信息编码到局部图的特征中,使得关系推理网络易于学习中轴节点与其邻居节点之间的连接关系。

     

 

 feat = feat_map[torch.tensor(ips, dtype=torch.long)] - center_feat

邻接矩阵的产生:



 for node in ips:
      neighbors = knn_graph[node, 1:self.active_connection + 1]
      for n in neighbors:
           if n in ips:
                 A[unique_nodes_map[node], unique_nodes_map[n]] = 1
                 A[unique_nodes_map[n], unique_nodes_map[node]] = 1

 

Graph Convolution:

四,推理阶段:

在训练中我们只对一跳邻居节点进行后向传播,因为我们只关心中轴节点和一跳邻居节点链接,对于测试,我们只对一跳节点进行分类。

 

① 根据关系推理结果,对文本组件分组

②首先将阈值分别应用于TR和TCR,然后使用NMS减少冗余

③遍历所有文本组件,以每个组件为中心构造一个局部图,因此获得了由链接可能性加权的一组边

④使用宽度优先搜索BFS对链接进行聚类和合并

⑤应用MinPath算法搜索所有文本组件中心的最短路径,然后通过搜索结果对实例T的各个组件进行排序

⑥顺序地在有序文本组件中链接顶部和底部的中点,即可得到文本边界

 

五,conclusion

本文提出新的基于组件连接(CC)策略的文本检测方法。提出了基于图卷积的深度关系推理网络,来学习文本组件之间的链接可能性。并且利用该信息指导后处理,将组件正确的连接到文本实例中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值