可变形卷积DCN/DConv

news2024/12/27 9:45:59

1、定义

可变形卷积是指卷积核在每一个元素上额外增加了一个方向参数,这样卷积核就能在训练过程中扩展到很大的范围,卷积核可以变成任意方向。
在这里插入图片描述
图(a)是普通卷积
图(b)、©、(d)是可变形卷积,©(d)是(b)的特例

2、为什么要使用可变形卷积?

卷积核的目的是为了提取输入的特征。我们传统的卷积核通常是固定尺寸、固定大小的,这种卷积核存在的最大问题就是,对于未知的变化适应性差,泛化能力不强。
卷积单元对输入的特征图在固定的位置进行采样;池化层不断使特征图的尺寸减小;RoI池化层产生空间位置受限的RoI等,网络内部缺乏能够解决这个问题的模块,就会产生显著的问题。
在这里插入图片描述
图a是标准卷积的采样过程,图b是可变形卷积的采样过程。最上面的图像是在大小不同的物体上的激活单元;中间层是为了得到顶层激活单元所进行的采样过程,左图是标准的3x3方阵采样,右图是非标准形状的采样,但是采样的点依然是3x3;最下面一层是为了得到中间层进行的采样区域。明显发现,可变形卷积在采样时可以更贴近物体的形状和尺寸,而标准卷积无法做到这一点。
为了解决上述问题,最直观的想法就是卷积核可以根据实际情况调整本身的形状,更好的提取输入特征。

3、可变形卷积的实现

3.1 可变形卷积的学习过程

在这里插入图片描述
上图是可变形卷积的学习过程:输入特征图同时进行普通卷积和可变形卷积操作,可变形卷积中增加的偏差(偏移量)是通过另一个平行的普通卷积层计算获得。生成的通道维度是2N,分别对应原始输出特征和偏移特征。这两个卷积核通过双线性插值后向传播算法同时学习。加上该偏移量的学习之后,可变形卷积核的大小和位置可以根据当前需要识别的图像内容进行动态调整,其直观效果就是卷积核中不同位置的采样点会根据图像内容发生自适应的位置变化,从而适应不同物体的形状、大小等几何形变。然而,这样的操作引入了一个问题,即需要对不连续的位置变量求导。作者在这里借鉴了之前Spatial Transformer Network和若干Optical Flow中warp操作的想法,使用了双线性插值将任一个位置的输出,转换成对于feature map的插值操作。同理,类似的想法可以直接用于 (ROI) Pooling中改进。

3.2 可变形卷积网络和传统网络的区别

在这里插入图片描述

3.3 可变形卷积操作的全过程

在这里插入图片描述

  • ①首先,和正常的卷积神经网络一样,利用传统的卷积核对输入图像提取特征图;
  • ②把得到的特征图作为输入,对特征图再施加一个卷积层,这么做的目的是为了得到可变形卷积的变形的偏移量;
  • ③偏移层是2N,是因为我们在平面上做平移,需要改变x值和y值两个方向。
  • ④在训练的时候,用于生成输出特征的卷积核和用于生成偏移量的卷积核是同步学习的。其中偏移量的学习是利用双线性插值算法,通过反向传播进行学习。

3.4 注意事项

Q1:如何将它变成单独的一个层,而不影响别的层?
A1:在实际操作时,并不是真正地把卷积核进行扩展,而是对卷积前图片的像素重新整合,变相地实现卷积核的扩张。也就是说,实际上变的是每次进行卷积后得到的带偏移值的坐标值,根据这些坐标取像素点,然后双线性差值,得到新feature map,然后作为输出并成为下一层的新输入。

Q2:在前向传播实现可变性卷积中,如何能有效地进行反向传播?
A2:在图片像素整合时,需要对像素进行偏移操作,偏移量的生成会产生浮点数类型,而偏移量又必须转换为整形,直接对偏移量取整的话无法进行反向传播,这时采用双线性差值的方式来得到对应的像素

3.5 可变形卷积的计算思想

在这里插入图片描述

3.6 可变形ROI池化

在这里插入图片描述
跟可变形卷积的区别就是通过传统网络所提取到的特征图还要经过普通RoI池化,把RoI池化后的feature map作为输入,对输入的feature map施加一个全连接层(不是卷积层),得到一个偏移。注意这里的偏移量要归一化,为了匹配RoI的尺寸

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx配置负载均衡到网关

Nginx配置负载均衡到网关 1.需求图示 前置准备工作 https://blog.csdn.net/qq_44981526/article/details/128599898 2.配置实现 1.在C:\Windows\System32\drivers\etc目录下修改hosts文件 #配置llpliving.com nginx虚拟机 192.168.56.100 www.llpliving.com2.配置nginx负载…

【C++】优先级队列priority_queue仿函数

这里先简单介绍一下优先级队列priority_queue:优先队列是一种容器适配器,默认的情况下,如果没有为特定的priority_queue类实例化指容器类,则使用vector (deque 也是可以的),需要支持随机访问迭代器,以便始终在内部保持堆结构 文章…

Springboot配置静态资源

目录 1. springboot默认的静态资源存放路径 2.Springboot添加静态资源映射addResourceHandlers addResourceLocations 3.坑 如果方法一和二同时配置 那么就会遵循方法二 方法一的静态文件将找不到 1. springboot默认的静态资源存放路径 静态资源的存放路径为classpath,也就是…

【卷积码系列4】卷积码的状态转移函数、距离谱和译码性能界分析及matlab仿真

一、卷积码的状态图和转移函数 以一个例子入手,对于如下编码器所示的码率1/3卷积码 根据输入和寄存器状态,可以得到其状态图如下所示 图中虚线表示输入比特为1时的转移,而实线表示输入比特为0时的转移 同样,图中虚线表示输入比特为1时的转移,而实线表示输入比特为0…

Diffusion Models从入门到放弃:必读的10篇经典论文

前言:diffusion models是现在人工智能领域最火的方向之一,并引爆了AIGC方向,一大批创业公司随之诞生。笔者2021年6月开始研究diffusion,见证了扩散模型从无人问津到炙手可热的过程,这些篇经典论文我的专栏里都详细介绍…

从0到1完成一个Vue后台管理项目(五、登录页(表单校验的使用和封装))

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…

IDEA的使用

1.安装 官网: https://www.jetbrains.com/IDEA 工作界面介绍 2.使用技巧 √设置字体和颜色主题 菜单 file -> settings √字符编码设置 可以自己设置快捷键 常用快捷键:删除当前行, 默认是 ctrl Y 自己配置 ctrl d复制当前行, 自己配置 ctrl alt 向下光…

10、可观测性--系统告警

文章目录告警的作用告警数据来源黑盒白盒日志统计指标链路追踪故障分类告警的作用 在没有告警的时候,我们一般是人工定期地查看相关的指标或者链路数据,再去程序上确认。虽然人工也能监控,但有时还是难以判定是否真的出现了问题,…

【云原生进阶之容器】第二章Controller Manager原理2.6节--Informer controller

6 Informer 的 controller DeltaFIFO 是一个非常重要的组件,真正让他发挥价值的,便是 Informer 的 controller。 虽然 Kubernetes 源码中的确用的是 controller 这个词,但是此 controller 并不是 Deployment Controller 这种资源控制器。而是一个承上启下的事件控制器(从 A…

Java并发编程学习14-任务关闭(下)

任务关闭(下) 《任务关闭》由于篇幅较多,拆分了两篇来介绍各种任务和服务的关闭机制,以及如何编写任务和服务,使它们能够优雅地处理关闭。 1. 处理非正常的线程终止 我们知道,当单线程的控制台程序由于…

Urban NeRF

本文首发于馆主君晓的博客,文章链接 简要介绍 这是谷歌和多伦多大学合作的一篇发表在CVPR2022上的工作,延续NeRF重建的相关思路。考虑到之前的一些工作要么是在合成数据集上进行的NeRF重建,要么就是用到真实的场景,但是场景很小&a…

JDK1.8和JDK1.7的HashMap源码分析以及线程不安全问题

参考: 教你如何阅读HashMap源码~吊打面试官 - 腾讯云开发者社区-腾讯云 (tencent.com) 有一些面试题 Map - HashSet & HashMap 源码解析 | Java 全栈知识体系 (pdai.tech) HashMap源码&底层数据结构分析 | JavaGuide(Java面试学习指南) hashmap头插法和尾插…

LAB1 VRRP实验

■实验拓扑 ■实验需求 多厂商的网关冗余(VRPP) 考虑上行/上上行/下行链路的之间的track 生成树配置 VPC能访问R4的loopback口地址(8.8.8.8) ■实验步骤 ▶思科路由器CISCO-R4 Router(config)#hostname CISCO-R4 CISCO-…

【博客581】为什么MASQUERADE都在POSTROUTING做

为什么MASQUERADE都在POSTROUTING做 MASQUERADE都在POSTROUTING做,为什么不能在output做 1、iptables flow graph: 2、output之后的routing和rerouting: 对于本机 app 发出(outcoming)的流量,netfilter 有2次 routing 过程&…

算法刷题打卡第59天:相交链表

相交链表 难度:简单 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 …

空洞卷积atrous/dilated convolution

1、定义 空洞卷积(atrous/dilated convolution)又称膨胀卷积是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。空洞卷积向卷积层引入了一个称为“扩张率/膨胀率(dilation rate)”的新参数,该参数定义了卷积核…

Excel 个人财务:如何在 Excel 模板中创建预算

wpcmf “金钱是一种工具。使用得当,它会变得美丽——使用不当,它会变得一团糟!” – 布拉德利文森 正确使用金钱需要纪律。在本教程中,我们将了解如何使用 Excel 进行个人财务以正确管理我们的预算和财务。我们将涵盖以下主题。 …

Java使用spire进行word文档的替换

前言 今天遇到一个需求,需要对word模板进行替换制定的变量 在网上找了很多方案,做了很多的demo,下面就把我觉得比较简单的一种分享给大家 本次的主角是:spire.doc spire.doc是专门实现对word的操作(包括文字&#…

「数据密集型系统搭建」原理篇|OLAP、OLTP,竟是两个世界

本篇来聊聊OLAP与OLTP的区别以及它们各自的适用场景,以此话题为导引和大家聊聊技术视野与知识储备对于研发同学的重要性,最后站在事务处理与在线分析的角度分别论述下两个数据世界的底层构建逻辑。 OLAP、OLTP的概念与区别 概念 了解OLAP、OLTP的概念&…

【CANN训练营第三季】学习ascend-CANN遇到的经典疑难问题总结

1、/home/HwHiAiUser/samples_1/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification/src/…/inc/utils.h:13:10: fatal error: acl/acl.h: No such file or directory #include “acl/acl.h” 原因:放错了DDK——PATH export D…