您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

空间变换网络简单介绍

时间:2020-09-11 10:29:32  来源:  作者:

作者:Manjunath Bhat

编译:ronghuaiyang

导读

对空间变换网络STN做了一个简单的原理性的介绍。

作为谷歌Summer of Code项目的一部分,我要实现的第一个模型是空间变压器网络。空间变压器网络(STN)是一个可学习的模块,可以放置在卷积神经网络(CNN)中,有效地增加空间不变性。空间不变性是指模型对图像的空间变换如旋转、平移和缩放不变性。不变性是指即使输入被变换或轻微修改,模型也能识别和识别特征的能力。空间变压器可以放置到CNN中,以完成各种任务。图像分类就是一个例子。假设任务是对手写数字进行分类,每个样本中数字的位置、大小和方向变化显著。一个空间转换器将提取、变换和缩放样本中感兴趣的区域。现在CNN可以完成分类的任务。

空间变换网络简单介绍

 

空间变压器网络由3个主要组成部分组成:

(i) 定位网络:该网络以一个batch的图像的四维张量表示(宽度x高度x通道x Batch_Size)作为输入。它是一个简单的神经网络,有几个卷积层和几个dense层。将变换参数预测为输出。这些参数决定了输入必须旋转的角度、要完成的平移量以及聚焦于输入特征图中感兴趣的区域所需的比例因子。

(ii) 采样网格生成器:对batch中每幅图像使用定位网络预测的变换参数,其形式为大小为2×3的仿射变换矩阵。仿射变换是一种保留点、直线和平面的变换。经过仿射变换后,平行线保持平行。旋转、缩放和平移都是仿射变换。

空间变换网络简单介绍

 

这里,T是这个仿射变换,A是表示仿射变换的矩阵。θ11, θ12, θ21, θ22被用来确定图像旋转的角度。θ13, θ23分别确定了图像沿宽度和高度的平移量。因此,我们得到了一个转换索引的采样网格。

(iii) 变换后索引上的双线性插值:现在图像的索引和坐标轴已经进行了仿射变换。它的像素移动了。例如,一个点(1,1)在轴逆时针旋转45度后变成(√2,0),因此要找到变换点处的像素值,我们需要使用四个最接近的像素值进行双线性插值。

空间变换网络简单介绍

 

为了找到点(x, y)上的像素值,我们取4个最近的点,如上图所示。其中,floor(x)表示最大整数函数,ceil(x)表示ceiling函数。线性插值必须在x和y两个方向上完成。因此,这个函数返回完全转换后的图像,并在转换索引处使用适当的像素值。

纯Julia实现空间变压器网络的代码可以在这里找到:https://github.com/thebhatman/Spatial-Transformer-Network/blob/master/src/stn.jl。我在一些图像上测试了我的空间转换器模块的功能。下面是转换函数输出的一些示例图像。左边的图像是转换器模块的输入,右边的图像是输出。

  1. 放大感兴趣的区域
空间变换网络简单介绍

 

  1. 对人脸进行放大并旋转45度。
空间变换网络简单介绍

 

  1. 对图像沿着宽度平移,移到中心。
空间变换网络简单介绍

 

从上面的例子可以清楚地看出,空间转换器模块能够执行任何类型的仿射变换。在实现过程中,我花了很多时间来理解数组的reshape、permutedims和concatenation是如何工作的,因为当我使用这些函数时,很难调试像素和索引是如何移动的。在STN实现过程中,调试插值和图像索引是最耗费时间和最令人沮丧的部分。

现在,我计划使用一个CNN来训练这个空间转换器模块,以便对一个杂乱和扭曲的MNIST数据集进行手写数字分类。空间变压器将能够增加CNN的空间不变性,因此期望即使在数字被平移、旋转或缩放时也能给出良好的分类结果。

 

英文原文:https://medium.com/@manjunathbhat9920/spatial-transformer-network-82666f184299



Tags:空间变换网络   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作为谷歌Summer of Code项目的一部分,我要实现的第一个模型是空间变压器网络。空间变压器网络(STN)是一个可学习的模块,可以放置在卷积神经网络(CNN)中,有效地增加空间不变性。...【详细内容】
2020-09-11  Tags: 空间变换网络  点击:(100)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条