计算机视觉之立体视觉
计算机视觉之立体视觉 01、立体视觉 立体视觉是一种计算机视觉技术,其目的是从两幅或两幅以上的图像中推理出图像中每个像素点的深度信息。 http://img78.mtnets.com/5/20210316/637514562156758616415.png 立体视觉的应用领域? 机器人、辅助驾驶/无人驾驶、无人机等等。 立体视觉推理像素点深度的原理? 立体视觉借鉴了人类双眼的“视差”原理,即左、右眼对于真实世界中某一物体的观测是存在差异的,我们的大脑正是利用了左、右眼的差异,使得我们能够辨识物体的远近。左、右眼的差异在立体视觉技术中,我们把它称作“视差(值)”。相应地,利用左、右图像中所有位置的视差,便可生成一幅视差图。 如何更好地理解视差以及视差图呢? 我们先做个游戏,看图找不同(下面这两幅图实际是两个相机从不同位置拍摄的同一场景)。当然,由于这两幅图不同的地方太多,所以一眼便能找到很多的不同之处。我们这里来看两处明显的差异:,左图中最左侧的圆锥在右图中消失了;第二,左图中最右侧的杯子在右图中有明显的移位。实际上,如果我们把右下角的杯子看做一个质点,它们的水平(默认图像已做完校正和极线约束,这句看不懂可以暂时跳过,不影响理解)移位即为视差(值)。 http://img77.mtnets.com/5/20210316/637514562173606616834.png 现在,对于“视差”我们已经有了一个直观的理解(这很重要!),下面可以进一步解释视差图了。刚才我们把一个完整的杯子看做一个质点,能明显看出杯子在左右的移位,那么,根据我们的直觉,可以想象对于左图像的每一个像素点在右图像中都发生了移位,理论上,左图像中每一个像素点都能在右图像中找到一个像素点与之匹配,然后计算两者的水平位移差值即得到该像素点的视差,依次迭代完整幅图像的所有像素点便可获得视差图。 现在给视差图一个通俗的理解: 视差图中每一个像素点的值是空间中相机光心到某一3D点的距离成比例所赋予的值(这句话写的有点绕,回头我再调整一下语序)。 http://img77.mtnets.com/5/20210316/637514562183278616326.png 02、单目系统是指只有一个摄像头的系统 http://img77.mtnets.com/5/20210316/637514562190454616120.png 对于现实中的两个物体无法判断远近 03、双目系统(两个相机) http://img77.mtnets.com/5/20210316/637514562203870616833.jpg 极平面:O1、O2、P三个点确定的平面 极点:O1、O2连线与像平面l1、l2的交点e1、e2 基线(baseline):O1O2 极线:极平面与两个像平面之间的交线l1l2 http://img77.mtnets.com/5/20210316/637514562208082616915.png 那么,在我们给出了Reference与Target之后,我们应该如何解决参考面与目标面之间的对应关系呢? http://img76.mtnets.com/5/20210316/637514562222434616445.jpg 这个时候,就需要对极约束,对极约束意味着一旦我们知道了立体视觉系统的对极几何之后,对两幅图像间匹配特征的二维搜索就转变成了沿着极线的一维搜索。 http://img76.mtnets.com/5/20210316/637514562227582616349.jpg 图中黑色实线为R平面一条极线,绿色为T平面一条极线。给定一幅图像上的一个特征,它在另一幅图像上的匹配视图一定在对应的极线上(图中将P,Q视为特征,可以看到在T上的成像在绿色直线上) 通常我们使用的立体视觉系统都是比较标准的系统,如图所示。 http://img76.mtnets.com/5/20210316/637514562231794616498.jpg 一旦我们知道了对应点的搜索区域,就可以将其从2D降到1D,这样就形成了更加方便的立体视觉,对应点都被约束再同一条极线上,也就是图中的y直线。下面给出一个实际的示例(在理想情况下,我们希望两个摄像头的参数是一致的,并且两个相机的位置是平行的)。 http://img80.mtnets.com/5/20210316/637514562234758616363.jpg 视差与深度计算原理 在我们已经确保两个摄像头的参数是一致的,并且两者的位置是平行之后,我们的关注点就落到了如何计算物体的深度信息,这也是最重要最关键的地方。下面给出的是标准立体视觉系统下的计算原理。 http://img80.mtnets.com/5/20210316/637514562237878616814.jpg 04、视差(Disparity) 将同一空间物理点在不同图像中的映像点对应起来。这个差别,我们称作视差(Disparity)图像 http://img80.mtnets.com/5/20210316/637514562241310616202.jpg (要求场景没有变化,同一空间物理点) http://img80.mtnets.com/5/20210316/637514562243962616186.jpg
页:
[1]