论文笔记之CentripetalNet

2023-10-30

提出使用向心偏移来对同一实例中的角点进行配对,此外又设计了一个( corner-star deformable convolution network)十字星可变形卷积网络来适应corner特征。
CVPR2020接收
论文地址:https://arxiv.org/pdf/2003.09119.pdf
代码地址:https://github.com/KiveeDong/CentripetalNet

1. 摘要

基于关键点的检测器取得了很好的效果,不过匹配错关键点的情况还是经常发生,并极大地影响了检测器的性能。作者在这篇文章中提出一种使用向心偏移来对同一实例中的角点进行配对的CentripetalNet向心网络。向心网络可以预测角点的位置和向心偏移,并对偏移结果对齐(aligned)的角点进行匹配。**结合位置信息,这种方法比传统的嵌入方法更准确地匹配角点。**corner pooling将边界框内的信息提取到边界上。为了使这些信息在角落里更容易被察觉,作者又设计了一个( corner-star deformable convolution network)十字星可变形卷积网络来适应特征。除了检测外,作者还通过为CentripetalNet安置一个mask预测模块来探索anchor-free检测器上的实例分割。在MS-COCO test-dev上,CentripetalNet获得了48.0%的AP,而且分割性能达到了40.2%的AP

2. 引言

2.1 存在的问题

传统的方法主要采用关联嵌入方法对角点进行配对,其中网络需要学习每个角点的附加嵌入,以识别两个角点是否属于同一个 bounding-box。这样,如果两个角点来自同一个box,它们将有一个相似的嵌入,否则,它们的嵌入将完全不同。

基于关联嵌入的检测器在目标检测中取得了很好的性能,但也存在一定的局限性。

  • 首先,训练过程采用推拉损失(Push loss)来学习每个点的嵌入。将计算不属于同一实例的角点之间的Push loss,以将它们远离彼此。而Push loss只在同一物体的角点之间考虑。因此,在训练过程中,网络实际上被训练在对角线的所有潜在点内寻找唯一的匹配点。当一个训练样本中存在多个相似实例时,该方法对异常值非常敏感,训练难度会急剧增加。
  • 其次,嵌入预测基于外观特征,不使用位置信息,如图1所示,如果两个实例具有相似的外观,则即使它们相距很远,网络也倾向于为它们预测相似的嵌入
    图一
    图1:a)由于外观相似而产生的相似嵌入,CornerNet会生成一些错误的对角。 (b)CenterNet通过中心预测除去了一些错误的对角,但不能处理一些密集的情况。 (c)CentripetalNet避免了CornerNet和CenterNet的错误。

2.2 解决办法

基于上述考虑,本文提出了一种基于向心位移的角点匹配方法和一个十字星可变形卷积模块来更好地预测向心位移。

  1. 给定一对角点,为每个角点定义一个二维向量,即向心位移,其中向心位移编码从角点到矩形框中心点的空间偏移。这样,每个角点都可以根据向心位移生成一个中心点,因此如果两个角点属于同一个边界框,则它们生成的中心点应该是闭合的。匹配的质量可以用两个中心与该匹配的几何中心之间的距离来表示。结合了每个角点的位置信息,与联合嵌入方法相比,该方法对异常点具有较强的鲁棒性。
  2. 此外,本文提出了cross-star 可变形卷积,不仅可以学习大的感受野,而且可以学习 cross-star 的几何结构。作者观察到 corner-pooling 输出的特征图中有一些“十字星”。“cross-star”的边界包含目标的上下文信息,因为 corner-pooling 使用max和sum操作将目标的位置信息沿 “cross-star” 边界扩展到角。因此,作者将目标的几何和位置信息明确地嵌入到可变形卷积的偏移中。

3. 本文方法—CentripetalNet

首先基于CornerNet生成候选角点。在所有候选角点的基础上,引入向心位置算法来寻找高质量的角点对,并生成最终的预测边界框。具体地说,向心偏移模块预测角点的向心偏移,并匹配角点对,其从其位置解码的偏移结果与向心偏移对齐。然后,我们提出了一种新的十字星可变形卷积算法,它的偏移场是从角点到相应中心的偏移量中得到的,用于进行特征自适应以丰富角点位置的视觉特征,这对于提高向心偏移模块的精度具有重要意义。最后,为了进一步提高检测性能,我们增加了一个实例掩码模块,并将该方法扩展到实例分割领域。该方法以向心位移模块的预测包围盒为区域建议,利用roalign提取区域特征,并应用小卷积网络预测分割掩模。总体来说,我们的向心网是端到端训练的,可以在有或没有实例分割模块的情况下进行推理。

3.1 总体框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5h5YTIOr-1597911970695)(C:\Users\WangIronman\AppData\Roaming\Typora\typora-user-images\image-20200820105350980.png)]
Fig 2:CentripetalNet 概述。由于左上角和右下角的角点预测和特征自适应是相似的,为了简单起见,只画左上角模块。向心变换模块首先得到预测的角点和自适应特征,然后预测每个角点的向心位移,并根据预测的角点和向心位移进行角点匹配。在匹配过程中,如果移动角点的位置足够接近,它们将形成一个得分较高的边界框。

CentripetalNet四个模块:

  • 角点预测模块
  • 向心偏移模块
  • cross-star 十字星变形卷积模块
  • instance mask 模块

步骤:

  • 首先基于CornerNet pipline生成候选角点
  • 然后对于所有候选角点,通过向心偏移模块来得到高质量的匹配的角点对并生成最终的预测边界框。(向心偏移模块预测角点的向心偏移,并匹配角点对,其从其位置解码的偏移结果与向心偏移对齐)。
  • 然后,交叉星可变形卷积,它的偏移场是从角到相应中心的偏移中学习,进行特征适应,丰富角位置的视觉特征,这对于提高向心位移模块的精度是很重要的。
  • 最后,添加了一个实例掩码模块来进一步提高检测性能,并将该方法扩展到实例分割区域。该方法以向心位移模块的预测边框为region proposals,利用RoIAlign提取region特征,并利用小型卷积网络对分割掩码进行预测。centrpetalnet是端到端训练的,可以使用或不使用实例分割模块进行推理。

3.2 Centripetal Shift Module

3.2.1 Centripetal shift

对于 $ bboxi=(tlxi,tlyi,brxi,bry^i) $,其几何中心为:

( c t x i , c t y i = ( t l x i , b r x i 2 , t l y i , b r y i 2 ) ) \left(c t x^{i}, c t y^{i}=\left(\frac{t l x^{i}, b r x^{i}}{2}, \frac{t l y^{i}, b r y^{i}}{2}\right)\right) (ctxi,ctyi=(2tlxi,brxi,2tlyi,bryi)).

文中定义对 top-left 角点和 bottom-right 角点的向心偏移分别为:

img

log的作用: 降低向心偏移的数值范围,使得学习更容易。

训练过程中,在真实 corner 的位置,使用 smooth L1 loss,其中 N 为一个训练样本中GT的个数:

在这里插入图片描述

3.2.2 Corner Matching

为了匹配角点,我们设计了一种利用角点的向心位移和位置进行匹配的方法。一对属于同一边界框的角应共享该框的中心,这是直观和合理的。由于我们可以从预测角点的位置和向心位移来解码对应的预测角点中心,因此很容易比较一对角点的中心是否足够接近,并且该两个中心是否接近由角点对组成的 bounding-box 的中心,如图3(c)所示。基于上述观察,我们的方法如下。从角点热图和局部偏移特征图中提取角点后,对同一类别的角点进行分组,满足 t l x < b r x < t l y < b r y tlx<brx<tly<bry tlx<brx<tly<bry的条件,即可构造出预测的边界盒 b b o x i bbox^i bboxi。对于每个边界框b,我们将其得分设置为其角点得分的几何平均值,这是通过在预测的角点热图上应用 softmax 获得的。

img

然后,如图3所示,我们将每个边界框的中心区域定义为等式3,以比较解码中心和边界框中心的接近度。

img

R c e n t r a l R_{central} Rcentral 的角点用下列公式计算:

img

其中, 0 < μ ≤ 1 0<μ≤1 0<μ1 表示中心区域的宽度和高度是边界框的宽度和高度的 μ 倍。通过向心偏移,可以分别解码左上角和右下角的中心$ (tl_{ctx},tl_{cty}) ,(br_{ctx},br_{cty}) $

然后计算满足 ( t l c t x , t l c t y ) ∈ R c e n t r a l j ∧ ( b r c t x , b r c t y ) ∈ R c e n t r a l j \left(t l_{c t x}, t l_{c t y}\right) \in R_{c e n t r a l}^{j} \wedge\left(b r_{c t x}, b r_{c t y}\right) \in R_{c e n t r a l}^{j} (tlctx,tlcty)Rcentralj(brctx,brcty)Rcentralj的box的得分权重 w j w_j wj,这意味着回归的中心越接近,预测的box有更高的得分权重。对于其他边界框,我们将 w j w_j wj设置为0。最后,我们可以通过乘以得分权重对预测的边界框重新打分。

3.3 Cross-star deformable convolution

由于 corner-pooling,在feature map 中有一些“cross-star”,如图4(a)所示。“cross-star”的边界保留了对象的大量上下文信息,因为 corner-pooling 使用max和sum 操作将对象的位置信息沿“cross-star”边界扩展到角。要获取“十字星”的上下文信息,不仅需要一个大的感受野,还需要学习“十字星”的几何结构。基于上述直觉,我们提出了一种新的卷积运算,即十字星可变形卷积,以增强角点的视觉特征。

img

我们提出的跨星可变形卷积如图2所示。首先,将角 corner pooling 特征映射输入到跨星可变形卷积模块中。为了了解可变形卷积中十字星的几何结构,我们可以利用对应物体的大小来显式地引导偏移场分支,因为我们发现十字星的形状与包围盒的形状有关。不过,以左上角为例,他们自然应该少注意“十字星”的左上角,因为物体外有更多无用的信息。因此,我们将一个 guiding shift,如图3(b)所示,从角到中心的移位,包含形状和方向信息,嵌入到偏移字段分支。具体地,偏移场在三个卷积层上执行。前两个卷积层将角池输出嵌入到特征映射中,特征映射受以下损失的监督:

img

第二卷积层将上述特征映射到偏移场,偏移场显式地包含上下文和几何信息。通过可视化如图7c所示的学习偏移场,我们的跨星可变形卷积可以有效地学习“跨星”的几何信息并提取“跨星”边界的信息。

3.4 Instance Mask Head

为了得到实例分割掩码,作者将soft-nms前的检测结果作为region proposals,并利用全卷积神经网络对掩码进行预测。为了保证检测模块能够产生方案,作者首先对中心网进行了几个时代的预训练。选择得分最高的k个提案,然后在主干网的特征图上进行RoIAlign,得到它们的特征。作者将RoIAlign的尺寸设置为14×14,并预测得到一个28×28的掩模。在得到RoI的特性后,作者应用连续四个3×3层卷积,然后用一层反卷积upsample特性映射到28×28 mask地图。在训练过程中,作者对每个区域的方案应用交叉熵损失。

4. 实验

(1)COCO数据集比较:
在这里插入图片描述
在这里插入图片描述

(2)分割:
在这里插入图片描述

(3)对比实验:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文笔记之CentripetalNet 的相关文章

  • 导入别人的android studio项目

    在导入别人的android studio项目 假设为项目A 时 会遇到gradle不一致的情况 以下简短介绍解决方法 1 打开要导入的项目的目录 删除下图红框中的文件 2 找到自己以前在自己的android studio的任一项目 假设为项
  • 使用MATLAB快速搭建神经网络实现分类任务(模式识别)(附源码)

    使用神经网络能执行几种典型的任务 聚类 拟合 分类 模式识别 以及时间序列预测 其中分类任务可以说是最常应用的场景之一 在之前的文章里也使用了分类任务作为案例对神经网络进行了入门讲解 时常遇到想要使用神经网络快速地实现分类的同学 今天就讲一

随机推荐

  • Javascript中的shift() 、unshift() 和 pop()、push()区别

    定义一组数据 对其进行添加删除操作 unshift 从头部插入数据 向数组的开头添加一个或更多元素 并返回新的长度 shift 从头部删除数据 把数组的第一个元素从其中删除 并返回第一个元素的值 push 从尾部插入数据 向数组的末尾添加一
  • echarts饼图相关配置及效果展示

    const valData xAxis series data name item typeName value item ylFee feeRatio item feeRatio circleRatio item circleRatio
  • 网络编程6——多线程并发服务器实现(线程分离

    recall一下 代码实现 还是要先封装wrap h 1 socket 2 bind 绑定端口 注意参数 定义初始化强转化 3 listen函数 限定同时访问数 4 loop中 accept等待连接 注意参数 第三个参数长度的类型是sock
  • [lammps教程]OVITO绘制原子应力云图

    在我们用分子动力学模拟力学性能时 应力应变云图是我们模拟结果中常常出现的 如下图为分子动力学的铜铅合金拉伸变形特性的研究一文中铜铅合金剪应力云图 本文介绍如何利用OVITO软件绘制原子应力云图 图参考自 韩浏淼 基于分子动力学的铜铅合金拉伸
  • (附源码)计算机毕业设计SSM基于Eclipse的大学生自我管理系统

    附源码 计算机毕业设计SSM基于Eclipse的大学生自我管理系统 项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe My
  • mybatis中 #{}和${}的区别

    简明的解释 是预编译处理 是字符串替换 当做占位符来用 mybatis在处理 时 会将sql中的 替换为 号 调用PreparedStatement的 set方法来赋值 mybatis在处理 时 就是把 替换成变量的值 使用 可以有效的防止
  • AD20元件重叠绿色报错的解决方法,距离太近绿色报错

    有时因为元件靠的太近而导致绿色的报错 但在实际中这样使用是没有问题的 可以人为的消除掉元件间距离检查 距离太近报错的修改方法 设计 规则 将 ComponentClearance 中的 最小间距 都改为 0 最小间距设置为0后 要人为仔细检
  • 四、mybatis第四节

    一 分页插件PageHelper 在我们日常使用中 缺少不了分页查询 就好比你百度时 那么多的数据 肯定需要分页来处理 那么我们就可以用分页插件来帮我们快速实现分页查询操作 首先了解一下分页查询的sql语句 select from 表名 w
  • Docker入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

    目录 一 Docker概述 1 1 Docker 为什么出现 1 2 Dorker历史 1 3 能做什么 虚拟机技术 通过 软件 模拟的具有完整 硬件 系统功能的 运行在一个完全 隔离 环境中的完整 计算机系统 容器化技术 容器化技术不是模
  • PCB走线线宽电流对照表

    在PCB设计的过程中 大电流电路需要特别留意其参数 其几个个决定性因数包括 材质 厚度和宽度 下表为普通铜电路板计算参考
  • LayUI框架——选项卡

    目录 前言 1 动态实现选项卡 1 1 优化dao类 1 2 优化前端JSP页面 1 3 引入头部hand jsp页面 1 4 优化后台主界面js 2 运行效果图 前言 首先效果展示 1 动态实现选项卡 继 上篇博客 实现的导航栏 本篇实现
  • c语言分支结构程序设计教学设计 赛课,《分支结构程序设计》教学设计.doc

    分支结构程序设计 教学设计 潮州市饶平县华侨中学 邮编515700 张远航 Email zyuanhang 教学分析与教学设计思路 一 教学对象分析与教学设计 本教案适用于高中二年级学生 这一阶段的学生具备一定的数学基础和具有一定的比较 归
  • 利用python编程,制作自己的游戏“外挂”!

    Python简介及应用领域 Python是一种解释型脚本语言 可以应用于以下领域 Web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 软件开发 后端开发 网络爬虫 编程用的好 不仅可以提高工作效率 还能让玩游戏变
  • FastAPI学习(二)——FastAPI+Jinjia2模板渲染网页(跳转返回渲染页面)

    文章目录 一 简单实现 1 依赖库安装 2 建立目录 3 item html文件代码 4 main py文件代码 5 浏览器输入 二 借用bootstrap模板 1 目录结构与名称 2 index html代码 3 main py代码 4
  • 值得收藏 Modbus RTU 协议详解

    值得收藏 Modbus RTU 协议详解 目录 值得收藏 Modbus RTU 协议详解 Modbus是什么 Modbus分类 Modbus通讯过程 Modbus RTU协议数据帧结构 功能码01 读线圈状态 功能码02 读离散量输入 功能
  • matlab 锐化降噪,matlab 图形锐化 滤波

    help imread help fspecial imfilt 帮助稳定中有较多的示例 fspecial 函数 功能 产生预定义滤波器 格式 H fspecial type H fspecial gaussian n sigma 高斯低通
  • 精密全波整流电路

    精密全波整流电路 单运放型 利用单运放构成的精密全波整流电路主要有两种 一种称之为 T 型 另一种称为 型 T 型精密全波整流电路的原理图如下 图1 T型精密全波整流电路 上面电路中 R1 R3 2 R2 当输入为正电压时 D1 导通D2截
  • HarmonyOS“一次开发,多端部署“优秀实践——玩机技巧,码上起航

    随着终端设备形态日益多样化 分布式技术逐渐打破单一硬件边界 一个应用或服务 可以在不同的硬件设备之间按需调用 互助共享 让用户享受无缝的全场景体验 作为应用开发者 广泛的设备类型也能为应用带来广大的潜在用户群体 一个应用要在多类设备上提供统
  • 【vscode安装以及c++环境配置】

    TOC vscode安装以及c 环境配置 VScode安装 安装vscode vscode官方下载 C 环境配置 安装c 环境 MinGw官方下载网址 下载版本选择 Architecture 如果电脑系统是64位就选x86 64 如果电脑系
  • 论文笔记之CentripetalNet

    提出使用向心偏移来对同一实例中的角点进行配对 此外又设计了一个 corner star deformable convolution network 十字星可变形卷积网络来适应corner特征 CVPR2020接收 论文地址 https a