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θ),其中x和y表示文本框的坐标轴,w和h表示文本组件的高度和宽度。 cosθ和sinθ表示的是文本组件的方向。如图所示:
②文本中心区域(TCR):通过缩小文本区域获得(TR),首先,计算文本中心线,然后,缩小文本中心线两端0.5w像素点,使得网络能够容易地分离相邻的文本实例和减少nms(非极大值抑制)的计算。 最后扩大中心线0.3h。
③在提取共享特征后,应用两个卷积层预测文本组件的属性为:
CR = conv1x1(conv3x3(F share))
在这里 CR∈R 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相关推荐
- DRRG:Deep Relational Reasoning Graph Network for Arbitrary Shape Text Detection:代码解读(textnet)
前言 期待着期待着,DRRG的代码解读还没有.这是要等死我啊,唉,没办法,没人写就自己摸索吧.没错,我又来吹牛了.全网第一篇DRRG代码解读来了,万事不求人,自己动手丰衣足食,今天和大家一起学习DRR ...
- 《Relational inductive biases, deep learning, and graph networks》笔记
该论文的作者来自AI界的两大组织--DeepMind和Google Brain,应该都是大牛.该论文主要回顾和总结现有的图网络,统一和扩展现有的方法,提出了自己的图网络结构 graph network ...
- Dynamically Fused Graph Network for Multi-hop Reasoning
Dynamically Fused Graph Network for Multi-hop Reasoning (ACL 2019)阅读笔记 动机: single-hop QA 任务无法测试潜在模型的 ...
- 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 ...
- 论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)
本文转载自公众号:徐阿衡. 论文:A simple neural network module for relational reasoning(2017) github代码: https://git ...
- Hierarchical Graph Network for Multi-hop Question Answering 论文笔记
Hierarchical Graph Network for Multi-hop Question Answering 论文笔记 2020 EMNLP,Microsoft 365, 这篇文章所提出的层 ...
- 【GANs】Deep Convolution Generative Adversarial Network
[GANs]Deep Convolution Generative Adversarial Network 3 DCGAN 3.1 简介 3.2 DGGAN实现 3 DCGAN Unsupervise ...
- 【论文下饭】Functional Connectivity Prediction With Deep Learning for Graph Transformation
水平有限,有误请指出. Functional Connectivity Prediction With Deep Learning for Graph Transformation 省流版 任务 模型 ...
- Detecting Visual Relationships with Deep Relational Networks(阅读笔记)
Detecting Visual Relationships with Deep Relational Networks(阅读笔记) 原文链接:https://blog.csdn.net/xue_we ...
最新文章
- java开源springboot项目_springBoot 搭建web项目(前后端分离,附项目源代码地址)...
- firebug的一个有趣现象
- GNU make 与 override指令
- php-常量、运算符
- 腾讯视频怎么退出青少年守护模式
- js 对Array的补充
- 大数据分析面临哪些困境
- 杂项-协议-HTTP:GET/POST/PUT/DELETE/INPUT/TRACE/OPTIONS/HEAD方法
- python中格式化输出_python如何实现格式化输出
- 微信小程序开发之路④
- 流程图常用符号及其代表含义
- 使用PicGo快速搭建图床
- 爬虫技术:scrapy 知识点一
- 2021全国高校计算机能力挑战赛程序设计赛Python组区域赛(初赛)试题及部分个人解答
- 【兴趣阅读】DeepInf: Social Influence Prediction with Deep Learning
- 自定义域名:为自己的CSDN博客添加自定义域名吧!
- FormulaR1C1是公式输入方法
- 关于mybatis 的一些实验
- 煮一锅信息化石头汤(转)
- java实现QQ、微信等第三方账号登陆