AOT源码解析4.5-AOT整体结构

news2024/12/29 11:02:34

论文阅读

  • paper
  • github
  • 论文阅读笔记
  • AOT源码解析1-数据集处理
  • AOT源码解析2-encoder+decoder
  • AOT源码解析3-模型训练
  • AOT源码解析4.1-model主体
  • AOT源码解析4.2-model主体
  • AOT源码解析4.3-model主体
  • AOT源码解析4.4-model主体
  • AOT源码解析4.5-model主体

4.1~4.4小节详细讲解了ref_imgs相关的操作步骤,中间的结构诸如位置编码和ID编码生成、LSTT结构、Encoder和Decoder结构等都已详细讲解,接下来这些结构的细节不再赘述。

4、整体AOT结构

4.1 输入数据处理

在这里插入图片描述

图1:如图所示,上半部分是输入图像的处理,下半部分是mask的处理,最后得到enc_embs、masks和one-hot-masks

在这里,我们回顾AOT模型是如何使用Encoder和one-hot-mask模块处理输入图像和mask的。

  • encoder处理输入图像
    输入数据的shape为[20,3,465,465],在这里batch_size为4.因此代表输入数据包含4个batch的数据,每个batch包含5张图像。
    将输入数据输给mobilenetv2网络,提取四个不同比例的中间输出特征图,并将这些特征图分成五块。那么这五块的每一块都代表一张图像的特征。
    如图1右上角所示,按照图像进行对分块的特征图进行分类,每一个图像都包含四个特征图。在这里我们将最后一个输出特征图命名为关键特征图,后续的LSTT模块只使用关键特征图

  • 处理mask
    one-hot-mask的操作就是将mask的每一个对象和背景进行分离,并赋予它们一个one-hot编码。
    对于原始mask和进行了one-hot编码的mask,我们都将它们按照图像进行分块,每一块代表不同图像的掩码情况。

4.2 添加参考图像信息

在这里插入图片描述

图2 ,如图所示是参考图像的特征添加。

在这里我们先回顾以下添加参考图像的步骤

  • 1)位置编码和ID编码*
    使用关键特征图生成位置编码,使用one-hot-mask生成ID编码。这两个编码添加到特征图的方式都是直接相加。

  • 2)使用LSTT模块
    LSTT模块就是进行了三次Multi-Head Attention结构,不同的是KQV的输入。

    2.1)self-attention
    KQ:关键特征与位置编码融合后的特征图作为KQ特征图
    V:关键特征图
    输出:ref_self_embs

    2.2)long-term attention
    KQ:ref_self_embs
    V:ref_self_embs结合ID编码
    长期记忆:K(ref_self_embs),V(ref_self_embs结合ID编码)

    2.3)short-term attention
    KQ:ref_self_embs分块
    V:ref_self_embs结合ID编码后,再分块
    短期记忆:K(ref_self_embs分块),V(ref_self_embs结合ID编码后,再分块)

    2.4)LSTT的输出
    self-attention的输出+long-term attention的输出+short-term attention的输出

  • 3)使用Decoder得到预测结果
    将关键特征图和其余特征图进行逐步融合、上采样后,得到最终的预测mask

  • 4)计算损失
    根据预测mask和真实mask计算损失,值得注意的是,这里只关注偏差前15%的像素损失。

4.3 传播预测图像

预测其他帧的步骤与”添加参考图像信息“这一步相似相似。使用到的模块(诸如LSTT等)已经在4.1~4.4中详细阐述了,因此接下来不再赘述。
在这里插入图片描述

图3,如图所示,是预测其余图像的步骤

AOT模型在预测其余帧时,步骤如下:

  • 1)位置编码和ID编码*
    使用关键特征图生成位置编码,使用one-hot-mask生成ID编码。这两个编码添加到特征图的方式都是直接相加。

  • 2)LSTT模块
    LSTT模块就是进行了三次Multi-Head Attention结构,不同的是KQV的输入。

    2.1)self-attention
    KQ:关键特征与位置编码融合后的特征图作为KQ特征图
    V:关键特征图
    输出:curr_self_embs

    2.2)long-term attention
    Q:curr_self_embs
    K:ref_img中得到的长期记忆,即ref_self_embs
    V:ref_img中得到的长期记忆,即ref_self_embs结合ID编码
    长期记忆:K(ref_self_embs),V(ref_self_embs结合ID编码)
    长期记忆一直使用结合了ref_imgs的长期记忆,短期记忆会不断更新

    2.3)short-term attention
    Q:curr_self_embs分块
    K:前一帧图像的slef-attention模块的输出,并进行分块
    V:前一帧图像的slef-attention模块的输出结合ID编码后,再分块

  • 3)更新短期记忆
    本帧图像的slef-attention输出并分块+本帧图像的slef-attention模块的输出结合ID编码后,再分块
    本次更新的短期记忆将用于下一帧图像的LSTT模块计算。

可以发现,本文传播预测mask时,采取的是transformer+记忆机制的方式来进行时序信息传播的。共有三个Multi-Head-Attention结构。

  • 本帧特征
    第一个Multi-Head-Attention结构的输入是本帧图像的关键特征图,得到本帧图像的信息
  • 长期记忆
    长期记忆是参考图像和参考图像与对应掩码的结合。使用第二个Multi-Head-Attention结构找到本帧图像与长期记忆的相关性。
    在这里,长期记忆是视频分割模块的核心和唯一分割标准
  • 短期记忆
    这里的短期记忆是前一帧图像和前一帧图像与前一个掩码结合的组合,使用第三个Multi-Head-Attention结构计算本帧图像与前一帧图像的区别。在这里短期记忆辅助本帧图像进行分割。
  • 4)decoder得到预测mask并计算loss
    这个和参考图像一致,没什么好说的。

至此,AOT的结构已经讲解完毕、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15年408-数据结构

第一题 解析: 栈第一次应该存main的信息。 然后进入到main里面,要输出S(1),将S(1)存入栈内, 进入到S(1)中,1>0,所以还要调用S(0) S(0)进入栈中,此时栈内从下至上依次是main(),S(1),S(0) 答案选A 第二题&…

Java基于相似算法实现以图搜图

一、简述 本文主要讲如何利用图片相似性算法&#xff0c;基于LIRE来实现图片搜索。 二、依赖 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.lucene/lucene-core --><dependency><groupId>org.apache.lucene</groupId><…

Apache Solr:深入探索与常见误区解析

Apache Solr&#xff1a;深入探索与常见误区解析 Apache Solr 是一个强大的搜索引擎&#xff0c;基于 Lucene 构建&#xff0c;广泛应用于电商平台、日志分析、内容管理系统等领域。Solr 的功能强大&#xff0c;然而它的配置和使用过程却不乏一些容易误解和出错的地方。本文将…

Spring validation校验框架

第1步&#xff1a;导入依赖 <!-- 校验框架--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> 第2步&#xff1a;为需要校验的参数&…

Leetcode 739.42. 每日温度 接雨水 单调栈 C++实现

问题&#xff1a;Leetcode 739. 每日温度 算法1&#xff1a;从右到左 栈中记录下一个更大元素的「候选项」。 代码&#xff1a; class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n temperatures.size();vector<…

【echarts】报错series.render is required.

总结&#xff1a;就是echarts无法保存renderItem函数到json里&#xff0c;因为renderItem是个封装方法&#xff0c;因此需要初始化加载时重新插入renderItem即可 1.描述&#xff1a;控制台报错series.render is required. 原数据json如下&#xff1a; {type: "bar"…

【数学分析笔记】第3章第4节闭区间上的连续函数(2)

3. 函数极限与连续函数 3.4 闭区间上的连续函数 3.4.4 中间值定理 【定理3.4.4】若 f ( x ) f(x) f(x)在 [ a , b ] [a,b] [a,b]上连续&#xff0c;则它一定能取到最大值 M M M与最小值 m m m之间的任何一个值。 M max ⁡ f ( x ) , x ∈ [ a , b ] , m min ⁡ f ( x ) , …

Vmware 静态ip配置

虚拟机网络设置NAT 查看当前的网络接口 ip addr编辑网络接口配置文件 sudo vi /etc/sysconfig/network-scripts/ifcfg-<接口名>配置静态 IP 地址 Vmware ➡ 编辑 ➡ 虚拟网络编辑器 ➡ Nat设置 参考上图进行配置&#xff0c;千万不要配置宿主机的配置 BOOTPROTOstat…

2023_Spark_实验十一:RDD基础算子操作

一、RDD的练习可以使用两种方式 使用Shell使用IDEA 二、使用Shell练习RDD 当你打开 Spark 的交互式命令行界面&#xff08;也就是 Spark shell&#xff09;的时候&#xff0c;它已经自动为你准备好了一个叫做 sc 的特殊对象&#xff0c;这个对象是用来和 Spark 集群沟通的。你…

女性在网络安全行业崛起,引领行业新风向

1、网络安全自诞生之日起&#xff0c;就与女性有着不解之缘。 ●二战期间&#xff0c;美国雇佣了1万名女性作为“密码女孩”来破译日本人和德国人发送的密信。 ●英国同样雇用了7000多名女性在英国密码分析中心工作&#xff0c;约占全部工作人员的四分之三。 ●世界上的第一…

108.游戏安全项目:信息显示二-剑侠情缘基址分析

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信…

spring-boot web + vue

依赖的软件 maven 1. 官网下载zip 文件&#xff0c;比如apache-maven-3.9.9-bin.zip 2. 解压到某个盘符&#xff0c;必须保证父亲目录的名字包含英文&#xff0c;数字&#xff0c;破折号&#xff08;-&#xff09; 3. 设置环境变量M2_HOME, 并将%M2_HOME%\bin添加到windown…

openpnp - 散料飞达不要想着做万能版本,能够贴合现有的物料就好

文章目录 openpnp - 散料飞达不要想着做万能版本&#xff0c;能够贴合现有的物料就好概述笔记天真的版本改进的版本物料编带标准物料编带的样式对于散料飞达关心的尺寸不同编带宽度的散料飞达关键尺寸的列表8mm物料编带12mm物料编带16mm物料编带24mm物料编带32mm物料编带44mm物…

【Linux】环境变量(初步认识环境变量)

文章目录 1. 环境变量1.1 基本概念 2. 认识常见环境变量2.1 PATH2.2 HOME2.3 SHELL2.4 PWD2.5 USER 3. 理解环境变量 1. 环境变量 在main函数的命令行参数中&#xff0c;有argc、argv、env三个参数。 argc&#xff1a;命令函参数的个数argc&#xff1a;存放每个参数的具体数值…

FPGA学习(1)-mux2,2选1多路器

目录 1 开发板配套资料 1.1学习网址和资料网址 2.创建工程文件 2.1创建过程 2.2写程序及仿真测试 2.2.1 写程序生成电路 2.2.2仿真 2.2.3 生成执行文件并烧录 3.实验现象 买的小梅哥店铺的开发板&#xff1a;xc7z020clg400 看的小梅哥的视频&#xff1a;03C _基于ZYN…

提取出散射矩阵归一化相位的含义

散射矩阵的值是从图像中获得的&#xff0c;相位角是距离导致的&#xff0c;所以要归一化&#xff0c;VV/HH VV幅度/HH幅度。 VV相位-HH相位

Java-数据结构-Map与Set-(一) ٩(๑>◡<๑)۶

文本目录&#xff1a; ❄️一、搜索树&#xff1a; ☑ 1、概念&#xff1a; ☑ 2、操作-插入&#xff1a; 代码&#xff1a; ☑ 3、操作-查看&#xff1a; 代码&#xff1a; ☑ 4、操作-删除&#xff1a; 代码&#xff1a; ☑ 5、性能分析&#xff1a; ❄️二、搜索&#…

如何在Ubuntu上查看和刷新DNS缓存

DNS缓存是用于DNS查找的临时存储系统&#xff0c;负责将域名转换为IP地址。进行DNS查询时&#xff0c;系统会检查缓存中的相关信息。如果找到了&#xff0c;那么它会加速域名解析的过程。如果DNS缓存中的数据过时或不正确&#xff0c;则需刷新它以确保使用正确的信息。本文主要…

自己掏耳朵怎么弄干净?双十一必买的四大可视挖耳勺分享

我们在掏耳朵时是不是老是觉得要么掏不干净&#xff0c;要么太进去了弄到痛耳朵。因为耳道属于我们一个盲区&#xff0c;在使用棉签或者普通耳勺容易因为操作不当弄伤耳膜。可能还会照成不可逆的后果。所以自己在掏耳勺更加推荐大家使用可视挖耳勺会更加干净和安全。那么&#…

【MATLAB代码】二维环境下的RSSI定位程序,自适应锚点数量,带图像输出、坐标输出、中文注释

程序描述 MATLAB编写的RSSI定位程序&#xff0c;自适应锚点数量&#xff0c;带图像输出、坐标输出、中文注释。 功能概述&#xff1a; 本程序实现了在二维平面上通过接收信号强度指示&#xff08;RSSI&#xff09;进行定位的功能。它使用多个锚节点的信号强度测量来估计未知…