ETH的Silvano Galliani等人在2015年发的一篇ICCV文章。这篇文章提出的方法被命名为Gipuma,其最大的创新之处就在于采用了一种非常适合GPU大规模并行处理的diffusion-like propagation scheme,即所谓的red-black (RB) scheme,也就是把全图的像素分为互相包含,互为邻域的红色像素群与黑色像素群,如下图左所示,然后每次要嘛利用相应邻域内的黑色像素参数同时更新所有的红色像素的参数,要嘛就利用相应邻域内的红色像素参数同时更新所有的黑色像素的参数,同一颜色像素的参数更新是完全独立的,因为都是只参考了各自邻域内的另一种颜色像素的参数(此轮迭代中不变化)(邻域形式如下图中和右所示),因此同一颜色像素的参数更新是完全可以并行处理的,可以想见,如果GPU单元个数允许,每次迭代中整幅图像上是有一半的像素在同时进行更新的,计算效率非常的高。
这种red-black scheme是一种用来并行化message-passing type updating schemes的标准方法,也已经被用在了belief propagation上,只可惜我之前一直都没有看到更没有想到这么好的并行策略。
另外Gipuma方法和我的方法不同的地方还有:
一、它采用的support plane model还是通过直接法向量然后推导平面单应的方式来表示的;二、它搜索深度值时有考虑越小的深度值应该搜索的深度间隔越小一点,越大的深度值应该搜索的深度间隔越大一点;
三、采用的匹配代价函数不是NCC,而是那种类似双边滤波的形式;
四、在综合考虑多幅支持图的匹配代价时,使用的是取匹配代价值最小的K个代价值的平均值,我觉得这个不够合理,还不如采用Huber M-estimator的形式呢。