学习资料

2.3 双目3D视觉原理及编程作业2

笔记

两台相机一左一右对统一目标进行拍摄(相机的高度相同),得到两张图像,这两张图像只有左右偏移,我们可以根据这个偏移得到深度信息(目标距离相机的远近)。
背后的原理是:距离越远,左右偏移越大,距离越近,左右偏移越小,也就是说两张图像中同一点的左右偏移是和深度存在一定关系的。
在这里插入图片描述
其中 d 1 d 2 d1 d2 d1d2指的是目标物体与两个相机光心连线与成像平面的交点,也就是目标物体在图像中对应的位置
在这里插入图片描述
小三角形的高比上底边 = 大三角形的高比上底边,化简得到下面的式子,其中 B B B是两个光心的距离是已知的, f f f是焦距也是已知的,我们只需要知道视差(同一个物体在两个图像当中位置的差异)就可以得到深度 Z Z Z了。
在这里插入图片描述
那么关键就变成了找到两张图片中的匹配关系(左图当中一点对应右图当中哪一点),因为只要有了匹配关系就能得到视差,基于视差就能用上面的公式计算深度了。

得到匹配关系中基本的信息是:

  • 左图当中某一点在右图当中的对应点是同一个高度的,也就是只需要变换x不需要变换y。
  • 左图当中的目标是偏右的,右图中的目标是偏左的。也就是假设左图中点的x坐标是200(以图片左下角为原点),右图中的对应点一般不会超过200,会比200小。
    在这里插入图片描述
    下面是某一个视差计算的算法,首先在右图中找到左图点对应的坐标,然后计算相似度(综合考虑滑动窗口内的所有点而不是单个像素点),不行就向左慢慢偏移,直到找到对应的点、
    在这里插入图片描述
    采用上面的算法得到视差图(左边的边缘效果很差),使用视差图得到深度图,基于深度图转换成点云
    在这里插入图片描述

更多推荐