当前位置: 首页 > news >正文

可变形卷积(可以观察到变形图片的卷积)【DCNv1、DCNv2、DCNv3】

一、DCNv1——可以观察到扭曲的图片

1.传统卷积的问题

在普通的卷积操作中,比如 3×3 卷积,采样的位置总是固定的:就是中间一个点,四周八个点,整齐地排成一个小网格。
但现实中的图像并不整齐——比如猫的身体弯着、车被遮挡、手是歪的,固定采样会错过关键特征

所以:普通卷积就像一把死板的尺子,不管对象怎么变,它都照原样量,当然不准。

2.核心思路

引入可学习的偏移量,使卷积核的采样位置不再固定,而是根据图像内容动态调整。

3.实现方式:

(1)预测偏移

    • 用一个小卷积网络,输入图片特征,输出一堆偏移量。
    • 如果是 3×3 卷积,要预测 9 个位置的偏移,每个有 (Δx, Δy),所以是 18 个通道。

(2)采样时加上偏移

    • 每个卷积点都按照它自己的偏移,去图像的**“新位置”**取值。
    • 比如本来取 (5,5),现在加偏移可能是 (5.3, 4.7)。

(3)双线性插值

    • 因为偏移后的点不一定是整数坐标,需要用插值方法从周围 4 个整数点“推测”出它的值。
    • 插值是可微的,网络能正常训练。

4.优势:

  • 看得更灵活:可以适应图像里扭曲、弯曲、遮挡的目标;
  • 更准确提特征:比如边缘、纹理位置变化了,它也能跟着调整;
  • 可以直接加到现有网络里:像加普通卷积层一样简单。

5.局限:

  • 所有采样点“权重”一样:虽然位置能动,但不能判断哪个点更重要;
  • 计算量变大了:多了一个偏移预测网络,还得插值;
  • 有时学不好:训练初期可能学到一些奇怪的偏移(比如跑出图像外面)。

二、DCNv2——可以学会哪个点更重要(先动再选)

1.核心思路:

通过引入 调制机制(Modulation),为每个采样点增加一个可学习的权重。
在 DCNv1 的基础上引入调制机制(modulation),为每个采样点增加一个可学习的标量权重。

2.实现方式:

(1)偏移预测

    • 和 DCNv1 一样,预测每个采样点的偏移量(2N 通道)。

(2)调制系数预测

    • 额外预测 N 个标量调制因子(1 个采样点对应 1 个),加起来共输出 3N 通道。

(3)调制机制

    • 每个采样点的特征,除了“去哪取值”之外,还要乘以一个 sigmoid 激活的权重系数,表示其贡献程度。

(4)插值与卷积

    • 偏移位置采样后,通过双线性插值得到值,再与调制系数相乘,最后进行卷积加权求和。

3.优势:

  • 更智能:不仅采样位置能变,还能学会“重要点多看一眼”;
  • 提升性能:在目标检测、实例分割等任务中效果更好;
  • 兼容性好:仍可作为 Drop-in 模块替代普通卷积。

4.局限:

  • 结构变复杂偏移和调制是两个分支,训练起来更复杂;
  • 计算开销增大:预测分支 + 插值过程都增加了时间成本;
  • 数值不精确问题:仍依赖双线性插值,可能会有信息损失。

三、DCNv3——一步完成v1(偏移)和v2(调制)

1.核心机制:

引入 统一的注意力机制,把“采样点该往哪看”和“采样点贡献大小”这两件事一次性学完,并去除插值操作,进一步提升计算效率和适配能力。

2.实现方式:

(1)融合式注意力预测

    • 用一个注意力模块,直接预测出每个采样点的位置偏移 + 权重(重要性),实现偏移建模 + 权重建模合二为一。

(2)替代插值机制

    • 不再使用双线性插值,转而使用更高效的 Grid Sampling + 点间加权融合机制,数值更稳定,速度更快。

(3)多头并行结构

    • 与 Transformer 接轨,支持像多头注意力一样的并行建模,适配 Swin Transformer、ConvNeXt 等新架构。

3.优势:

  • 更高效:模块设计紧凑,无需单独预测偏移和权重;
  • 更强表达能力:空间建模与注意力建模一起做;
  • 更强兼容性:适合 Transformer、CNN 等混合结构;
  • 更好性能:在多个主流任务中表现领先(检测、分割、关键点定位等)。

4.局限:

  • 理论结构更复杂:引入了注意力机制和融合预测,需要更精细的工程优化;
  • 学习曲线更陡峭:不如 DCNv1/v2 直观易懂,代码也更复杂。

相关文章:

可变形卷积(可以观察到变形图片的卷积)【DCNv1、DCNv2、DCNv3】

一、DCNv1——可以观察到扭曲的图片 1.传统卷积的问题 在普通的卷积操作中,比如 33 卷积,采样的位置总是固定的:就是中间一个点,四周八个点,整齐地排成一个小网格。 但现实中的图像并不整齐——比如猫的身体弯着、车…...

vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据

基础用法不太明白的请参考官网文档 &#xff1b;element ui Plus官网&#xff1a;Table 表格 | Element PlusA Vue 3 based component library for designers and developershttps://element-plus.org/zh-CN/component/table.html 1、添加一个基础表格 <template><e…...

Selenium 怎么加入代理IP,以及怎么检测爬虫运行的时候,是否用了代理IP?

使用selenium爬虫的时候&#xff0c;如果不加入代理IP&#xff0c;很容易会被网站识别&#xff0c;容易封号&#xff1b; 最近去了解了一下买代理ip&#xff0c;但是还是有一些不太懂的东西。 例如有了代理ip以后&#xff0c;怎么用在爬虫上&#xff0c;requests 和selenium的…...

【Python爬虫实战篇】--Selenium爬取Mysteel数据

任务&#xff1a;爬取我的钢铁网的钢材价格指数数据&#xff0c;需要输入时间和钢材类型 网站&#xff1a;钢铁价格指数_今日钢铁价格指数实时行情走势_我的钢铁指数 目录 1.环境搭建 2.打开网站 3.点击右侧按钮展开 4.点击需要的钢材数据 5.点击“按日查询” 6.输入日查…...

LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用

系列文章目录 参考博客 参考博客 参考博客 参考博客 文章目录 系列文章目录前言一、OpenManus介绍二、环境搭建1.DockervLLM2.搭建OpenManus1&#xff09;安装anaconda虚拟环境2&#xff09;安装OpenManus3&#xff09;下载并配置Qwen2.5-32B-Instruct模型4&#xff09;配置与…...

aarcpy 列表函数的使用(1)

arcpy.ListFeatureClasses() 该函数用于列出指定工作空间中的所有要素类。可以通过通配符和过滤条件进一步筛选结果。 语法&#xff1a; python arcpy.ListFeatureClasses(wild_cardNone, feature_typeNone)• wild_card&#xff1a;用于筛选要素类名称的通配符&#xff0c;…...

maven工程中引入外部jar

1、引入模块下的jar 1.负责打包的模块&#xff0c;pom中加上这个插件&#xff0c;这个可以把外部jar包打入工程中。 <!-- 打包 --> <build><finalName>xxx-send-admin</finalName><resources><resource><directory>${project.base…...

C++智能指针上

一、裸指针 “裸指针”是最基础的&#xff0c;直接存储内存地址的指针类型。特点&#xff1a;①它本身没有自动的内存管理机制&#xff1a;如它不会自动释放内存&#xff0c;也不会检查是否指向有效的内存区域&#xff1b;②直接操作内存地址&#xff0c;不进行任何的边界检查&…...

flutter 中各种日志

日志方法对比 输出方式调试模式控制台输出发布模式控制台输出DevTools Logging 视图print()✅ 显示✅ 显示❌ 不显示debugPrint()✅ 显示✅ 显示❌ 不显示stderr.writeln()✅ 显示✅ 显示✅ 显示dart:developer.log()✅ 显示❌ 不显示✅ 显示 详细说明&#xff1a; print()&a…...

Java面试:从Spring Boot到微服务的全面考核

Java面试&#xff1a;从Spring Boot到微服务的全面考核 场景设定&#xff1a; 在一家互联网大厂的面试室内&#xff0c;严肃的面试官正准备开始对前来面试的赵大宝进行技术考核。赵大宝是一位自称在Java开发方面经验丰富的求职者&#xff0c;不过却是个搞笑的水货程序员。 第…...

安卓adb shell串口基础指令

目录 前言一、列出串口设备节点二、修改串口设备权限三、串口参数配置&#xff08;stty命令&#xff09;3.1 基本配置3.2 其他常用参数3.3 查看当前配置 四、数据收发操作4.1 发送数据4.2 接受数据 参考链接: 前言 在 Android 设备上&#xff0c;ADB提供了一系列命令用于与设备…...

大模型技术全景解析:从基础架构到Prompt工程

大模型技术全景解析&#xff1a;从基础架构到Prompt工程 引言 近年来&#xff0c;大型语言模型(LLMs)如GPT、BERT等取得了突破性进展&#xff0c;彻底改变了自然语言处理领域。本文将全面剖析大模型的核心技术要素&#xff0c;包括三要素构成、系统架构、机器学习范式演进、P…...

404页面精选(一)翻滚盒子

内容很详细&#xff0c;直接上代码 效果演示 源码 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>翻滚盒子</title><style>body {background: #000;h…...

LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下

LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下 一、下载后端源码 我们学习一下他的前后端分离的项目吧RuoYi-Vue,我看他有单独的Vue3版本的项目,我们就整这新的吧,向新新势力低头。 1、下载地址 git clone https://gitcode.com/yangzongzhuan/RuoYi-Vue.git2、…...

Hadoop基础知识

Hadoop 是由 Apache 基金会开发的开源分布式计算框架&#xff0c;主要用于处理海量数据的存储和计算问题。其核心设计基于 Google 的 MapReduce 编程模型和 GFS&#xff08;Google File System&#xff09;&#xff0c;旨在通过集群化的廉价硬件实现高可靠性、高扩展性的大数据…...

第1讲:Transformers 的崛起:从RNN到Self-Attention

序列建模的演进之路 一、RNN&#xff08; Recurrent Neural Networks&#xff09;&#xff1a;序列处理的开拓者 循环神经网络(RNN)是最早处理序列数据的深度学习结构。RNN的核心思想是在处理序列的每个时间步时保持一个"记忆"状态。 h_t tanh(W_x * x_t W_h * …...

经验分享 | 如何高效使用 `git commit --amend` 修改提交记录

背景 在「地面智能观测项目」这种多模块协作的物联网系统中&#xff0c;版本迭代频率高达每周3次。每个部署包&#xff08;如v0.3.19&#xff09;都包含硬件控制脚本、数据处理模块和部署工具&#xff0c;任何提交遗漏都可能导致部署失败。传统的新建提交方式会造成冗余记录&a…...

生物创新药研发为何要上电子实验记录本?

前言&#xff1a;数据驱动的生物创新药研发新范式 在精准医疗时代&#xff0c;生物创新药以其靶向性强、疗效确切的优势&#xff0c;成为肿瘤、自身免疫性疾病等复杂病症的核心治疗方案。国家"十四五" 规划明确将生物制药列为战略性新兴产业&#xff0c;各地政府纷纷…...

PH热榜 | 2025-04-24

1. Peek 标语&#xff1a;AI个人财务教练&#xff0c;帮你做出明智的财务决策。 介绍&#xff1a;Peek的人工智能助手能够主动进行财务检查&#xff0c;分析你的消费模式&#xff0c;并以一种细腻而积极的方式帮助你改善习惯。完全没有评判&#xff0c;也没有负罪感。就像为你…...

民锋视角下的节奏判断与资金行为建模

民锋视角下的节奏判断与资金行为建模 在市场节奏的研判中&#xff0c;行为模型始终是构建逻辑核心。以民锋为代表的一类研究视角&#xff0c;更关注的是微观结构中的资金行为痕迹&#xff0c;而非单一技术形态。 节奏并非由K线决定&#xff0c;而是由成交密度与换手效率共同塑…...

Debian服务器上JSP页面无法加载如何解决?

如果你在 Debian 服务器上部署 JSP 页面无法加载&#xff0c;可以按以下步骤排查和解决问题&#xff1a; 1. 确认安装了 Java 环境 JSP 需要 Java 支持&#xff0c;先确认 Java 是否安装并配置好&#xff1a; java -version如果未安装&#xff0c;使用如下命令安装 OpenJDK&…...

第三篇:Django创建表关系及生命周期流程图

第三篇&#xff1a;Django创建表关系及生命周期流程图 文章目录 第三篇&#xff1a;Django创建表关系及生命周期流程图一、Django中orm创建表关系一、数据库中的表关系二、创建表 二、Django请求生命周期流程图 一、Django中orm创建表关系 一、数据库中的表关系 我们可以通过…...

【玩泰山派】7、玩linux桌面环境xfce - (2)音视频,yt-dlp下载工具、parole播放器

文章目录 前言yt-dlpyt-dlp概述发展背景特点应用场景使用方式局限性 安装yt-dlpyt-dlp常用命令直接下载默认格式指定格式 查看视频所有分辨率下载指定分辨率参考 parole播放器使用Parole概述源码地址使用 前言 前面安装了ubuntu Xfce桌面环境(xubuntu-desktop)&#xff0c;现在…...

【文献速递】NMR代谢组寻找预测DR发展的候选标志物

2024年7月5日&#xff0c;中山大学中山眼科中心王伟教授团队在Ophthalmology&#xff08;IF&#xff1a;13.2&#xff09;上发表了题为“Plasma Metabolomics Identifies Key Metabolites and Improves Prediction of Diabetic Retinopathy&#xff1a;Development and Validat…...

flask学习(1)

1.基本框架 from flask import Flask app Flask(__name__)app.route(/) def hello():return "<h1>Hello, Flask in Conda!</h1>"if __name__ __main__:app.run(host0.0.0.0, port5000, debugTrue) # 关键行&#xff01; 在此基础上 from flask imp…...

详解springcloudalibaba采用prometheus+grafana实现服务监控

1.官网下载安装 prometheus和grafana promethus 官网&#xff1a;https://prometheus.io/ 1.下载windows版本安装包 2.双击启动 3.访问地址 http://localhost:9090 grafana 官网&#xff1a;https://grafana.com/ 1.下载windows版本安装包 2.启动 &#xff0c;默认windo…...

Java查询数据库表信息导出Word

参考: POI生成Word多级标题格式_poi设置word标题-CSDN博客 1.概述 使用jdbc查询数据库把表信息导出为word文档, 导出为word时需要下载word模板文件。 已实现数据库: KingbaseES, 实现代码: 点击跳转 2.效果图 2.1.生成word内容 所有数据库合并 数据库不合并 2.2.生成文件…...

【金仓数据库征文】从云计算到区块链:金仓数据库的颠覆性创新之路

目录 一、引言 二、金仓数据库概述 2.1 金仓数据库的背景 2.2 核心技术特点 2.3 行业应用案例 三、金仓数据库的产品优化提案 3.1 性能优化 3.1.1 查询优化 3.1.2 索引优化 3.1.3 缓存优化 3.2 可扩展性优化 3.2.1 水平扩展与分区设计 3.2.2 负载均衡与读写分离 …...

Kotlin函数体详解:表达式函数体 vs 代码块函数体——使用场景与最佳实践

&#x1f9e9; 什么是表达式函数体&#xff08;Expression Body&#xff09;&#xff1f; 表达式函数体指的是使用 号直接返回一个表达式结果的函数写法。 ✅ 示例&#xff1a; fun add(x: Int, y: Int): Int x y这个函数的意思是&#xff1a;传入两个整数&#xff0c;返…...

【bug修复】一次诡异的接口数据显示 bug 排查之旅

一次诡异的接口数据显示 bug 排查之旅 在后端开发的日常中&#xff0c;总会遇到一些让人摸不着头脑的 bug&#xff0c;最近我就经历了一个颇为诡异的情况。接口接收到的响应 data 对象里字段明明都有值&#xff0c;但直接打印到控制台却显示空字符串&#xff0c;最后通过一个简…...

C++ RPC以及cmake

目录 1.RPC概念 2.RPC实现计算举例 3.python进行rpc调用 4.thrift实现分布式容器创建 5.阶段总结 6.cmake简介 7.cmake使用的一般步骤 8.cmake编译多层次文件 9.cmake编译多种交付件 1.RPC概念 # 1.需求分析 靠谱的商用项目不是只有一个可执行程序就够了的。好的商用…...

数字隔离器,筑牢AC-DC数字电源中的“安全防线”

在传统工业与现代科技高速交融的发展浪潮中&#xff0c;AC-DC数字电源作为电能转换的核心枢纽&#xff0c;不仅能将交流电精准地转化为直流电&#xff0c;还可通过软件编程实现电流限制、过温保护与设定输出电压等多种功能&#xff0c;是现代众多电力电子基础设施中不可或缺的精…...

使用“复合索引”和不使用“复合索引”的优化对比

目录 1.创建数据库 2.未创建索引 3.创建索引 4.结论 1.创建数据库 CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,customer_id INT,order_date DATE,total_amount DECIMAL(10, 2));插入数据&#xff1a; INSERT INTO orders (customer_id, order_date, t…...

.NETCore部署流程

资料下载&#xff1a;https://download.csdn.net/download/ly1h1/90684992 1.下载托管包托管捆绑包 | Microsoft Learn&#xff0c;下载后点击安装即可。 2.安装IIS 3.打开VS2022&#xff0c;新建项目&#xff0c;选择ASP.NET Core Web API 5.Program修改启动项&#xff0c;取…...

深入解析微软MarkitDown:原理、应用与二次开发指南

一、项目背景与技术定位 微软开源的MarkitDown并非简单的又一个Markdown解析器&#xff0c;而是针对现代文档处理需求设计的工具链核心组件。该项目诞生于微软内部大规模文档系统的开发实践&#xff0c;旨在解决以下技术痛点&#xff1a; 大规模文档处理性能&#xff1a;能够高…...

Rust 2025:内存安全革命与异步编程新纪元

Rust 2025 Edition通过区域内存管理、泛型关联类型和零成本异步框架三大革新&#xff0c;重新定义系统级编程语言的能力边界。本次升级不仅将内存安全验证效率提升80%&#xff0c;更通过异步执行器架构优化实现微秒级任务切换。本文从编译器原理、运行时机制、编程范式转型三个…...

Vue3 setup、计算属性、侦听器、响应式API

一、setup 一、setup 函数基础 作用&#xff1a;组合式 API 的入口&#xff0c;用于定义响应式数据、方法和生命周期钩子 执行时机&#xff1a;在 beforeCreate 之前调用&#xff0c;此时组件实例尚未创建 基本结构&#xff1a; export default {setup(props, context) {/…...

从内核到应用层:深度剖析信号捕捉技术栈(含sigaction系统调用/SIGCHLD回收/volatile内存屏障)

Linux系列 文章目录 Linux系列前言一、进程对信号的捕捉1.1 内核对信号的捕捉1.2 sigaction()函数1.3 信号集的修改时机 二、可重入函数三、volatile关键字四、SIGCHLD信号 前言 Linux系统中&#xff0c;信号捕捉是指进程可以通过设置信号处理函数来响应特定信号。通过信号捕捉…...

【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器截断与溢出

文章目录 前言一、寄存器与存储器1. 定义与基本概念寄存器(Register)位置功能特点存储器(Memory)位置功能特点2. 关键区别3. 层级关系与协作存储层次结构协作示例4. 为什么需要寄存器性能优化指令支持减少总线竞争5. 其他寄存器类型专用寄存器程序计数器(PC)栈指针(SP)…...

Python torchvision.datasets 下常用数据集配置和使用方法

torchvision.datasets 提供了许多常用的数据集类&#xff0c;以下是一些常用方法&#xff08;datasets中有大量数据集处理方法&#xff0c;这里仅展示了部分数据集处理方法&#xff09;及其实现类的介绍、用法和输入参数解释&#xff1a; CIFAR CIFAR10 &#xff1a;包含 10 个…...

unity使用iTextSharp生成PDF文件

iTextSharp 可以在VS中工具下面得NuGet包管理器中下载 &#xff0c;具体操作可以搜一下 很多 &#xff0c; 我直接把我得生成pdf代码附上 我这个是生成我一个csv文件内容和图片 using System.IO; using UnityEngine; using iTextSharp.text; using iTextSharp.text.pdf; using…...

django admin 添加自定义页面

在Django中&#xff0c;你可以通过多种方式向Django Admin添加自定义页面。以下是一些常见的方法&#xff1a; 方法1&#xff1a;使用ModelAdmin的get_urls()方法 如果你只是想添加一个简单的页面来展示信息&#xff0c;你可以在你的ModelAdmin类中重写get_urls()方法。 from…...

Java并发编程|CompletableFuture原理与实战:从链式操作到异步编排

🔥 本文系统讲解Java并发编程核心类CompletableFuture,涵盖线程池配置策略、异步编程实践、异常处理机制等关键技术。通过电商订单系统与物流调度实战案例,深度解析:1)CompletableFuture链式操作与异步编排 2)多线程任务聚合与结果处理 3)生产级异常处理方案 4)组合操…...

动态自适应分区算法(DAPS)设计流程详解

动态自适应分区算法&#xff08;Dynamic Adaptive Partitioning System, DAPS&#xff09;是一种通过实时监测系统状态并动态调整资源分配策略的智能算法&#xff0c;广泛应用于缓存优化、分布式系统、工业制造等领域。本文将从设计流程的核心步骤出发&#xff0c;结合数学模型…...

优雅实现网页弹窗提示功能:JavaScript与CSS完美结合

在现代Web开发中&#xff0c;弹窗提示是提升用户体验的重要元素之一。本文将深入探讨如何实现一个优雅、可复用的弹窗提示系统&#xff0c;避免常见问题如重复触发、样式混乱等。 核心代码解析 // 控制弹窗是否可以显示的标志 let alertStatus true;// 显示提示信息 functio…...

LeetCode-Hot100

数组 1.数组——最大子数组和 解题思路&#xff1a;动态规划 动态规划解决问题的步骤&#xff1a;1.理解题意。题目要求只返回结果&#xff0c;不要求得到最大的连续子数组的哪一个&#xff0c;这样的问题常常可以用动态规划。 2.定义子问题&#xff1a;eg&#xff1a;以 −…...

【Redis】有序集合类型Sortedset 常用命令详解

此类型和 set 一样也是 string 类型元素的集合&#xff0c;且不允许重复的元素 不同的是每个元素都会关联一个double类型的分数&#xff0c;redis正是通过分数来为集合中的成员进行从小到大的排序 有序集合的成员是唯一&#xff0c;但分数(score)却可以重复 1. zadd - 添加 语法…...

前缀和-724.寻找数组的中心下标-力扣(LeetCode)

一、题目解析 我们需要求出中心下标处两边的和是否相等。 二、算法解析 解法1&#xff1a;暴力枚举 O(n*2)(时间复杂度) 固定i&#xff0c;计算[0,i-1]的和&#xff0c;计算[i1,n-1]的和&#xff0c;然后比较是否相等。遍历i为n次&#xff0c;每次计算n-1个数据的值&#xff…...

缓存与数据库数据一致性:旁路缓存、读写穿透和异步写入模式解析

旁路缓存模式、读写穿透模式和异步缓存写入模式是三种常见的缓存使用模式&#xff0c;以下是对三种经典缓存使用模式在缓存与数据库数据一致性方面更全面的分析&#xff1a; 一、旁路缓存模式&#xff08;Cache - Aside Pattern&#xff09; 1.数据读取流程 应用程序首先向缓…...

HTML邮件背景图兼容 Outlook

在 HTML 邮件中设置背景图片时&#xff0c;Outlook&#xff08;尤其是桌面版的 Outlook for Windows&#xff09;经常不会正确显示背景图&#xff0c;这是因为outlook 是使用 Word 作为邮件渲染引擎&#xff0c;而不是标准的 HTML/CSS 渲染方式。 推荐的解决方案&#xff1a;使…...