问题标签 [spatial-transformer-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - 空间变压器网络中的投资回报率裁剪
TL;DR:Spatial Transformer Network 的 RoI 裁剪方法如何工作?
在阅读 PyTorch Spatial Transformer Network 教程时,我看到该网络使用了一种我以前从未见过的特殊 RoI 池化,称为 RoI 裁剪。
阅读文档F.affine_grid
并F.grid_sample
没有解释太多那里发生的事情,所以我尝试阅读网络的论文以希望理解以及有关 Faster RCNN的一些博客文章详细说明了图片方法,但仍然没有帮助。
我觉得每个来源都有不同的细节,无法了解那里到底发生了什么,就像我了解正常的 RoI 池和对齐方法一样好。
现在,这是我脑海中的大图:
1. 像往常一样,将建议的 RoI 坐标映射到特征图空间。
2. 将坐标归一化到 [-1, 1] 的范围内(我猜这是为了下面的仿射变换)。
3. 计算(使用下图中的方法)变换值。
4. 现在,我假设我们将转换应用于 RoI 像素?5. 最后,我假设我们对最终坐标进行插值(即双线性插值)。
有人可以简单解释一下 RoI 裁剪方法的整个过程吗?我觉得我可能错过了什么。
conv-neural-network - 空间变换网络如何学习适当地变换图像?
看完这篇文章,我有点理解网络是如何转换图像的;但是,我无法了解它实际上是如何学习哪个方向有助于后续分类步骤的。
几乎在帖子和PyTorch 的 STN 教程的结尾,它们展示了 STN 如何旋转和转换图像以获得更好的分类性能。
它仅基于训练集吗?比如,如果大多数图像倾向于具有特定的方向,比如说旋转了 20 度,那么网络会学习旋转未旋转的图像吗?
tensorflow - 创建空间变压器网络时无错误
卷积层的输出特征图是(Batch, Height, Width, Channels)。当我们在 tensorflow 中初始化 CNN 时,我们得到 None 值来代替 Batch。我正在尝试在自定义层中实现空间变换器网络,因此需要将层矢量化为卷积层批量大小。当我尝试初始化网络时,空间转换器层给出了无法使用 None 值执行操作的错误。
我的代码如下所示
上述代码的错误:
python - Keras 试图将 Spatial Transformer 插入 VGG16 网络
我正在尝试将空间变压器网络插入 Keras 中预制的 VGG16 模型中。这是我的代码:
背景:VGG16 模型的默认输入大小为 224x224。我正在使用的 VGG16 的来源可以在https://keras.io/api/applications/vgg/找到。我将使用来自https://github.com/fastai/imagenette的 Imagenette 数据。
我正在尝试做的事情:制作一个由 1 个定位层和 1 个双线性插值层组成的空间变压器网络模块。我正在尝试将这些层插入到输入和 conv 1-1 之间的 VGG16 模型中。插入后,我将冻结所有其他权重,仅使用 Imagenette 数据训练插入的模块。
我得到的错误:
我究竟做错了什么?
python - 如何在 Keras 中为 2 个图像实现空间变换器网络?
我正在编写一个用于深度估计的连体网络。这意味着 2 个输入 RGB 图像(左和右),用于视差图生成的自动编码器,然后是用于将视差图与输入图像一起转换的空间变换器网络。
该变换的输出是一个新图像,然后用于最小化该特定图像与输入图像之间的重建误差。
有没有办法在 Tensorflow / Keras 中实现这一点?问题是自动编码器只是简单的层集,但是空间变换器呢?
这是更好地可视化问题的架构。
python - 使用 PyTorch grid_sample 从右图和逆深度重建左图
我正在实现本文中的基本架构: PyTorch 中的https://arxiv.org/pdf/1705.08260.pdf。
它由自动编码器和空间转换器组成。自编码器的输出与右图像一起被馈送到 ST 或可以说是双线性采样器,并且该双线性插值的输出用于计算左图像与其自身之间的 L1 损失。
但是有一个问题,我真的不认为这段代码会做我想做的事。PyTorch中grid_sample函数的官方文档是指网格必须在-1和1范围内,但网格本身的最大值大于1。如果这段代码是正确的,那么我应该重写网格归一化的行?
我的第一个想法是像这样重写它:(grid / torch.max(grid) - 0.5) * 2
所以值介于 -1 和 1 之间,那么我应该删除 padding_mode 参数,因为没有值超出范围。
如果这是正确的,那么让我知道,这样我就可以确定这是正确的道路。