RAFT: Recurrent All-Pairs Field Transforms for Optical Flow是ECCV 2020的Best paper,在看文章时对这个4D相关层感到非常困惑,发现网上也没有很好的资料,思考后聊一聊自己的理解,希望可以帮到大家。

此图说,对两张特征图取内积就可以得到4D volume,其维度为 H ∗ W ∗ H ∗ W H*W*H*W H∗W∗H∗W。在我以往学到的知识中,内积就是两向量对应相乘再相加,此处无法通过以往知识去想象两张图片的内积为什么能生成4D的张量。

一、相关性计算

本文的correlation volumes叫full correlation volumes,也就是Image1的每个点与Image2的所有点都计算相关性。这一对图片都是3维图片(彩色图片)。

其中 i , j i,j i,j为Image1的行列, k , l k,l k,l为image2的行列, h h h为通道数。
C 1111 = C_{1111}= C1111​= 两图第一个通道 ( 1 , 1 ) (1,1) (1,1)位置相乘 + 两图第二个通道 ( 1 , 1 ) (1,1) (1,1)位置相乘 + 两图第三个通道 ( 1 , 1 ) (1,1) (1,1)位置相乘。
如果Image1 ( 1 , 1 ) (1,1) (1,1)与Image2的所有点计算相关,现在可以想象结果是一个 H ∗ W H*W H∗W的矩阵。
那么如果Image1所有的点(也就是 H ∗ W H*W H∗W个点)与Image2的所有点计算相关-> H ∗ W H*W H∗W个 H ∗ W H*W H∗W矩阵->4D张量 H ∗ W ∗ H ∗ W H*W*H*W H∗W∗H∗W。
到这里就已经解释了为什么两张彩色图片计算full correlation volumes得出的是4D的张量。

二、相关金字塔



已知两张图片做相关性是4D张量,文中说对最后两个维度做pooling也就是 H ∗ W ∗ H ∗ W H*W*H*W H∗W∗H∗W中的第二个 H ∗ W H*W H∗W,此金字塔为4层的,每一层都只对后面两个维度做pooling。那么前三层如图所示,文中说此操作即可以保证图片的高分辨率信息(第一个 H ∗ W H*W H∗W不变)又可以保证追踪小位移运动(第二个 H ∗ W H*W H∗W池化)。

因为前两层应该是Image1第一个点对Image2所有点进行相关得到的,池化过后也就是相当于把Image1或者Image2做池化再进行计算全局相关。

参考文献:RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

两分钟理解RAFT光流中的相关层相关推荐

  1. 三分钟理解RAFT光流网络中的Iterative Updates

    Iterative Updates 这段话给iterative updates以定性,输入一个初始化的流场,逐步地更新这个流场. 具体来讲:输入->流场.相关性金字塔和隐藏状态 输出->更 ...

  2. android中sp的意义_两分钟理解Android中SP与DP的区别

    从一开始写Android程序,就被告知这些常识 长度宽度的数值要使用dp作为单位放入dimens.xml文件中 字体大小的数值要使用sp作为单位,也放入dimens.xml文件中 然后,就没有然后了, ...

  3. 两分钟研究透idea中Git文件的颜色,绿红蓝白灰

    直接上图 绿色,已经加入控制暂未提交 红色,未加入版本控制 蓝色,加入,已提交,有改动 白色,加入,已提交,无改动 灰色:版本控制已忽略文件.

  4. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层

    本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  5. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层

    本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  6. 标准caffe中实现darknet相关层。caffe和darknet模型的相互转换和加速(分类、检测、分割)

    caffe实现darknet中的相关层,主要是yolo层和upsample层等: 实现yolo网络的训练和测试(分类.检测和分割): 提供darknet模型转caffe模型: 实现bn层合并和yolo ...

  7. 卷积层和全连接层的区别_卷积神经网络中全连接层作用理解总结

    前言 一般来说,卷积神经网络会有三种类型的隐藏层--卷积层.池化层.全连接层.卷积层和池化层比较好理解,主要很多教程也会解释. •  卷积层(Convolutional layer)主要是用一个采样器 ...

  8. java弱引用怎么手动释放,十分钟理解Java中的弱引用,十分钟java引用

    十分钟理解Java中的弱引用,十分钟java引用 本篇文章尝试从What.Why.How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义.基本使用场景和使用方法.由于个人水平有限 ...

  9. python中int input_两分钟了解python中的input函数

    两分钟了解python中的input函数 input函数在python中是一个内建函数,其从标准输入中读入一个字符串,并自动忽略换行符.下面我们就来看看input函数的具体用法吧. #函数inputm ...

最新文章

  1. QN8027输出调频分裂的频谱
  2. python省市区三级联动_Django Admin实现三级联动的示例代码(省市区)
  3. 神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)
  4. 贪心---leetcode-376摆动序列
  5. matlab求两向量夹角_Matlab-自动化控制系统设计4频域分析
  6. 【Flink】Flink classloader.check-leaked-classloader
  7. hosts文件分发其他机器
  8. MyBatis mapper parameterType
  9. 使用lkjson处理Json数据
  10. 手把手带你从0搭建一个Golang ORM框架(上)!
  11. 智邦国际ERP软件实施成功的七大步骤
  12. Verilog求相反数
  13. QEMU虚拟机源码分析概论
  14. R语言使用dplyr包计算dataframe分组聚合四分位距IQR值(四分位距(interquartile range, IQR),又称四分差)
  15. docker参数详解
  16. 如何在未越狱的ios系统安装ipa文件
  17. 数据结构——停车场管理系统
  18. 51GIS学院|分享大数据项目架构思考(一)
  19. CSDN,对段落进行首行缩进
  20. JavaScript 语言精粹读书笔记

热门文章

  1. 生成固定的句子,句子中含有给定的多个关键词,python代码实现
  2. 程序员 不经历风雨,怎么见彩虹
  3. 2021极术通讯-为什么智慧计算如此重要?
  4. 如何搭建职业教育智慧课堂?
  5. 马云5年实现“无现金社会”,必须迈过这几道坎?
  6. EXCEL-VBA:EXCEL的各种文件名获取
  7. 计算机专业笔记本显卡,笔记本显卡排名图及显卡等级分类【图文】
  8. Probabilistic PolynomialTime Algorithm概率多项式时间算法ppt算法的个人理解
  9. Excel 条件格式查重问题
  10. 极速office(excel)如何查找出重复内容