Tile-based Optical Flow 算法流程与基本思想

Tile-based Optical Flow 算法是Google Jump 全景相机中使用的光流算法,速度快,精度高,在以视觉效果为评价标准的virtual camera view 插值中表现出色。谷歌已经为其申请了专利,可见肯定了其商业价值。

其基本思想是,对参考图像分块(tile),通过块匹配,找到图像划分后的块的光流,然后插值到像素级的光流,同时计算每个像素光流的置信度,把上述光流场和对应的置信度场矩阵输入到双边算子中,得到最终的边缘平滑的光流场。

分块和双边算子是其最重要的特点,分块匹配保证找到置信度较高的块的光流,而且速度快,在插值过程中根据前步块匹配的结果又能得到一个置信度场,双边算子使filter结果保持边缘平滑,既可以去噪又可以修补(inpaint),而且双边算子也很快。

算法大体分为四步:
1.归一化每一幅单幅图像,去除不同的曝光和对比度设置带来的变化;
2.计算一个粗粒度的基于块的匹配,对于参考图像中的每一个非交叠的32*32大小的块,在相邻图像256*64区域内,暴力搜索它的最佳亚像素级的匹配块;
3.上采样这个逐块的光流场形成逐像素的光流场,同时生成一幅逐像素的置信度测量,置信度反映每个对应像素光流的可信度;
4.将上述计算得到的光流和置信度估计输入到一个时域一致的双边算子中,它会在置信度高的地方寻找一个最佳的相似的输入流,同时尽可能的保持双边平滑(保护边缘不被模糊的时空区域平滑)。

参考图像I0,邻接图像I1,对于Google jump系统,左向两两邻接的图像计算16次光流,右向两两邻接的图像计算16次光流,总计32次。
对I0\I1进行归一化,减去均值,除以方差,形成新的I0′,I1’。为加速计算,只对灰度图像做。

给定这些归一化后的图像,对I0’中非交叠的每一个32*32大小的tile,在I1’中对应位置水平方向运动[0,224]垂直方向运动[-16,16]区域执行一个暴力搜索以寻找最匹配的tile。
对每一个tile T0′,计算一个224*32的平方差之和(SSD)距离图像D(u,v),这个过程可以使用滑动窗口滤波和FFTs加速,在Lewis 1995年的论文中归一化的互相关(normalized cross-correlation)已经做了了。
我们使用Halide实现上述算法,进一步提高了性能。

下一步我们从D(u,v)提取亚像素级的光流估计,这是通过在D(u,v)的极小值附近3*3窗口区域内拟合一个二次方程,然后在这个方程中再求其极小值实现的。
同样的,我们也可以用这个方程生成一个关于该tile Ti’光流计算的置信度Ci。如果两个tiles匹配的非常好而且通过这种匹配计算的定位非常好,则Ci就应该大,反之亦然。

这些逐tile的光流和置信度估计{Ui,Vi,Ci},下一步要经过一系列的针对模型假设(异常点,低纹理,重复纹理,目标边界与tile边界不对齐,前向后向对称)的启发式的变换。

然后把上述结果,Feed to 双边算子中,生成平滑的光流估计,同时保持在视频序列中的边缘。

 

上述过程中第3步,通过逐块tile的光流场和置信度生成逐像素的光流场与置信度,考虑到以下各种复杂的情况,进行了一系列的变换:

1.重复纹理
如果在相邻图像中有多个重复纹理,那对于一个特定的tile,在SSD图像中可以找到多个局部极小值,它们和全局最小值差别不大。但在双边算子滤波的阶段,只能有一个最小值与一个tile对应,所以,我们需要降低这个tile的置信度。
假设di是全局最小值,di’是第二小,他们之间的距离最少相隔32像素,据公式(2)更新此tile对应的置信度Ci。

2.低方差tile(也就是没有纹理)
计算tile T的方差var(T),并据此更新Ci。计算方差是在输入图像数值(0-255)之间。

3.异常tiles
正常的光流,邻近tile的flow是相似的,对于一些tile如果其周边的tile都与其不相似,则要降低它的置信度。
在4连通邻tile中找到与其最相似的tile,计算他们归一化后的距离,更新Ci。

4.考虑图像特点的上采样
最近邻插值会出现成块的光流场,没有考虑到参考图像的结构。双线性和三线性插值会生成过平滑的假影。
这里使用一种改进的最近邻上采样方法,用周围四个tile所指示的(u,v),计算参考图像像素点周围8邻域和这个四个方向所指示的图像像素点周围8邻域之差,选择最小的作为它的(u,v)。
其置信度要在与其较为匹配的tile的置信度的基础上进行一定程度的衰减。

5.光流对称性
图像对中两个对应点前向和后向光流应该是对称的。计算一个评价某点前向和后向流对称的标准,据此标准改变其置信度。

可以总结出上述变换基本都是在置信度场上做文章。

专利文本

https://patents.google.com/patent/US9342873

转载请注明:《Tile-based Optical Flow 算法流程与基本思想

发表评论