论文笔记:SphereNet(ECCV 2018)

SphereNet是适应全景图的卷积方式(学习框架),他通过扭曲卷积核元素的位置来抵消全景图的扭曲。SphereNet可以将透视图训练得到到的模型迁移在全景图上。 核心思想和EquiConvs类似。
改进采样方式,使用球面平均采样避免在全景图上靠近极点的地方过采样。

Introduction

为什么要提出SphereNet?
全景图正常是投影在球面的,此时不会扭曲。当时显示设备是2D,所以要把一个球面图像投影2D平面就需要做等距投影(equirectangular projection),此时这个图像称为等距图像(equirectangular image)。一个物体在等距图像的不同位置外观是会变换的,特别是再靠近极点地方,所以全景图会有扭曲失真情况。
而常规CNN,需要更多参数训练数据/时间来学习全景图的这种扭曲。而且全景图数量少、标注困难,所以需要SphereNet其将几何变换直接引入CNN。
由于改变的是卷积核元素的采样位置,其他参数不用修改,所以是可以很方便从透视图迁移到全景图。

Related Work

  1. 利用权重图,每个像素当做顶点根据位置不同设置不同权重,实现使用图卷积网络,但是没有解决边界问题,只能用于小图(50 x 50)
  2. spherical CNNs将旋转不变性编码到网络中,但是原论文只给出分类实验,是否能够方便迁移到其他任务?
  3. 在靠近极点地方增大卷积核的大小,这种是对等矩形表示中扭曲的一种简单的近似,意味着权重只能沿着每一行共享,从而导致模型参数的显著增加
  4. 使用盒型投影,理解为6面图,每面是FOV=90的透视图。在边界地方不连续。

Method

Kernel Sampling Pattern

在这里插入图片描述
定义单位(半径为1)球为 S S S,球的表面为 S 2 S^2 S2,球上一点为 s = ( ϕ , θ ) \mathbf{s}=(\phi, \theta) s=(ϕ,θ),其中纬度 ϕ ∈ [ − π 2 , π 2 ] \phi \in\left[-\frac{\pi}{2}, \frac{\pi}{2}\right] ϕ[2π,2π] 和经度 θ ∈ [ − π , π ] \theta \in[-\pi, \pi] θ[π,π]

定义切平面 Π \Pi Π,其中心位于 s Π = ( ϕ Π , θ Π ) \mathbf{s}_{\Pi}=\left(\phi_{\Pi}, \theta_{\Pi}\right) sΠ=(ϕΠ,θΠ),例如: Π 0 \Pi_{0} Π0表示经纬度都为0的切平面,即中心在 s = ( 0 , 0 ) \mathbf{s}=(0,0) s=(0,0)

Π 0 \Pi_{0} Π0切平面上本地坐标用 x ( j , k ) \mathbf{x}_{(j, k)} x(j,k) j , k ∈ { − 1 , 0 , 1 } j, k \in\{-1,0,1\} j,k{1,0,1}表示卷积核元素位置,如下:

x ( 0 , 0 ) = ( 0 , 0 ) x ( ± 1 , 0 ) = ( ± tan ⁡ Δ θ , 0 ) x ( 0 , ± 1 ) = ( 0 , ± tan ⁡ Δ ϕ ) x ( ± 1 , ± 1 ) = ( ± tan ⁡ Δ θ , ± sec ⁡ Δ θ tan ⁡ Δ ϕ ) \begin{aligned} \mathbf{x}_{(0,0)} &=(0,0) \\ \mathbf{x}_{(\pm 1,0)} &=\left(\pm \tan \Delta_{\theta}, 0\right) \\ \mathbf{x}_{(0,\pm 1)} &=\left(0, \pm \tan \Delta_{\phi}\right) \\ \mathbf{x}_{(\pm 1,\pm 1)} &=\left(\pm \tan \Delta_{\theta}, \pm \sec \Delta_{\theta} \tan \Delta_{\phi}\right) \end{aligned} x(0,0)x(±1,0)x(0,±1)x(±1,±1)=(0,0)=(±tanΔθ,0)=(0,±tanΔϕ)=(±tanΔθ,±secΔθtanΔϕ)

比如 x ( ± 1 , 0 ) = ( ± tan ⁡ Δ θ , 0 ) \mathbf{x}_{(\pm 1,0)}=\left(\pm \tan \Delta_{\theta}, 0\right) x(±1,0)=(±tanΔθ,0)的表示:
在这里插入图片描述
对比EquiConvs,其实区别就在这个平面,SphereNet使用的是在点 s = ( ϕ , θ ) \mathbf{s}=(\phi, \theta) s=(ϕ,θ)的切平面,而EquiConvs使用的是边长等于夹角弧长的平面,2者区别在于平面中心点到球心的距离,SphereNet为1,EquiConvs为d=r/2tan(α/2),相同点是平面的fov与卷积核窗口对应的fov一致。
在这里插入图片描述
当切平面不在原点时,卷积核元素的切平面本地的平面坐标:
x ( ϕ , θ ) = cos ⁡ ϕ sin ⁡ ( θ − θ Π ) sin ⁡ ϕ Π sin ⁡ ϕ + cos ⁡ ϕ Π cos ⁡ ϕ cos ⁡ ( θ − θ Π ) y ( ϕ , θ ) = cos ⁡ ϕ Π sin ⁡ ϕ − sin ⁡ ϕ Π cos ⁡ ϕ cos ⁡ ( θ − θ Π ) sin ⁡ ϕ Π sin ⁡ ϕ + cos ⁡ ϕ Π cos ⁡ ϕ cos ⁡ ( θ − θ Π ) \begin{aligned} x(\phi, \theta) &=\frac{\cos \phi \sin \left(\theta-\theta_{\Pi}\right)}{\sin \phi_{\Pi} \sin \phi+\cos \phi_{\Pi} \cos \phi \cos \left(\theta-\theta_{\Pi}\right)} \\ y(\phi, \theta) &=\frac{\cos \phi_{\Pi} \sin \phi-\sin \phi_{\Pi} \cos \phi \cos \left(\theta-\theta_{\Pi}\right)}{\sin \phi_{\Pi} \sin \phi+\cos \phi_{\Pi} \cos \phi \cos \left(\theta-\theta_{\Pi}\right)} \end{aligned} x(ϕ,θ)y(ϕ,θ)=sinϕΠsinϕ+cosϕΠcosϕcos(θθΠ)cosϕsin(θθΠ)=sinϕΠsinϕ+cosϕΠcosϕcos(θθΠ)cosϕΠsinϕsinϕΠcosϕcos(θθΠ)
卷积核元素的切平面本地的平面坐标反推到球(等距投影图片)上的经纬坐标
ϕ ( x , y ) = sin ⁡ − 1 ( cos ⁡ ν sin ⁡ ϕ Π + y sin ⁡ ν cos ⁡ ϕ Π ρ ) θ ( x , y ) = θ Π + tan ⁡ − 1 ( x sin ⁡ ν ρ cos ⁡ ϕ I I cos ⁡ ν − y sin ⁡ ϕ I I sin ⁡ ν ) \begin{array}{l} \phi(x, y)=\sin ^{-1}\left(\cos \nu \sin \phi_{\Pi}+\frac{y \sin \nu \cos \phi_{\Pi}}{\rho}\right) \\ \theta(x, y)=\theta_{\Pi}+\tan ^{-1}\left(\frac{x \sin \nu}{\rho \cos \phi_{I I} \cos \nu-y \sin \phi_{I I} \sin \nu}\right) \end{array} ϕ(x,y)=sin1(cosνsinϕΠ+ρysinνcosϕΠ)θ(x,y)=θΠ+tan1(ρcosϕIIcosνysinϕIIsinνxsinν)
其中, ρ = x 2 + y 2 \rho=\sqrt{x^{2}+y^{2}} ρ=x2+y2 ν = tan ⁡ − 1 ρ \nu=\tan ^{-1} \rho ν=tan1ρ

整体过程为:
切平面本地的经纬坐标 -> 切平面本地的平面坐标 -> 球(等距投影图片)的经纬坐标
在这里插入图片描述
在这里插入图片描述
实现方面,卷积核元素的相对位置,在等距投影图像上每一行是一样的。可以使用查找表存储起来。由于反推得到的卷积核元素位置时带有小数,可以使用双线性插值或者最近邻插值,比如在希望得到特征图 f f f,位置 ( p x , p y ) \left(p_{x}, p_{y}\right) (px,py)处的值:
f ( p x , p y ) = ∑ n H ∑ m W f ( m , n ) g ( p x , m ) g ( p y , n ) f\left(p_{x}, p_{y}\right)=\sum_{n}^{H} \sum_{m}^{W} f(m, n) g\left(p_{x}, m\right) g\left(p_{y}, n\right) f(px,py)=nHmWf(m,n)g(px,m)g(py,n)

bilinear interpolation kernel:
g ( a , b ) = max ⁡ ( 0 , 1 − ∣ a − b ∣ ) g(a, b)=\max (0,1-|a-b|) g(a,b)=max(0,1ab)
nearest neighbor kernel:
g ( a , b ) = δ ( ⌊ a + 0.5 ⌋ − b ) g(a, b)=\delta(\lfloor a+0.5\rfloor-b) g(a,b)=δ(a+0.5b)
δ ( ⋅ ) \delta(\cdot) δ()论文中描述为Kronecker delta function???。
但是表示=0为1,!=0为0更合理一些。

Uniform Sphere Sampling

在这里插入图片描述
如果在等距投影图像上均匀采样,那么在球面上(右边蓝色)靠近极点的地方是更密集的,这也就意味着,如果使用相同步长,在靠近极点的地方步长更"短"了,也就导致过采样。所以提出球面平均采样避免在全景图上靠近极点的地方过采样。

Spherical Image Classification

将SphereNet集成到图像分类网络中,不引入新的模型参数,也不需要改变网络的训练

Spherical Object Detection

在这里插入图片描述
需要利用anchor的物体检测网络,比如SSD、Faster-RCNN、YOLO2/3。和卷积核一样需要对anchor进行投影计算扭曲位置。

Experimental Evaluation

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文提出应用在全景图上的卷积方法,改方法重新计算卷积核元素位置,需要考虑训练/测试时间花费情况和实现复杂程度。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值