欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > CoordConv: CNN坐标感知特征适应

CoordConv: CNN坐标感知特征适应

2025/11/23 10:02:31 来源:https://blog.csdn.net/kanhao100/article/details/148509842  浏览:    关键词:CoordConv: CNN坐标感知特征适应

传统卷积 vs CoordConv 详细对比

  • 传统卷积对空间位置不敏感,CoordConv通过显式添加坐标信息解决这个问题
  • 在特征图中嵌入(x, y)坐标和可选的径向距离r
  • 使模型能够感知空间位置关系

在这里插入图片描述

1. 传统卷积的"空间位置不敏感"问题

传统卷积的特点

  • 输入: [B, C, H, W] 例如 [4, 3, 224, 224] (批次大小4,RGB 3通道,224x224图像)
  • 卷积核在整个图像上滑动时,只关心局部模式,不知道自己在图像的哪个位置
  • 例如:一个检测边缘的卷积核,无论在图像左上角还是右下角检测到边缘,输出都是一样的

问题举例

# 假设有一个3x3的卷积核
# 在位置(10,10)检测到一个边缘 -> 输出值 0.8
# 在位置(200,200)检测到同样的边缘 -> 输出值还是 0.8
# 卷积核完全不知道自己在哪个空间位置!

2. CoordConv如何解决这个问题

CoordConv的做法
在原始特征图基础上显式添加坐标通道

让我用具体数字说明:

输入变化对比:

传统卷积输入

原始输入: [B=4, C=1792, H=28, W=28]  # 来自CNN的特征图

CoordConv输入

# Step 1: 创建坐标网格
xx_channel = [[-1, -0.93, -0.86, ..., 0.86, 0.93, 1],    # 28个值,从-1到1[-1, -0.93, -0.86, ..., 0.86, 0.93, 1],    # 重复28行...[-1, -0.93, -0.86, ..., 0.86, 0.93, 1]]yy_channel = [[-1, -1, -1, ..., -1, -1, -1],              # 第一行全是-1[-0.93, -0.93, ..., -0.93, -0.93],          # 第二行全是-0.93...[1, 1, 1, ..., 1, 1, 1]]                     # 最后一行全是1# Step 2: 拼接原始特征和坐标
最终输入: [B=4, C=1792+2, H=28, W=28]  # 增加了2个坐标通道
具体的坐标值含义:
原始特征图
[B, 1792, 28, 28]
AddCoords模块
创建X坐标通道
[B, 1, 28, 28]
每行: [-1, -0.93, ..., 1]
创建Y坐标通道
[B, 1, 28, 28]
每列: [-1, -0.93, ..., 1]
拼接 concat
增强特征图
[B, 1794, 28, 28]
常规卷积处理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词