深度学习之 RefineNet

  

网络结构:

  

RefineNet block的作用就是把不同resolution level的feature map进行融合。网络结构如下:

  

最左边一栏就是FCN的encoder部分(文中是用的ResNet),先把pretrained ResNet按feature map的分辨率分成四个ResNet blocks,然后向右把四个blocks分别作为4个path通过RefineNet block进行融合refine,最后得到一个refined feature map(接softmax再双线性插值输出)。

注意除了RefineNet-4,所有的RefineNet block都是二输入的,用于融合不同level做refine,而单输入的RefineNet-4可以看作是先对ResNet的一个task adaptation。

  
RefineNet Block

  

接下来仔细看一下RefineNet block,可以看到主要组成部分是Residual convolution unit, Multi-resolution fusion, Chained residual pooling, Output convolutions. 切记这个block作用是融合多个level的feature map输出单个level的feature map,但具体的实现应该是和输入个数、shape无关的。

  

Residual convolution unit就是普通的去除了BN的residual unit;

  

Multi-resolution fusion是先对多输入的feature map都用一个卷积层进行adaptation(都化到最小的feature map的shape),再上采样再做element-wise的相加。注意如果是像RefineNet-4那样的单输入block这一部分就直接pass了;

  

Chained residual pooling中的ReLU对接下来池化的有效性很重要,还可以使模型对学习率的变化没这么敏感。这个链式结构能从很大范围区域上获取背景context。另外,这个结构中大量使用了identity mapping这样的连接,无论长距离或者短距离的,这样的结构允许梯度从一个block直接向其他任一block传播。

  

Output convolutions就是输出前再加一个RCU。

相关推荐
Shockang8 小时前
AI 设计工作流全景拆解:Figma MCP / Claude Design / Codex / Google Stitch
人工智能
To_OC10 小时前
数据集划分不是随便切:手把手切分大众点评情感数据集
人工智能·llm·agent
冬奇Lab10 小时前
每日一个开源项目(第142篇):android/skills - Google 官方 Android 开发 AI Skill 库
人工智能·开源·资讯
冬奇Lab10 小时前
Skill 系列(06):Skill 工程化与治理——路由准确率 38%、压缩节省 76%
人工智能·开源·agent
IT_陈寒12 小时前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
新新技术迷13 小时前
Node给AI接口做SSE代理与鉴权
人工智能
redreamSo14 小时前
大模型是不是到顶了?瓶颈到底在哪
人工智能·openai
Oo92014 小时前
Tool Use 背后的技术逻辑
人工智能
姗姗来迟了14 小时前
Vue3封装AI流式对话组件踩坑实录
人工智能