以源码GLUNet.py为例

1使用self.pyramin来提取图像的金字塔特征,这里使用的是VGG网络。

第一部分是在原图feature上进行金字塔特征提取,分别取原图8倍下采样率,4倍下采样率对应的feature。对应GLU-Net网络的左边部分。第二部分是把原图固定到256分辨率后分别取16分辨率和32分辨率尺度下的feature。

2使用的金字塔特征提取网络-VGG

第一步分用于提取图片的四个尺度的特征,1,1/2, 1/4, 1/8。这个特征特征x_quarter和x_eight用于GLU-Net中的H-Net。 是根据VGG网络的层的结构名字来取的。

第二部分 同理 用于L-Net部分。

torch.nn.functional.interpolate是上采样插值方式,这里0.5是把feature采样到原来0.5倍。

3在固定分辨率(256)的16feature level上进行全局的相关性预估的到flow4。

之后反卷积为1 2 32 32 大小的flow。这里的channel = 2 表示每个像素点在X方向和Y方向预估的displacement变换的数值。

3.1

---

coarsest_resolution_flow

---

self.corr 使用余弦相似度计算连个feature的相关度,MutualMatching中是把coorr4d是在X,Y两个方向上进行优化。得到最后的全局相关corr4。

把corrt输入到Mtop玩了中(一个解码作用的网络)得到预测的 2D dense correspondence map。

之后再得到flow4。

3.2反卷积到32分辨率尺度上

4 level 32

c23是对应32分辨率的feature,我们使用使用这个尺度对应的flow即up_flow_4_warping来对其进行变换得到warp3。

之后使用FunctionCorrlation来计算c13 和 warp3的局部相关性 得到corr3。

warp操作对应黑色六边形。

计算局部相关性是浅绿色块。

讲上面计算的up_flow4与corr3进行concat操作。

输出解码网络decoder3 得到预测的flow:res_flow3 和提取后的特征 x3。

flow3 等于res_flow3 与  up_flow4 的相加。

---

RefineNet

将解码网络提取出来的特征x3 放入RefineNet (精修网络)进一步优化特征预测一个flow 与  flow3叠加。

这个网络作用就是精修 进一步提高精度。

这里有两个shortcut操作,这部分得到flow3 对应途中w2。

之后w2线性上采样插值 到原图1/8 的feature level 进行与之前类似操作。 整个网络最后放回flow1 然后对原图(img_source)进行变换就得到最终变换后的图片。

GLU-Net代码的理解相关推荐

  1. python 协程 php,python3.x,协程_python协程练习部分代码的理解?,python3.x,协程,asyncio - phpStudy...

    python协程练习部分代码的理解? import asyncio import threading async def wget(host): print('wget {}'.format(host ...

  2. cesium 根据SampledPositionProperty与timeline实现轨迹回放功能(跟随视角、上帝视角) 详细代码与理解记录

    cesium 根据SampledPositionProperty与timeline实现轨迹回放功能(跟随视角.上帝视角) 详细代码与理解,文末附完整代码 最终类似效果展示 大致原理摘要 引用出处 这个 ...

  3. 【3D detection】CT3D部分代码的理解

    [3D detection]CT3D部分代码的理解 获得box的八个角点坐标 在无限高的圆柱中随机采样 Embedding和Encoding paper: Improving 3D Object De ...

  4. Swin Transformer原文及其代码的理解

    Swin Transformer原文及其代码的理解 第一版 更好的排版笔记:Notion 名词解释 基础知识: 搞懂Vision Transformer 原理和代码,看这篇技术综述就够了(三) tok ...

  5. 在python中对于函数定义代码的理解正确的理解是_Python 5 函数

    一.判断题(共10小题,10分) 在Python中,自定义函数的关键字是def.(1分) A.对 B.错 参考答案: A 形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了.(1分) ...

  6. 【嵌入式】工程模板的编写以及工程代码的理解

    [嵌入式]工程模板的编写以及工程代码的理解 21/100 保存草稿 发布文章 weixin_52621323 未选择文件 文章目录 1)前言 2)STM32工程模板(基于标准库) -- 野火版本 2. ...

  7. Visual Studio 2022版本 B站黑马程序员C++自学分享-第一阶段(主要包括:自己敲的代码、通过注释来备注上自己对代码的理解)

    Visual Studio 2022版本 B站黑马程序员C++自学分享-第一阶段(主要包括:自己敲的代码.通过注释来备注上自己对代码的理解) 前言 一.第一阶段 C++基础语法入门 对C++有初步了解 ...

  8. Visual Studio 2022版本 B站黑马程序员C++自学分享-第三阶段(1)(主要包括:自己敲的代码、通过注释来备注上自己对代码的理解)

    Visual Studio 2022版本 B站黑马程序员C++自学分享-第三阶段(1)(主要包括:自己敲的代码.通过注释来备注上自己对代码的理解) 前言 三.第三阶段 C++提高编程 介绍C++泛型编 ...

  9. 李沐动手学深度学习:08 线性回归(代码逐行理解)

    目录 一.相关资料连接 1.1 李沐视频 1.2 代码.PPT 二.代码及笔记(使用Jupyter Notebook) 2.1 线性回归从零开始实现 2.1.1 基本概念 2.1.2 基础优化算法 2 ...

  10. java 七大设计原则之依赖倒置,里氏替换原则(文字代码相结合理解)

    java 七大设计原则之依赖倒置,里氏替换原则,文字代码相结合理解 七大设计原则有哪些? 为什么要使用七大设计原则? 依赖倒置原则 里氏替换原则 喜欢就争取,得到就珍惜,错过就忘记.人生也许不尽完美, ...

最新文章

  1. 谁说子网掩码的1必须连续?关于像255.255.0.255这样的非连续子网掩码
  2. python 基础 9.0 安装MySQL-python-1.2.5客户端
  3. MDA:模型驱动架构 简介
  4. MySQL为什么有时候会选错索引?
  5. 开源开放 | 开源大学在线实践数据集及知识图谱MOOPer(CCKS2021)
  6. 思杰 Citrix xen server 6.2 企业级布署(一)
  7. android之StrictMode介绍
  8. 超市扫码器应该怎么使用
  9. java更改图片小于32kb_echarts上传图表图片到Java 后台保存出来是空白图片?
  10. Java面向对象练习题之银行卡类和用户类
  11. 利用支付宝短信服务接口 实现手机号 验证码登录Demo
  12. 人工智能新风口上,网易是否能够突围?
  13. 架构必备:Rate limiting 的作用和常见方式
  14. 直播软件开发公司来告诉你什么是互动直播
  15. 论金融IT公司程序员的职业发展
  16. 指数基金(一):宽基指数简介
  17. sketch如何做设计稿交互_设计干货 | Sketch 的交互插件强势更新,再也不用为跳转的事发愁了!...
  18. ▷Scratch课堂丨物理模拟地球公转,值得你的分享收藏!
  19. 计算机启动到桌面就蓝屏怎么办,电脑一开机进入桌面就蓝屏,怎么处理
  20. mybatis中的关联查询

热门文章

  1. 【泛微ecology】做好系统备份及各项安全工作
  2. 2022DASCTF X SU 三月春季挑战赛 checkin 各种脚本学习分析
  3. 最新!2021中国大学排名发布:清/北/浙大/上交/武大居前五
  4. PSS E 3.0(大型电力系统仿真计算软件).rar
  5. 网上图书商城系统毕业设计,网上图书销售系统设计与实现,毕业设计论文毕设作品参考
  6. Java怎样掉包,如果不想你被称做掉包侠,那么请有效地学习机器学习算法知识...
  7. 无法将“pytest”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
  8. 2022数据库系统工程师 下午 试题四 真题答案
  9. (网络编程)linux系统的远程操做
  10. Proxmox VE安装、集群配置