在网上找的一个视频,强烈建议观看:https://space.bilibili.com/328453794?spm_id_from=333.788.b_765f7570696e666f.2
视频对应的博客为:https://ethanli.blog.csdn.net/【转载】
Stereo processing by semiglobal matching and mutual information
SGM的匹配过程分为4步骤:
1.代价计算2.代价聚合3.视差估计(最优求解,即最小化能量函数)34.后处理优化
代价计算:针对A图像素和B图对应的像素,计算其不匹配程度(代价)
如果视察图正确,则warp后的同名点的对应也正确,则代价小。
代价的计算方式很多:从最简单的像素差的绝对值,到互信息(MI),Census Transformer(CT),NCC等,再到先提取特征,然后特征计算预先距离(如SIFTFlow,CFOG等)。不同的计算方式有着不同的特征,如MI对环境光的变化更鲁棒,SFIT特征对光照也鲁棒。
2.代价聚合
将该像素与周围像素的关系也通过代价形式,加入到能量函数中。
如光流估计中,希望周围像素的光流一致;视察估计中,也希望同一目标视差平滑,不同目标的视差可以有较大变化
所以,SGM中,比较当前像素与周围像素的视差,当视差小于阈值时,代价为p1;视差大于阈值,代价为p2(p2与像素变化成反比;像素变化大,表示两个不同目标,视差可以大,代价小;像素变化小,代价大)
3.视差估计
即利用最优化的办法求步骤2中代价的最小值的解
相关代码介绍:https://yongqi.blog.csdn.net/article/details/102634143?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.not_use_machine_learn_pai
代码:https://github.com/ethan-li-coding/SemiGlobalMatching
GA-Net: Guided Aggregation Net for End-to-end Stereo Matching
patchmatch
https://github.com/ethan-li-coding/PatchMatchStereo