1.F.affine_grid
作用: 根据仿射变换矩阵,生成该变换相对应的逐像素偏移矩阵;
输入:theta:尺寸为(batch_size,2,3)的矩阵,表示每张图像的仿射变换矩阵
size:输出图像的尺寸
输出:根据theta变化得到的逐像素偏移矩阵

2.F.grid_sample 则是根据这个偏移矩阵将原始图片逐像素扭曲warp到目标位置处形成一个新的图片。
输入:img:要warp的图像
grid:逐像素偏移矩阵
输出:偏移后的图像

例子:

#将图像扭转45度
img = ToTensor()(img).unsqueeze(0)  # img→tensor 3维→4维
M = torch.tensor(                   # 仿射变换矩阵[[[0.7071, -0.7071, 0],[0.7071, 0.7071, 0]]]
)
grid = F.affine_grid(M, size=(1, 3, 500, 500))
warp_img = F.grid_sample(img, grid)             # 扭转图片
tensor_to_pil = ToPILImage()                    # tensor→img
tensor_to_pil(warp_img.data.squeeze(0)).show()  # 4维→3维
根据指定角度扭转图像
#feature.size()[0]就是batch sizetheta = torch.zeros((feature.size()[0], 2, 3), requires_grad=False, device=feature.device)with torch.no_grad():# 指定要旋转的角度angle = rotate_angle * math.pi / 180.0          #计算放射变换矩阵theta   theta[:, 0, 0] = torch.tensor(math.cos(angle), requires_grad=False, device=feature.device)theta[:, 0, 1] = torch.tensor(math.sin(-angle), requires_grad=False, device=feature.device)theta[:, 1, 0] = torch.tensor(math.sin(angle), requires_grad=False, device=feature.device)theta[:, 1, 1] = torch.tensor(math.cos(angle), requires_grad=False, device=feature.device)#根据放射变换矩阵得到逐像素偏移矩阵grid = F.affine_grid(theta, feature.size())#根据这个偏移矩阵将原始图片逐像素扭曲warp到目标位置处形成一个新的图片transformed_feature = F.grid_sample(feature, grid).to(feature.device)

STN可以参考blibli的李宏毅的教学

spatial transformer network (STN)相关推荐

  1. PyTorch 进阶学习(二)————STN:空间变换网络(Spatial Transformer Network)

    文章目录 数据集的加载 空间变换网络的介绍 定义网络 训练和测试模型 可视化 STN 结果 官方文档地址: https://pytorch.org/tutorials/intermediate/spa ...

  2. 理解Spatial Transformer Network

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 概述 随 ...

  3. stn,spatial transformer network总结

    对整篇paper的一个总结:https://blog.csdn.net/xbinworld/article/details/69049680 github:1.https://github.com/D ...

  4. Spatial Transformer Networks(STN)详解

    目录 1.STN的作用 1.1 灵感来源 1.2 什么是STN? 2.STN网络架构![在这里插入图片描述](https://img-blog.csdnimg.cn/20190908104416274 ...

  5. Deformable ConvNets--Part2: Spatial Transfomer Networks(STN)

    转自:https://blog.csdn.net/u011974639/article/details/79681455 Deformable ConvNet简介 关于Deformable Convo ...

  6. 论文阅读:Spatial Transformer Networks

    文章目录 1 概述 2 模型说明 2.1 Localisation Network 2.2 Parameterised Sampling Grid 3 模型效果 参考资料 1 概述 CNN的机理使得C ...

  7. 论文阅读: Spatial transformer networks

    文章目录 CNN存在的问题 Spatial Transformer 方法 Localisation Network Parameterised Sampling Grid Differentiable ...

  8. Spatial Transformer Networks 论文解读

    paper title:Spatial Transformer Networks paper link: https://arxiv.org/pdf/1506.02025.pdf oral or de ...

  9. Paper:《Spatial Transformer Networks空间变换网络》的翻译与解读

    Paper:<Spatial Transformer Networks空间变换网络>的翻译与解读 导读:该论文提出了空间变换网络的概念.主要贡献是提出了空间变换单元(Spatial Tra ...

  10. Paper:《Spatial Transformer Networks》的翻译与解读

    Paper:<Spatial Transformer Networks>的翻译与解读 目录 <Spatial Transformer Networks>的翻译与解读 Abstr ...

最新文章

  1. 项目管理和缺陷跟踪工具Redmine
  2. 基于Yolo-V3对卫星图像进行储油罐容积占用率的研究
  3. listalias - 列出用户和系统别名
  4. 分享 - Social.framework
  5. ABAP UDO generation report
  6. 完美国际真数苹果_如果给你推荐一款很贵,但好用的苹果手机壳,你会买吗?...
  7. 使用编辑工具快速创建实体对象的方法
  8. 创建api java,如何创建静态Java API?
  9. android studio编译找不到程序包,AndroidStudio编译提示“程序包R不存在”可能的解决方案,希望你用不到。。。-Go语言中文社区...
  10. [导入]FtpClient Library升级到4.x
  11. Android面试题(一)
  12. Excel 宏编程-使用excel宏编写第一个Hello World程序实例演示!
  13. 新西兰计算机科学专业排名,2020年新西兰计算机科学专业排名榜
  14. Android - 控件android:ems属性
  15. 学习日志之synthesis and optimization(7)——Heuristic optimization
  16. [深度学习]动手学深度学习笔记-6
  17. 双十一快件近40亿再创历史新高;疫情挑战下中国受访者对科学的信任度位居全球第一 | 美通企业日报...
  18. 什么是黑盒测试和白盒测试、灰盒测试?
  19. python主函数调用格式_python函数介绍
  20. 手机蓝牙c语言开发,蓝牙协议栈的研究及其C语言实现

热门文章

  1. 简述计算机病毒的传播4种途径,4计算机病毒的传播途径.ppt
  2. 微信小程序周记(第一周 7.19-7.25)
  3. kubuntu16.04安装和卸载fcitx输入法
  4. 防火墙基本概念及分类
  5. java程序员生日祝福语_给程序员的一句话祝福语
  6. Excel中阳历转阴历
  7. css 背景图片虚化效果
  8. RealSense 图形识别之路 2.0
  9. 8queen(稍后补)
  10. Android安卓手机版Kindle字体修改