之前做过PTN的论文翻译,但有些没把握住精髓,这次对PTN进行了提炼,会清楚许多。
ICLR 2018
提出PTN(Polar-Transformation Network)
实现对平移的不变、对旋转和伸缩的等变
转换到极坐标系,此时平面卷积对应于旋转和尺度上的群卷积。
笛卡尔坐标下的图像
I o ( x , y ) {I_o}\left( {x,y} \right) Io(x,y)
极坐标下的图像
I o ( e ξ sin θ , e ξ cos θ ) = λ ( ξ , θ ) {I_o}\left( {{e^\xi }\sin \theta ,{e^\xi }\cos \theta } \right) = \lambda \left( {\xi ,\theta } \right) Io(eξsinθ,eξcosθ)=λ(ξ,θ)
其中 ( ξ , θ ) ∈ S O ( 2 ) × R + \left( {\xi ,\theta } \right) \in SO\left( 2 \right) \times {R^ + } (ξ,θ)∈SO(2)×R+
(1) 预测原点。
输入图经过一个极坐标原点预测器(polar origin predictor)(其实只是个传统的卷积网络),得到一个热图(heat map),代表着“有效信息”的分布情况。
(2) 将图像的原点挪到预测的质心。
将热图的质心作为原图的原点,输入极坐标转换器(polar transformer),从而能得到图像的极坐标表示。显然,若极坐标原点预测器能够正确预测原点位置的话,则极坐标转换器输出的极坐标表示相对于物体在原图上的位置是具有不变性(invariance)的。原图为 I {I} I,将预测的质心 t 0 t_0 t0作为新的原点后得到 I o {I_o} Io: I o = I ( x − t 0 ) {I_o=I(x-t_0)} Io=I(x−t0)
(3) 第一层卷积:在xy平面上进行。
f ( r ) = ∫ x ∈ R 2 I o ( x ) ϕ ( r − 1 x ) d x f\left( r \right) = \int\limits_{x \in {R^2}} {{I_o}\left( x \right)\phi \left( {{r^{ - 1}}x} \right)dx} f(r)=x∈R2∫Io(x)ϕ(r−1x)dx
其中 r ∈ S O ( 2 ) × R + r \in SO\left( 2 \right) \times {R^ + } r∈SO(2)×R+,即 r r r是一个极坐标中的一个“点”,具有模长和方向两个量。
假设 r = ( ρ , θ ) r = \left( {\rho ,\theta } \right) r=(ρ,θ), x = ( x 1 , x 2 ) x = \left( {{x_1},{x_2}} \right) x=(x1,x2)可以看做是原点 ( 0 , 0 ) (0,0) (0,0)到 x x x的向量,则 r − 1 x {r^{ - 1}}x r−1x代表把笛卡尔平面上的向量 x x x的长度缩短 ρ \rho ρ,然后逆时针旋转 θ \theta θ。
最后得到的卷积结果 f ( r ) f(r) f(r)定义在极坐标上。
(4)第二层网络:定义在极坐标上。
最开始对笛卡尔平面上的图卷积得到了 f ( r ) f(r) f(r),接下来对 f ( r ) f(r) f(r)卷积,因此卷积的定义域要转变到极坐标上。卷积结果为 h ( r ) h(r) h(r),也是一张以极坐标为自变量的特征图。
h ( r ) = ∫ s ∈ S O ( 2 ) × R + f ( s ) ϕ ( s − 1 r ) d s h\left( r \right) = \int_{s \in SO\left( 2 \right) \times {R^ + }} {f\left( s \right)\phi \left( {{s^{ - 1}}r} \right)ds} h(r)=∫s∈SO(2)×R+f(s)ϕ(s−1r)ds
其中 r , s ∈ S O ( 2 ) × R + r,s \in SO\left( 2 \right) \times {R^ + } r,s∈SO(2)×R+
我们可以将极坐标参数化,写成(模长,方向)的实行,即 r = ( ξ , θ ) r = \left( {\xi ,\theta } \right) r=(ξ,θ)。由于上式 h ( r ) h(r) h(r)的卷积公式中s和r都属于同一个群,因此此时可以写成双重积分的形式(即传统的平面卷积形式)。
h ( r ) = ∫ s λ ( ξ , θ ) ϕ ( ξ r − ξ , θ r − θ ) d ξ d θ h\left( r \right) = \int_s {\lambda \left( {\xi ,\theta } \right)\phi \left( {{\xi _r} - \xi ,{\theta _r} - \theta } \right)d\xi d\theta } h(r)=∫sλ(ξ,θ)ϕ(ξr−ξ,θr−θ)dξdθ
由于笛卡尔上旋转和缩放变换可以被转换为极坐标上的平移表换,而传统CNN对于平移又是具有等变性的,故此时也可以对旋转和缩放保持等变性。因此,整个网络对旋转和缩放变换能保持等变性。
POLAR TRANSFORMER MODULE
作用
输入预测的质心、原图,输出经过平移的极坐标表示图像。
细节
转换到极坐标需要对原图进行采样,论文作者采取了和STN一样的采样方式,对于某个目标点的坐标 ( x i t , y i t ) \left( {x_i^t,y_i^t} \right) (xit,yit),县转化为其在原图上的坐标 ( x i s , y i s ) \left( {x_i^s,y_i^s} \right) (xis,yis),
其中 ( x 0 , y 0 ) \left( {{x_0},{y_0}} \right) (x0,y0)是原点, H , W H,W H,W分别为输出图像的高和宽。 r r r是距离原点的最大距离,论文中取$ r = H 2 + W 2 r = \sqrt {{H^2} + {W^2}} r=H2+W2。
由于 ( x i s , y i s ) \left( {x_i^s,y_i^s} \right) (xis,yis)不一定是整数,因此还要进行一定的插值。
WRAP-AROUND PADDING
为了保持特征图的分辨率,大多数CNN实现使用零填充。这对于极坐标表示并不理想,因为极坐标是关于角轴具有周期性。如果输入图像旋转,输出会发生垂直移动( θ \theta θ为纵轴),在边界处换行;因此,最上面和最下面的行的保持一致是最合适的。这是通过垂直方向上的环绕填充来实现的尺寸。特征图的最上面的行使用特征图最下面的行进行填充,反之亦然,这样一来旋转就不会损失信息。在水平维度中使用零填充。
POLAR ORIGIN AUGMENTATION
为了提高该方法的鲁棒性,我们在训练时间内通过向回归极原点坐标添加随机移位来增强极原点。 请注意,与传统的增强方法(如旋转输入图像)相比,这几乎不需要计算成本。
其实这也是一种数据增强,目的是提高原点预测的准确度,以保证平移不变性的鲁棒性。