【深刻理解】2018ECCV--全景视频的显著性检测
论文链接: Saliency Detection in 360° Video
简单介绍
这是一篇发表在ECCV2018上的文章。作者实现了对全景视频进行显著性检测。什么是显著性检测?我们都知道全景视频范围是360度*180度的(也就是一个球),但是我们真正在观看全景视频的时候,利用头戴设备观看到的视野范围(FoV)只有大概70度到80度。显著性检测旨在预测人们在观看全景视频的时候关注的区域。
全景图像显著性检测的关键步骤在于获取全景视频的特征。全景视频是一种“球形的、三维的”的数据,我们在存储全景视频时,会将全景视频投影到平面上再存储成我们熟悉的jpg等格式。投影的方法有很多,本文针对使用最广泛的一种投影方式——等角矩形投影(ERP)。
如Fig.1所示,左边一幅图是原始的一张全景图片,右边是投影后的图片,等角矩形投影就是将球面的经度线和纬度线投影成水平和垂直线。投影的好处是全景图片的内容是全覆盖的,坏处就是会引起形变失真。
如下图所示,经过ERP投影后,南北两极的像素被拉的很长,越靠近两极,形变越严重。换句话说,形变程度和纬度有关,同一纬度形变程度相同。赤道附近基本没有失真。
这时候问题就来了,对于投影后的全景图片,我们如何提取它的特征呢?显然,普通的卷积网络已经不适用了,因为形变失真后的图像不再满足权值共享,而且普通的卷积和形状是方形的,所以不能再用普通的CNN。
在related work中作者有简单介绍一些前人的工作。第一种是将标准的、普通的CNN网络直接用在ERP投影后的图片上,你们也知道了,这肯定不行。第二种是拉伸卷积核,让卷积核和图片匹配,之前我们提到ERP投影后形变程度和纬度有关,如果用这种方法,每个纬度都要定义一个卷积核,这就造成卷积核不是权值共享的,计算量和存储会很大。作者在文章中特别提到,我们在看全景视频的时候,虽然视野会变,但是人眼处理当前场景(或者说图片)的机制是不变的,所以我们在运用卷积网络提取特征的时候,卷积核的权值应该是共享的。最后一种是Spherical CNNs,发表在ICLR2018上,并获得最佳论文奖,有兴趣的可以看我这一篇理解Spherical CNNs.这篇文章利用三维旋转群SO(3)的旋转不变性,将卷积建立在流形上,用快速傅里叶变换计算卷积。这个方法好是好,但是脱离我们的直觉,相当不直观。
所以,作者提出了一种新的卷积。
球面卷积
球面卷积的定义:将图像 f f f和滤波器 k k k建模成 S 2 S^2 S2上的函数。卷积定义为:
[ f ⋆ k ] ( x ) = ∫ S 2 f ( R n ) k ( R − 1 x ) d R [f\star k](x)=\int_{S^2}f(Rn)k(R^{-1}x)dR [f⋆k](x)=∫S2f(Rn)k(R−1x)dR分析看看,这球面卷积到底是啥玩意儿。
n定义为北极点,R为一旋转矩阵。
其实 R n Rn Rn表示的就是球面上某一点 x x x,换句话说,球面上的任何一点都可以通过旋转北极点得到。表达式为 x = R n x=Rn x=Rn左乘 R − 1 R^{-1} R−1得 R − 1 x = n R^{-1}x=n R−1x=n
所以,原卷积公式可以换为 [ f ⋆ k ] ( x ) = ∫ S 2 f ( x ) k ( n ) d R [f\star k](x)=\int_{S^2}f(x)k(n)dR [f⋆k](x)=∫S2f(x)k(n)dR原来球面卷积就是将球面上的每一个点旋转回北极再与原北极点相乘累加求和。所以上式的卷积即为将球面上的点旋转到滤波器位置(北极点),相乘累加的结果即为卷积的结果。
应用到球形的图像上,滤波器定义为以北极点为核心的球冠,其值为非零值,大小由 r k r_k r<