立体匹配---左右一致性检测/遮挡区填充

左右一致性检测(Left-Right Consistency(LRC) check):

   左右检测对实验效果的提升是很显著的,无论是视差图的视觉效果还是数据精度。很多时候LRC都是论文的遮羞布,在论文主体部分优势不明显的情况下,通过LRC依然能得到过得去的结果,从而掩盖了核心算法的孱弱。是的,一些不错的会议文章也是这么干的。这就是论文写作的小trick吧,也是一种潜规则了。

   [Occlusion]遮挡,顾名思义是只出现在一幅图像,而在另一幅图中看不到的那些点。在立体匹配算法中如果不针对遮挡区域做一些特殊处理是不可能通过单幅图提供的有限信息得到遮挡点的正确视差的。遮挡点通常是一块连续的区域,记作occluded region/area

   [LRC check] LRC check的作用是实现遮挡检测(Occlusion Detection),得到左图对应的遮挡图像。 具体做法:根据左右两幅输入图像,分别得到左右两幅视差图。对于左图中的一个点p,求得的视差值是d1,那么p在右图里的对应点应该是(p-d1)(p-d1)的视差值记作d2。若|d1-d2|>thresholdp标记为遮挡点(occluded point)

  如下依次是,左图的视差图,右图的视差图,teddy左图,左图对应的二值遮挡图。
   
  立体匹配---左右一致性检测/遮挡区填充_第1张图片

               立体匹配---左右一致性检测/遮挡区填充_第2张图片

   [Occlusion Filling]得到了二值的遮挡图像,之后是为所有黑色的遮挡点赋予合理的视差值。对于左图而言,遮挡点一般存在于背景区域和前景区域接触的地方。遮挡的产生正是因为前景比背景的偏移量更大,从而将背景遮盖。
   
具体赋值方法是:对于一个遮挡点p,分别水平往左和往右找到第一个非遮挡点,记作plpr。点p的视差值赋成plpr的视差值中较小的那一个。d(p)= min (d(pl),d(pr))(Occluded pixels have the depth of the background)

  下面依次是左图的视差图,进行occlusion filling后的视差图。 

    立体匹配---左右一致性检测/遮挡区填充_第3张图片

[Median Filtering]这种简单的Occlusion Filling方法在遮挡区域赋值方面效果显著,但是对初始视差的合理性和精度依赖较高。而且会出现类似于动态规划算法的水平条纹,所以其后常常跟着一个中值滤波步骤以消除条纹。

  下图是中值滤波的结果。

              立体匹配---左右一致性检测/遮挡区填充_第4张图片
  
这样,通过LRC check检测出遮挡点,对其进行视差估计,再对整幅图做中值滤波,得到的结果就好多了。

 

你可能感兴趣的:(双目视觉,双目立体视觉逐步实现)