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

论文阅读 | Cross-Attention Transformer for Video Interpolation

前言:ACCV2022wrokshop用transformer做插帧的文章,q,kv,来自不同的图像
代码:【here】

Cross-Attention Transformer for Video Interpolation

引言

传统的插帧方法多用光流,但是光流的局限性在于
第一:它中间会算至少两个 cost volumes,它是四维的,计算量非常大
第二:光流不太好处理遮挡(光流空洞)以及运动的边缘(光流不连续)对大的运动的处理也不友好

对于第一点,比如插帧256*256的图片,光流法的推理速度就明显比不同光流的方法的推理速度慢很多
在这里插入图片描述
因此,本文针对插帧任务专门设计了一个跨帧transformer,而不是算图像中区域与区域之间的相似性,并且提出了一个空间注意力图,来计算左右两边插帧的分数并进行融合,更好的处理运动边缘和遮挡
因此,本文的贡献点在于:

  • 提出了一个cross-attention的Transformer,
  • 提出了一个IA模块利用的两边的注意力进行融合
  • 在非光流法上跑到了SOTA

这里想补充一些我个人的看法:
刚看到这个introduction的时候我觉得很不解,感觉没有讲出transformer的最主要的贡献(我认为用transformer可以解决大位移的匹配,并且后文用的图也是插单帧的transformer,数据集是Middlebury,帧间物体的位移也很小,这种小位移的情况应该比较适合用convolution的办法解决)
然后作者更多强调是CAIN的拓展,我个人觉得是个大改动,不算另一篇文章的拓展了,然而看了实验结果我才明白,害,原来是效果不太好啊…只能说在各个数据集都跑赢了CAIN,作为拓展的确是比较成功了…

方法

pipeline
在这里插入图片描述
这里先将图片pixelshuffle,类似于transformer里打成8 * 8的patch,然后两张图片通道concat,过一层卷积,得到transformer中的k,两张原始图片作为左右两边的transformer的k,v,而对于Q和K的映射,作者这里采用的同一个映射网络,即是共享权重的,这和普通的transformer不太一样
这样每一个查询子的各个区域其实都是对原始图像进行特征的重新分配,最后的结果S的计算为
在这里插入图片描述
(由于代码暂时未公开,不知道这里是不是将特征图D进行一个Onehot编码)

最后由于左右两侧都有可以参考的图片特征,因此,对于两侧transformer后的结构进行融合,用于处理遮挡情况
如图片(C)的IA所示,4个输入在特征层堆叠连接,并过两个1 * 1的conv层,最后一层的conv的激活为softmax,两个通道,因此可以实现两个特征图
在这里插入图片描述
(为啥不和superslomo这类文章一样用sigmoid并用1相减,我也不是很懂…)
两个特征图与对应的transformer的cross-attention后得到的结果相乘,最后合并过一个ResGroup
在这里插入图片描述
(这里我认为这个设计最大的问题就是初始conv层找不准初始查询图片的位置,导致最后的插帧有可能出现伪影)

损失函数
损失函数采用图像L1损失和梯度L1损失,并强调了没有用感知损失

实验

这里作者还采用了随机添加边长范围为21 -61遮挡块的增强方式
对比实验的结果
很多方法都没超过,近期的插帧方法基本都能在vimeo上达到一个36的水平,这个结果靴微有些逊色了
在这里插入图片描述
作者这里也说明方法的另一个优势,是在于推理速度,比光流法快了很多倍,但是transformer对于底层图像任务有个致命的缺点就是随着分辨率的提升计算量二次增加,这里只是用256 * 256的图像进行的测试

最后是对cross-attention的可视化,对于这五个不同颜色的位置,有五个attention与之对应,颜色越浅代表相似分数越大
在这里插入图片描述
对于5次堆叠的transformerblock,作者也分别对前4次的cross-attention特征图进行了可视化,蓝色标记位置表示查询位置,红色位置表示相似分数最大的位置在这里插入图片描述

对于融合阶段的attention,作者也进行了可视化,并且这里作者对其中一张图加了一个遮挡块来验证两张特征图的空间权重,明显没有被遮挡的那张图的选中区域分数更高
在这里插入图片描述

总结

看到这个标题就想下载这篇论文,左右两边cross-attention的transformer是我个人觉得很适合插帧领域的一个idea,可以在不用光流warp实现解决大位移的情况,这篇文章没有提到这一点,我想可能是大位移的时候,初始图的中间位置又找不准了,可惜这个想法的结果并不是那么完美

相关文章:

论文阅读 | Cross-Attention Transformer for Video Interpolation

前言:ACCV2022wrokshop用transformer做插帧的文章,q,kv,来自不同的图像 代码:【here】 Cross-Attention Transformer for Video Interpolation 引言 传统的插帧方法多用光流,但是光流的局限性在于 第一&…...

【C++修炼之路】22.哈希

每一个不曾起舞的日子都是对生命的辜负 哈希一.哈希概念及性质1.1 哈希概念1.2 哈希冲突1.3 哈希函数二.哈希冲突解决2.1 闭散列/开放定址法2.2 开散列/哈希桶三.开放定址法代码3.1 插入Insert3.2 查找Find3.3 删除Erase3.4 映射的改良&完整代码四.开散列代码4.1 插入Inser…...

HashMap原理(一):哈希函数的设计

目录导航哈希函数的作用与本质哈希函数设计哈希表初始容量的校正哈希表容量为2的整数次幂的缺陷及解决办法注:为了简化代码,提高语义,本文将HashMap很多核心代码抽出并根据代码含义为代码片段取名,完全是为了方便读者理解。哈希函…...

06--WXS 脚本

1、简介WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML ,可以构建出页面的结构。 注意事项WXS 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。WXS 与 JavaScript 是不同的语言,有自己的…...

【Vue3】vue3 + ts 封装城市选择组件

城市选择-基本功能 能够封装城市选择组件&#xff0c;并且完成基础的显示隐藏的交互功能 &#xff08;1&#xff09;封装通用组件src/components/city/index.vue <script lang"ts" setup name"City"></script> <template><div class…...

C语言if判断语句的三种用法

C if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 语法 C 语言中 if 语句的语法&#xff1a; if(boolean_expression) {/* 如果布尔表达式为真将执行的语句 */ }如果布尔表达式为 true&#xff0c;则 if 语句内的代码块将被执行。如果布尔表达式为 false&…...

React中echarts的封装

做大屏的时候经常会遇到 echarts 展示 在 React &#xff08;^18.2.0&#xff09; 中对 echarts &#xff08;^5.4.0&#xff09; 的简单封装 echarts 封装使用 props 说明 参数说明类型可选值默认值opts初始化传入的 opts https://echarts.apache.org/zh/api.html#echarts…...

IV测试系统3A太阳能模拟器在光伏中应用

一、概述IV测试系统3A太阳能模拟器应具备光束准直、光斑均匀、辐照稳定、且与太阳光谱匹配的特点&#xff0c;使用户可足不出户的完成需要太阳光照条件的测试。科迎法电气提供多规格高品质的太阳模拟器&#xff0c;可适用于单晶硅、多晶硅、非晶硅、染料敏化、有机、钙钛矿等各…...

Vue 中过滤器 filter 使用教程

Vue 过滤器 filter 使用教程文章目录Vue 过滤器 filter 使用教程一、过滤器1.1 过滤器使用的背景1.2 格式化时间的不同实现1.3 过滤器的使用1.4 过滤器总结一、过滤器 1.1 过滤器使用的背景 过滤器提供给我们的一种数据处理方式。过滤器功能不是必须要使用的&#xff0c;因为它…...

源码numpy笔记

参考文章 numpy学习 numpy中的浅复制和深复制的详细用法 numpy中的np.where torch.gather() Numpy的核心数据结构&#xff0c;就叫做array就是数组&#xff0c;array对象可以是一维数组&#xff0c;也可以是多维数组 array本身的属性 shape&#xff1a;返回一个元组&#xf…...

【VUE】六 路由和传值

目录 一、 路由和传值 二、案例 三、案例存在无法刷新问题 一、 路由和传值 当某个组件可以根据某些参数值的不同&#xff0c;展示不同效果时&#xff0c;需要用到动态路由。 例如&#xff1a;访问网站看到课程列表&#xff0c;点击某个课程&#xff0c;就可以跳转到课程详…...

ChatGPT修炼指南和它的电力畅想

近期&#xff0c;ChatGPT刷屏各大社交平台&#xff0c;无疑成为人工智能界最靓的仔&#xff01; 身为一款“会说话”的聊天机器人程序&#xff0c;它与前辈产品Siri、小度、微软小冰等有什么不同&#xff1f;先来听听小伙伴们怎么说。 ChatGPT何以修炼得这么强大&#xff1f;…...

基于vscode开发vue项目的详细步骤教程

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 目录 五、vscode集成npm开发vue项目 1、vscode安装所需要的插件&#xff1a; 2、搭建一个vue小页面(入门vue) 3、大致理解…...

【C++初阶】1. C++入门

1. 前言 1. 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机界提出了OOP(…...

数据结构与算法(二十)快速排序、堆排序(四)

数据结构与算法&#xff08;三&#xff09;软件设计(十九)https://blog.csdn.net/ke1ying/article/details/129252205 排序 分为 稳定排序 和 不稳定排序 内排序 和 外排序 内排序指在内存里&#xff0c;外排序指在外部存储空间排序 1、排序的方法分类。 插入排序&#xff…...

TensorRT量化工具pytorch_quantization代码解析(二)

有些地方看的不是透彻&#xff0c;后续继续补充&#xff01; 继续看张量量化函数&#xff0c;代码位于&#xff1a;tools\pytorch-quantization\pytorch_quantization\tensor_quant.py ScaledQuantDescriptor 量化的支持描述符:描述张量应该如何量化。QuantDescriptor和张量…...

buu [BJDCTF2020]easyrsa 1

题目描述 &#xff1a; from Crypto.Util.number import getPrime,bytes_to_long from sympy import Derivative from fractions import Fraction from secret import flagpgetPrime(1024) qgetPrime(1024) e65537 np*q zFraction(1,Derivative(arctan(p),p))-Fraction(1,Deri…...

taobao.user.openuid.getbyorder( 根据订单获取买家openuid )

&#xffe5;免费不需用户授权 根据订单获取买家openuid&#xff0c;最大查询30个 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, secret); UserOpenuidGetbyorderR…...

Mac iTerm2 rz sz

1、安装brew&#xff08;找了很多&#x1f517;&#xff0c;就这个博主的好用&#xff09; Mac如何安装brew&#xff1f;_行走的码农00的博客-CSDN博客_mac brew 2、安装lrzsz brew install lrzsz 检查是否安装成功 brew list 定位lrzsz的安装目录 brew list lrzsz 执…...

高通平台开发系列讲解(Sensor篇)Gsensor基础知识

文章目录 一、什么是SENSOR?二、Sensor的分类及作用三、Gsensor的工作原理及介绍3.1、常见Gsensor3.2、Gsensor的特性沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍 Sensor 基础 一、什么是SENSOR? 传感器(英文名称:sensor )是一种检测装置,能感…...

广州写字楼办公家具整体配套哪家性价比高?

广州写字楼聚集了大量企业&#xff0c;从天河CBD到白云、番禺写字楼&#xff0c;每个企业都需要办公家具整体配套&#xff0c;但面对市面上众多服务商&#xff0c;如何选择性价比高的一家&#xff0c;成为很多老板的难题——性价比不是低价&#xff0c;而是“品质过关、服务到位…...

BlocPad CLI:为AI编程助手提供结构化上下文的工程实践

1. 项目概述&#xff1a;BlocPad CLI&#xff0c;一个为工程智能体设计的上下文驱动工具如果你和我一样&#xff0c;日常开发中深度依赖像 Cursor、Claude Code 或 GitHub Copilot 这类 AI 编程助手&#xff0c;那你肯定也遇到过这样的困境&#xff1a;如何让 AI 助手清晰地理解…...

隔着包装也能读、2m/s不串读:东集UF40如何应对管制药厂的RFID“极限大考”?

提到RFID固定式读写器&#xff0c;很多人的第一印象是仓库、货架与托盘。但在一些关乎生命安全的领域&#xff0c;RFID技术正面临着更严苛的考验。这一次&#xff0c;我们走进管制药厂——一个对精准追溯要求达到极致、不容任何差错的场景。核心痛点&#xff1a;一盒十瓶&#…...

【CLIP论文阅读】:基于自然语言监督的通用视觉预训练范式

论文信息 标题&#xff1a;Learning Transferable Visual Models From Natural Language Supervision会议&#xff1a;ICML 2021单位&#xff1a;OpenAI代码&#xff1a;https://github.com/OpenAI/CLIP论文&#xff1a;https://arxiv.org/pdf/2103.00020.pdf 一、引言&#x…...

别再让POI吃掉你的内存了!用SAX模式轻松处理10万行Excel数据(附完整Java代码)

高效解析海量Excel数据的Java实践指南 在处理企业级数据时&#xff0c;Excel文件往往是不可避免的数据交换格式。但当数据量达到数万行甚至更多时&#xff0c;传统的POI用户模式会迅速耗尽JVM内存&#xff0c;导致系统崩溃。本文将深入探讨如何利用SAX事件驱动模型解决这一痛点…...

别再为Java3D安装头疼了!手把手教你用IDEA 2023.3搞定Java 3D 1.5.1环境(附完整测试代码)

从零构建Java 3D开发环境&#xff1a;IntelliJ IDEA 2023.3终极配置指南 第一次接触Java 3D的开发者在配置环境时往往会遇到各种"玄学问题"——明明按照教程操作却始终报错&#xff0c;或者运行示例代码时出现诡异的黑屏。本文将彻底解决这些痛点&#xff0c;带你用最…...

基于多AI智能体协同的内容工厂:从架构原理到部署实践

1. 项目概述&#xff1a;一个由五个AI智能体协同工作的内容工厂如果你在内容创作领域摸爬滚打过&#xff0c;肯定遇到过这样的困境&#xff1a;想一个爆款选题、写一篇抓人的文案、设计一张吸睛的封面、再制定一套推广策略&#xff0c;整个过程下来&#xff0c;精力被撕扯得七零…...

遥感在生态系统碳储量、碳收支、碳循环、碳汇稳定性预警以及人为源排放反演等应用

卫星遥感具有客观、连续、稳定、大范围、重复观测的优点&#xff0c;已成为监测全球碳盘查的核心技术手段&#xff0c;卫星遥感也正在成为新一代、国际认可的全球碳核查业务化方法。本此目的就是梳理碳中和及碳盘点对卫星遥感的最新现实需求&#xff0c;系统总结遥感技术在生态…...

automl-gs完整教程:从CSV数据到生产级机器学习管道的10个步骤

automl-gs完整教程&#xff1a;从CSV数据到生产级机器学习管道的10个步骤 【免费下载链接】automl-gs Provide an input CSV and a target field to predict, generate a model code to run it. 项目地址: https://gitcode.com/gh_mirrors/au/automl-gs automl-gs是一个…...

Visual C++运行库终极解决方案:3分钟修复Windows软件启动失败

Visual C运行库终极解决方案&#xff1a;3分钟修复Windows软件启动失败 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打开游戏或专业软件时&#…...