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]] = 1A[unique_nodes_map[n], unique_nodes_map[node]] = 1

Graph Convolution:

四,推理阶段:

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

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

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

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

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

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

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

五,conclusion

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

Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection相关推荐

  1. DRRG:Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection:代码解读(textnet)

    前言 期待着期待着,DRRG的代码解读还没有.这是要等死我啊,唉,没办法,没人写就自己摸索吧.没错,我又来吹牛了.全网第一篇DRRG代码解读来了,万事不求人,自己动手丰衣足食,今天和大家一起学习DRR ...

  2. 《Relational inductive biases, deep learning, and graph networks》笔记

    该论文的作者来自AI界的两大组织--DeepMind和Google Brain,应该都是大牛.该论文主要回顾和总结现有的图网络,统一和扩展现有的方法,提出了自己的图网络结构 graph network ...

  3. Dynamically Fused Graph Network for Multi-hop Reasoning

    Dynamically Fused Graph Network for Multi-hop Reasoning (ACL 2019)阅读笔记 动机: single-hop QA 任务无法测试潜在模型的 ...

  4. Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs

    Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs Rakshit Trivedi 1 Hanjun Dai 1 Yic ...

  5. 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)

    本文转载自公众号:徐阿衡. 论文:A simple neural network module for relational reasoning(2017) github代码: https://git ...

  6. Hierarchical Graph Network for Multi-hop Question Answering 论文笔记

    Hierarchical Graph Network for Multi-hop Question Answering 论文笔记 2020 EMNLP,Microsoft 365, 这篇文章所提出的层 ...

  7. 【GANs】Deep Convolution Generative Adversarial Network

    [GANs]Deep Convolution Generative Adversarial Network 3 DCGAN 3.1 简介 3.2 DGGAN实现 3 DCGAN Unsupervise ...

  8. 【论文下饭】Functional Connectivity Prediction With Deep Learning for Graph Transformation

    水平有限,有误请指出. Functional Connectivity Prediction With Deep Learning for Graph Transformation 省流版 任务 模型 ...

  9. Detecting Visual Relationships with Deep Relational Networks(阅读笔记)

    Detecting Visual Relationships with Deep Relational Networks(阅读笔记) 原文链接:https://blog.csdn.net/xue_we ...

最新文章

  1. java开源springboot项目_springBoot 搭建web项目(前后端分离,附项目源代码地址)...
  2. firebug的一个有趣现象
  3. GNU make 与 override指令
  4. php-常量、运算符
  5. 腾讯视频怎么退出青少年守护模式
  6. js 对Array的补充
  7. 大数据分析面临哪些困境
  8. 杂项-协议-HTTP:GET/POST/PUT/DELETE/INPUT/TRACE/OPTIONS/HEAD方法
  9. python中格式化输出_python如何实现格式化输出
  10. 微信小程序开发之路④
  11. 流程图常用符号及其代表含义
  12. 使用PicGo快速搭建图床
  13. 爬虫技术:scrapy 知识点一
  14. 2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答
  15. 【兴趣阅读】DeepInf: Social Influence Prediction with Deep Learning
  16. 自定义域名:为自己的CSDN博客添加自定义域名吧!
  17. FormulaR1C1是公式输入方法
  18. 关于mybatis 的一些实验
  19. 煮一锅信息化石头汤(转)
  20. java实现QQ、微信等第三方账号登陆

热门文章

  1. 快速上手Spring--1.收集的一些资料
  2. 怎么为别人提供服务器接口_饭局上领导让你先敬别人怎么办?别说“先干为敬”,这招化解尴尬...
  3. LoRa开发与应用之路二
  4. ckeditor一键排版
  5. 文件操作实现斐波那契数列-
  6. 《战争论》第一篇《论战争的性质》的主要内容
  7. 哈佛大学经典校训20条
  8. AIGC万字百科全书:底层原理、应用场景、工具示例、行业现状、发展趋势
  9. 外设驱动库开发笔记50:HP203B气压传感器驱动
  10. java swing 布局_Java的Swing布局