算法概述
这篇文章是基于SGM的扩展参数模型,考虑了不同路径方向的单独惩罚,不同路径聚合代价的加权,以及与灰度梯度相关的惩罚。对于8个方向的SGM来说,扩展模型有20个参数,不宜进行手动调参,所以作者还提出利用covriance matrix adaptation evolution strategy (CMA-ES)[3][4]进化算法来自动调参,调参可以在Shark3 open-source machine learning library [1]进行实现。然后基于GPU进行SGM算法的加速,结果可以达到11.7fps,视差范围为64像素。经过测试,扩展参数的SGM的精度更高。
下面给出扩展参数的SGM变体的参数组合:
为什么要给不同的路径赋予不同的权重?
如上图,左边是只在水平方向进行SGM算法,视差图效果不错,而右边是只在垂直方向进行SGM算法,视差图出现大量的条纹,视差严重偏离正确值。
出现这种现象的原因是:因为SGM的惩罚项是偏向于局部区域内视差一致的,所以在垂直方向视差单调变化的路面上,应用垂直方向的SGM优化会导致大量条纹,条纹现象的出现其实一定程度上表现了视差的误差大小。
由于这个直觉,我们可以很容易想到,因为不同方向的视差变化程度不一样,所以要给不同的方向的路径赋予不同的权重。
实验结果
算法在middleburry 数据集和synthetic sequence数据集[2]上进行参数训练和验证。得到的结果如下:
借鉴
这篇文章提出的对不同路径的惩罚以及不同路径的聚合代价赋予不同权重的思想很好,但是这篇文章给出的是用进化算法来对参数进行离线优化,耗时很长,如果可以在线自动调参,那么将会很方便。
参考文献
[1] C. Igel, T. Glasmachers, and V. Heidrich-Meisner, “Shark,” Journal of Machine Learning Research, vol. 9, pp. 993–996, 2008.
[2] T. Vaudrey, C. Rabe, R. Klette, and J. Milburn, “Differences between stereo and motion behaviour on synthetic and real-world stereo sequences,” in Proceedings of the Conference on Image and Vision Computing New Zealand. IEEE Press, 2008, pp. 1–6.
[3] H.-G. Beyer, “Evolution strategies,” Scholarpedia, vol. 2, no. 8, p.1965, 2007.
[4] N. Hansen and A. Ostermeier, “Completely derandomized selfadaptation in evolution strategies,” Evolutionary Computation, vol. 9, no. 2, pp. 159–195, 2001.