立体匹配:给两幅图去做对应点的匹配
一、数据集:(找到输入)
1.有哪些?
3种分别是,MiddleBury, KITTI,SceneFlow。
2.数据集的新旧?
kitti和middlebury是比较旧的数据集
Sceneflow数据集是比较新的数据集,是在CVPR 2016提出的
3.数据集各自适合的任务?
(1)MiddleBury
-
格式:
- 几十对
- 2964*1988 pixels
-
适合做的任务:
-
是一个室内高分辨率数据集
-
作评测。
-
(2)KITTI ( 2012/2015)
-
格式是:
- 1260*370 pixels
- 200 training/ 200 testing 训练集200对双目图像、测试集200对 视差的真值是稀疏的(约20%的像素有真实视差值数据)
-
适合做的任务:
- 室外驾驶场景,是面向自动驾驶的标准测试数据集,目前有kitti 2012和kitti 2015两种。
- 在kitti上作评测
(3)Sceneflow
-
格式是:
- 960*540 pixels
- 39, 000 training/ 2, 000 testing
-
适合做的任务:
- 是一个大规模的合成数据集,用来训练深度立体匹配网络。做pre-train。
二、特征提取:
特征点:图像的角点、边和斑点的识别
提取特征点的方法比如SIFT,SURF,ORB
-
opencv中的SIFT是Dog与SIFT的结合。Dog用于关键点的检测,SIFT用于描述关键点的特征(图像描述符)。
-
SURF是Hessian与SURF的结合,Hessian用于关键点的检测,SURF用于描述关键点的特征。
-
ORB是FAST和BRIEF的结合,FAST用于关键点的检测,BRIEF用于描述关键点的特征。
速度上ORB>SURF>SIFT,SURF的鲁棒性(抗干扰能力)更好一些。
三、匹配代价计算:
1.计算
(1)定义了一个处理左右两幅图像中匹配像素点的函数 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBpPrfbU-1637481847215)(https://www.zhihu.com/equation?tex=f%28I_%7BL%7D%28x%2Cy%29%2CI_%7BR%7D%28x%2Bd%2Cy%29%29)] ,
这里的 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XsGdIhme-1637481847217)(https://www.zhihu.com/equation?tex=d)] 是我们定义的视差范围,也就是对于左图中的一个像素点 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H340ujUw-1637481847218)(https://www.zhihu.com/equation?tex=I_%7BL%7D%28x%2Cy%29)] ,我们给它在右图中定义一个寻找 视差的范围 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVWJ4TlM-1637481847220)(https://www.zhihu.com/equation?tex=d)] 。
举个例子:假设我们对于匹配图像定义了视差的寻找范围为0~16,也就是说 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pFjwdKBx-1637481847221)(https://www.zhihu.com/equation?tex=d%5Cin%280%2C16%29)] ( [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pP6ANQCz-1637481847222)(https://www.zhihu.com/equation?tex=d)] 是整数),对于左图的一个像素点 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fHpqBnXb-1637481847224)(https://www.zhihu.com/equation?tex=I_%7BL%7D%28x%2Cy%29)] 在右图中能够计算匹配代价的区域就是 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bkzg9JD1-1637481847225)(https://www.zhihu.com/equation?tex=I_%7BR%7D%28x%2B0%2Cy%29%E5%88%B0I_%7BR%7D%28x%2B16%2Cy%29)] 这之间。
(2)对于每一个像素点,在给定的视差范围内,找到 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5UO2gqEF-1637481847225)(https://www.zhihu.com/equation?tex=min%28f%28I_%7BL%7D%28x%2Cy%29%2CI_%7BR%7D%28x%2Bd%2Cy%29%29%29%2Cd%5Cin%28d_%7Bmin%7D%2Cd_%7Bmax%7D%29)] ,我们是不是就可以认为这个最小值,即为正确的匹配点,
而这个最小值对应的 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJ0eU1Ze-1637481847226)(https://www.zhihu.com/equation?tex=d)] 就是我们要找的视差(这一步运用的是Winner Take All: WTA策略)
(3)对左图每一个像素计算代价,然后找出最优,得到全图的视差图。
过程中,所有像素的dmin到dmax的代价组成了DSI空间(disparity space image). DSI中的元素C(x,y,d)代表了Ir(x, y)与It(x+d, y)的相关性(代价)。
2.常见代价计算方式
第一步定义像素和像素之间的相关性,即匹配代价(matching cost)。常见的代价有,
- 绝对值差异(Absolute differences)