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

【论文简述】Learning Optical Flow with Kernel Patch Attention(CVPR 2022)

 一、论文简述

1. 第一作者:Ao Luo

2. 发表年份:2022

3. 发表期刊:CVPR

4. 关键词:光流、局部注意力、空间关联、上下文关联

5. 探索动机:现有方法主要将光流估计视为特征匹配任务,即学习在特征空间中将相似度高的像素进行匹配。然而,运动理解相关任务的另一个重要组成部分--空间相似性(平滑度约束)被忽视了。

However, most contemporary works address the cross-image matching problem by learning and measuring feature similarities, overlooking another core component for motion understanding — the spatial relations which reveal the underlying affinities during motion.

6. 工作目标:明确地考虑特征相似性和空间关系将有助于建立一个强大的深度模型,可以在更高的层次上理解运动。

Using deep learning techniques to capture and model local relations is challenging.

  1. First, because the motion of object(s) appears locally in the visual scene, effectively capturing the local relations (affinities) is vital for motion analysis. However, common relation modeling approaches, such as non-local operations and graph reasoning, focus on solving the global or long-range dependencies. How to reasonably model the local relations is still under-explored.
  2. Second, the local relations should be end-to-end learnable, so as to best mine pairwise relationships described by the affinity value. Third, optical flow estimation is a per-pixel matching task, thus it is difficult to efficiently obtain the pixel-wise relations.
  3. Last but not the least, the designed module is expected to be easily plugged into contemporary optical flow architectures.

7. 核心思想:本文提出了基于块注意力的光流估计方法(Kernel Patch Attention, KPA),对特征图的每个局部块进行操作,通过显式地利用局部场景内容和空间关系信息来缓解由像素特征匹配困难造成的误差。

  • A fully-differentiable approach for explicitly conducting the smooth constraint. To the best of our knowledge, we are the first to explicitly handle the local relations for optical flow based on the context and spatial affinities. We present a kernel-based function to effectively mine local relations and use the mined information to infer the flow fields.
  • A novel operator for comprehensive optical flow estimation. We propose kernel patch attention (KPA) operator with a specific patch-based sliding window strategy, which is simple yet effective for reliable motion understanding.

8. 实验结果:通过实验验证该方法可以充分利用局部特征关联性进行更准确的运动分析,在标准光流估计数据集上达到 SOTA 效果。

State-of-the-art results on widely-used benchmarks. The fully-equipped KPA-Flow can reliable infer the optical flow in challenging scenes, which sets new records on both Sintel and KITTI benchmarks with limited extra computational cost.

9.论文&代码下载:

https://openaccess.thecvf.com/content/CVPR2022/papers/Luo_Learning_Optical_Flow_With_Kernel_Patch_Attention_CVPR_2022_paper.pdf

https://github.com/megvii-research/KPAFlow

二、实现过程

1. 方法

给定一对输入的连续图像,即源图像I1和目标图像I2,光流估计的任务是预测源图像I1和目标图像I2之间的密集位移场。基于深度学习的光流网络通常采用编码器-解码器管道,首先提取上下文特征fc和运动特征fm,然后基于这两个特征的组合,以循环/粗到细的方式进行光流预测。

本文提出核块注意力(KPA),并将其插入到特征融合过程中,其表述为fm= FKPA (fc,fm)。具体而言,KPA算子明确地考虑了场景上下文和空间密切性,并利用学习到的特征相关更好地推断光流场。在运动特征改进后,上下文和更新的运动特征被输入到解码器模块中,进行几次残差光流估计。

2. 光流的核块注意力

KPA-Flow结构如图。基于RAFT以循环优化方案开发的模型。“C”表示连接,“×”表示乘法。“CV”表示4D相关体。Dec表示光流解码过程。具体来说,给定一个输入图像对(I1,I2),首先使用两个基于基于6个残差块构建的编码器来提取特征对(f1,f2),上下文编码器与运动编码器共享相同的结构,提取特征fc,输出特征映射的通道维数设置为256。然后,建立4个尺度的4D相关体。基于预定义的搜索窗口,通过在分割的匹配代价上应用运动编码器来获得运动特征fm

在残差更新方案中,利用运动编码器从匹配代价中获取运动特征fm。上下文特征和运动特征的通道C均设置为128,空间维度为输入形状的1/8。然后将上下文和运动特征输入到所提出的KPA算子中进行特征改进。设置循环迭代N = 12进行训练。

2.1. 基于核函数的定义

基于编码器网络提取的Fcc×h×w中的上下文特征fcFmc×h×w中的运动特征fm,设计KPA从场景上下文中提取特征相关,并将挖掘出的相关作为平滑约束来指导运动特征的学习。具体来说,受图像卷积和点卷积的启发,将KPA表述为基于核的算子,一般为:

其中xi表示x周围邻域Nx(也称为核窗口)在二维网格空间中的位置iK(xi−x)(·)是以相邻点作为输入的核函数,ρ(·)是将输入运动特征映射到嵌入空间的线性投影。~fc表示Nx的中心块窗口中的上下文特征。从注意力机制来看,使用~fc生成查询向量,对应的键和值向量可以从Nxfcfm嵌入。

核函数是KPA中的核心组件,通常可以定义为:

其中ti = xi−x, x^n表示核区域n位置的坐标。然后,S(ti,x^n)表示尺度函数,它根据网格空间中tix^n之间的欧氏距离生成尺度图。权函数W(ti)(~fc,fc)用于生成核权重。

类似于广泛使用的二维卷积核,设计W(ti)(·)ti的每个位置提供不同的权值。然而,与仅仅定义一个可学习矩阵Wi的图像卷积核不同,本文进一步考虑了核区域的上下文关系。具体地说,给定上下文特性~fcfc,使用归一化的嵌入高斯函数来测量它们之间所有对之间的相关性,可以表示为:

其中θ(f)=Wθfφ(f)=Wφf是两个线性投影,用于进行特征嵌入。生成的自适应权重的维数为N×K,其中N=h×w表示整个特征图的像素级空间维数,K=K×K表示核窗口的大小。

核函数的另一个分量是尺度函数S(ti,x^n)。在图像卷积中,对于核中的所有位置,标量都简单地设置为1。一个原因是W(ti)(·)的可学习权重可以被训练成适合进行加权和,它固有地包含了所有点的尺度平衡。此外,VGGResNet等广泛使用的网络通常倾向于堆栈几个卷积,其核大小为1×13×3,因此tix^n之间的距离应该很小,不能提供额外的独特信息。相反,单个KPA操作符能够获得一个大的感受野,以覆盖实例级别的信息。因此,它应该配备一个基于tix^n之间距离的比例因子掩码,以满足空间限制。具体来说,采用线性相关,将尺度函数表示为:

其中k表示核窗口的大小,l是基本标量,a是一个可学习的参数,表示点距离的影响。该函数生成一个标量图,其中每个点的值与欧几里得距离||ti−x^n||成反比。

2.2. 滑动窗口的核块注意力

以往的研究表明,利用全局运动约束进行光流特征改进是一种有效的光流估计策略。但是,直接应用基于上下文特征的非局部方法对运动特征的改进可能会有一些不可靠的指导。

在此,KPA使光流模型有一个合适的感受野来平滑约束运动特征,并避免来自远距离上下文的误导信息。具体来说,设计了一种基于滑动窗口的运动特征平滑方案。给定特征图fc×h×w,首先将其分割成不重叠的块,每一个大小为p×p的块视为一个特征组。因此,特征图中的所有特征向量被划分为h¯×w¯块窗口,其中h¯=d/pw¯= d/p。将块窗口内的每一组特征向量视为一个大小为c×p×p的基元素¯f。就像图像卷积通常使用奇数核大小的基本设置一样,将核窗口的大小定义为k=k¯×p,其中1,3,2i+1。因此,块核形状被表示为(k¯×k¯)

一个很小的样例实现了KPA的滑动窗口,如图所示,其中块大小p=2,核形状k¯×k¯3×3, h¯分别设置为45。左边的子图描述了一个滑动的核窗口Nx(橙色的)在步骤t中处理一个分组的特征图。这里将每个块视为一个基本元素,并使用ej,其中j∈{1;2,……,9},表示在核窗口的每个元素()可以看到,步骤t中的核心元素是e5,中间块窗口中的特征表示(红色的)将被更新。在实践中,我们首先在fc e5和fcE(其中E表示Nx中的所有ej)上使用权重函数W(ti)(·)来产生自适应权重,如Eqn. 3所示。具体来说,在这个过程中涉及到两种点积相似性度量,即一些块窗口之间的块内和块间的相似性。例如,e5中的特征向量可以与自身进行自注意力相似度测量,同时通过交叉注意力相互作用获得与其他8个块窗口中的特征的相关性。然后用构建核K(ti)。最后,我们用对运动特征进行核块注意力,即f0me5 = Pti2E K(ti)ρ(fm)。输出运动特征f^me5最终由残差操作产生,即f^me5 = fme5 + α f`me5,其中α表示一个可学习的参数,初始化为0,并逐渐执行加权求和。

3中的右子图说明了核窗口在步骤t + 1中滑动到下一个区域。由于将每个块视为基本元素,因此核窗口的滑动步幅应该相当于块大小p。此外,为了保证特征图的大小可以被p整除,并且中心块窗口能够滑动覆盖整个特征图中的所有位置,对特征进行了零填充。因此,运动特征fm中的所有块都可以通过KPA算子进行改进平滑。值得注意力的是,每一个KPA操作中的滑动步不依赖于其他的结果。因此,像图像卷积一样,整个算子可以并行处理,进行端到端训练。

讨论:与卷积的比较。图像卷积函数一般可以表述为:

其中,a表示核区域Nt中的所有像素,w(·)表示核函数。虽然KPA与基于核的运算具有相同的图像卷积模式,但固有的公式完全不同。首先,图像卷积简单地将核函数w(·)定义为可学习的权重w,而KPA用一个scale函数来定义它,以提供可学习的标量和一个基于上下文关系的自适应权重函数。在推理过程中,我们的权函数W(ti)(~fc,fc)能够提供动态核映射,其中每个权重随相应的上下文特征而变化。相比之下,W是一个静态的权重,在训练后的所有滑动位置中共享。其次,图像卷积在通道维度和空间维度上都需要更多的参数。然而,我们的KPA只需要在通道维度上进行线性投影,这有助于在核区域较大时显著减少计算开销。

讨论:与类NL算子的比较。本文提出的KPA算子能够捕捉基于区域的场景上下文,以指导运动特征的学习。因此,与全局非类局部操作符相比,KPA消耗的计算开销更少。例如,给定一个维数为c×h×w的特征,我们的KPANL的计算复杂度为:

N = h × w表示空间维度,K = k × k表示核窗口的尺寸。特征大小通常比内核大小大很多,即:N 》K。此外,KPA中注意力图的形状为N×K,小于NL的注意力N×N,表示GPU内存成本更低。此外,NL注意力图可能包含许多来自无约束场景上下文的全局噪声,不适合用于运动引导

3. 实验

3.1. 数据集

FlyingThings、Sintel、KITTI-2015、HD1K

3.2. 实现

基于PyTorch工具箱实现。核形状k¯× k¯设置为3 × 3。在sinintel和KITTI上,块大小p分别设置为19和9。使用4个GeForce GTX 2080Ti gpu来训练型,并采用一个gpu进行评估和时间测试。批大小分别设置为8和1。

3.3. 基准结果:SOTA

3.4. 方法比较

局限性是,固定的核形状对于处理一些具有挑战性的情况是不灵活的,比如两个相似的物体在不同的运动中相互纠缠。在这种情况下,上下文和空间亲和性都不能为运动引导提供有效的信息。这个问题的一个可能的解决方案是学习用于自适应运动推理的可变形核。

相关文章:

【论文简述】Learning Optical Flow with Kernel Patch Attention(CVPR 2022)

一、论文简述 1. 第一作者:Ao Luo 2. 发表年份:2022 3. 发表期刊:CVPR 4. 关键词:光流、局部注意力、空间关联、上下文关联 5. 探索动机:现有方法主要将光流估计视为特征匹配任务,即学习在特征空间中将…...

Java学习-MySQL-列的数据类型

Java学习-MySQL-列的数据类型 数值 tinyint - 1个字节smallint - 2个字节mediumint - 3个字节int - 4个字节bigint - 8个字节float - 4个字节double - 8个字节decimal - 字符串形式的浮点数 字符串 char - 0~255varchar - 可变字符串 0~65535tinytext - 微型文本 2^8-1text…...

终端配色-Docker容器终端

20230309 - 0. 引言 平时使用SSH,通常都是使用securecrt来用,毕竟也算是之前windows下一种使用的工具,在mac下使用还算方便;进入终端后,可以通过调整配色来调整编程环境。平时经常使用屎黄色的那种配色,毕…...

SQL基础培训04-插入数据

知识点: 假设有订单表 CREATE TABLE SEOrder ( FID int identity(...

Apache HTTP Server <2.4.56 mod_proxy 模块存在请求走私漏洞(CVE-2023-25690)

漏洞描述 Apache HTTP Server是一款Web服务器。 该项目受影响版本存在请求走私漏洞。由于intro.xml中存在RewriteRule配置不当,当Apache启用mod_proxy且配置如 RewriteRule “^/here/(.*)” " http://example.com:8080/elsewhere?$1"; http://example.…...

SpringBoot 集成 elasticsearch 7.x和对应版本不一致异常信息处理

开源框架springboot框架中集成es。使用org.springframework.data.elasticsearch下的依赖,实现对elasticsearch的CURD,非常方便,但是springboot和elasticsearch版本对应很严格,对应版本不统一启动会报错。 文章目录开源框架Elasticsearch 7.x安装Elastics…...

求职季必看系列:Java如何高效面试?

先看看这些java高频的面试重点吧 ​ 以下是初级程序员面试经常问到的问题: ■ Spring的三大特性是什么? ■ Spring IOC和AOP 你是如何理解并且使用的? ■ 说一下ElasticSearch为什么查询的快?是如何存储的?在项目中…...

点云分割预研

文章目录激光雷达点云分割1.点云分割主流方案(模型角度)1.1 (a) 基于RGB-D图像1.2 (d) 基于点云1.3 (b) 基于投影图像1.4 (b) 基于投影图像 - SqueezeSeg/RangeNet1.4. 球映射2 点云分割主流方案(部署角度)3 点云分割常用指标4 点…...

【数据结构】栈和队列 (栈 栈的概念结构 栈的实现 队列 队列的概念及结构 队列的实现 栈和队列面试题)

文章目录前言一、栈1.1 栈的概念结构1.2栈的实现二、队列2.1队列的概念及结构2.2队列的实现三、栈和队列面试题总结前言 一、栈 1.1 栈的概念结构 栈也是一种线性表,数据在逻辑上挨着存储。只允许在固定的一端进行插入和删除元素。进行插入和删除操作的一端叫栈顶…...

Moonbeam生态说|解读2023年Web3发展的前景和亮点

「Moonbeam生态说」是Moonbeam中文爱好者社区组织的社区AMA活动。该活动为媒体和已部署Moonriver或Moonbeam的项目方提供了在主流Moonbeam非官方中文社区内介绍自己的项目信息,包括:项目介绍、团队介绍、技术优势和行业发展等,帮助社区内的Mo…...

【刷题笔记】--二分-P2440 木材加工

题目: 思路: 先在所有树中找到最长的树,从 1 到 这个最长的树的长度 的所有数作为二分查找的值,让每棵树除这个值,表示可以切出几段出来,累加在一起得到s,s表示一共有几段。s与k比较&#xf…...

netstat 命令详解

文章目录简介命令格式常用选项常用命令查询进程所占用的端口号查看端口号的使用情况显示所有连接和监听端口并显示每个连接相关的进程ID显示UDP、TCP协议的连接的统计信息并显示每个连接相关的进程 ID显示所有已建立的连接显示每个进程的连接数显示每个IP地址的连接数显示每种类…...

分布式 微服务

微服务学习 soa和微服务 业务系统实施服务化改造之后,原本共享的业务被拆分形成可复用的服务,可以在最大程度上避免共享业务的重复建设、资源连接瓶颈等问题。那么被拆分出来的服务是否也需要以业务功能为维度来进行拆分和独立部署,以降低业…...

Day912.多环境配置隔离 -SpringBoot与K8s云原生微服务实践

多环境配置隔离 Hi,我是阿昌,今天学习记录的是关于多环境配置隔离的内容。 多环境支持,是现在互联网开发研发和交付的主流基本需求。通过规范多环境配置可以规范开发流程,并同时提示项目的开发质量和效率等。 一个公司应该规范…...

Imx6ull交叉编译nginx

Imx6ull交叉编译nginx 需要下好的包 Nginx(下载压缩包源码) nginx-rtmp-module(可以下载压缩包源码也可以 git clone https://github.com/arut/nginx-rtmp-module.git) pcre(下载源码) zlib(下载源码) openssl(下载源…...

阿里云短信验证

1.了解阿里云用户权限操作 需要通过个人账户获得 授权码(id、密码),再通过这些信息获得服务 阿里云网址 :https://www.aliyun.com/ 1.登陆阿里云服务器2.进入个人账号然后点击 AccessKey 管理3.创建用户组4.添加用户组权限&…...

Excel常用可视化图表

目录柱状图与条形图折线图饼图漏斗图雷达图瀑布图及甘特图旭日图组合图excel图表:柱状数据条、excel热力图、mini图可视化工具的表现形式:看板、可视化大屏、驾驶舱 柱状图与条形图 条形图是柱状图的转置 类别: 单一柱状图:反映…...

虹科分享 | 网络流量监控 | 数据包丢失101

什么是数据包? 数据包是二进制数据的基本单位,在网络连接的设备之间编号和传输,无论是在本地还是通过互联网。一旦数据包到达其目的地,它就会与其他数据包一起按编号重新组合,回到最初传输的较大消息中。 数据包是我们…...

毕设常用模块之舵机介绍以及使用方法

舵机 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为 20ms,宽度为 1.5ms 的基准信号,将获…...

残酷现实:大部分的App小程序,日活<100

残酷现实:99%的APP小程序&#xff0c;日活<100 日活跃用户数量(DAU&#xff09;是一个核心指标 Daily Active Users 互联网的难度系数一路拉高 只有流过血的战士&#xff0c;才能意识到战场的残酷 趣讲大白话&#xff1a;赵本山小品台词&#xff0c; 残酷的现实已直逼我心理…...

二相四线步进电机驱动全解析:从原理到Proteus仿真避坑指南

二相四线步进电机驱动全解析&#xff1a;从原理到Proteus仿真避坑指南 在工业自动化与嵌入式开发领域&#xff0c;步进电机因其精准的位置控制能力成为不可或缺的执行元件。而二相四线制步进电机凭借结构简单、成本低廉的优势&#xff0c;尤其受到电子工程师和创客群体的青睐。…...

离散数学实战:用Python解决图论问题(附完整代码示例)

离散数学实战&#xff1a;用Python解决图论问题&#xff08;附完整代码示例&#xff09; 当你在社交软件上查看"可能认识的人"推荐&#xff0c;或是用导航软件规划最短路线时&#xff0c;背后都在运行图论算法。作为离散数学中最具工程价值的领域&#xff0c;图论将现…...

FPGA实战:3级CIC滤波器Verilog实现与仿真(附完整代码)

FPGA实战&#xff1a;3级CIC滤波器Verilog实现与仿真全解析 在数字信号处理领域&#xff0c;CIC&#xff08;Cascaded Integrator-Comb&#xff09;滤波器因其结构简单、运算高效的特点&#xff0c;成为多速率系统中的关键组件。本文将深入探讨3级CIC滤波器的Verilog实现细节&a…...

深度 | 电子材料研发(光刻胶/OLED等)迈入智能时代,当电子材料研发进入“GPT时代”,企业该如何重构创新引擎?

【电子材料系列专题1】在半导体、显示、先进封装与电子化学品领域&#xff0c;材料始终决定性能上限。无论是光刻胶、OLED发光材料、封装胶&#xff0c;还是高纯电子特气&#xff0c;随着制程逼近纳米乃至埃米级节点&#xff0c;热力学稳定性、光化学反应精度、流变特征和痕量杂…...

FOC算法避坑指南:克拉克变换的‘等幅值’与‘等功率’到底选哪个?基于AS5600编码器的实测对比

FOC算法避坑指南&#xff1a;克拉克变换的‘等幅值’与‘等功率’到底选哪个&#xff1f;基于AS5600编码器的实测对比 在无刷电机控制领域&#xff0c;FOC&#xff08;Field Oriented Control&#xff09;算法因其优异的动态性能和效率表现&#xff0c;已成为工业驱动和高精度…...

MBPFan:解决MacBook Linux系统散热难题的智能温控工具

MBPFan&#xff1a;解决MacBook Linux系统散热难题的智能温控工具 【免费下载链接】mbpfan 项目地址: https://gitcode.com/gh_mirrors/mb/mbpfan 当你在Linux系统下使用MacBook处理文档、编写代码或观看视频时&#xff0c;是否遇到过设备突然发烫、风扇噪音忽大忽小的…...

别再让AI瞎忙活了!用Claude Code的SubAgent打造你的专属开发团队(附React项目实战)

别再让AI瞎忙活了&#xff01;用Claude Code的SubAgent打造你的专属开发团队&#xff08;附React项目实战&#xff09; 在软件开发的世界里&#xff0c;我们常常面临一个困境&#xff1a;要么雇佣一个庞大的团队&#xff0c;每个成员各司其职但成本高昂&#xff1b;要么依赖全能…...

UniApp实战:如何安全高效地在安卓10+设备上实现本地数据存储(附权限配置避坑指南)

UniApp安卓10本地数据存储实战&#xff1a;权限配置与高性能方案设计 当你的UniApp在安卓10设备上突然无法保存用户配置时&#xff0c;控制台那行冰冷的"Permission denied"可能让整个开发团队陷入深夜加班。这不是简单的API调用问题&#xff0c;而是安卓存储机制变革…...

BURSTER 9235 (85437090) 应变片信号放大器

BURSTER 9235 (85437090) 应变片信号放大器品牌&#xff1a;BURSTER&#xff08;德国波司特&#xff0c;精密测量技术专家&#xff09;型号&#xff1a;9235内部订货号&#xff1a;85437090类型&#xff1a;直连式&#xff08;In-Line&#xff09;应变片传感器信号放大器一、核…...

工厂里EtherCAT从站模块坏了别慌!手把手教你用Startup list和CoE-online快速换新(附配置顺序避坑指南)

工厂EtherCAT从站模块更换实战指南&#xff1a;Startup list与CoE-online的高效应用 当生产线上的EtherCAT从站模块突然罢工&#xff0c;设备维护工程师往往面临两难选择&#xff1a;是临时在线修改参数快速恢复生产&#xff0c;还是彻底解决"即插即用"的配置难题&am…...