参考:计算机视觉基础1——视差与深度信息 - 湘厦人 - 博客园 (cnblogs.com)
深度信息感知是人类产生立体视觉的前提。生理过程一定是相当复杂,此处,我们只从物理角度,并采用数学的方法来讨论。
Inferring depth from images taken at the same time by two or more cameras.
1.基本透视投影
1.1基本原理
1.2 透视投影是多对一的关系,投影线上的任何一点对应同一个像点
1.3 如果用两个摄像机,则可以消除这种多对一,从而能够确定第三维坐标Z的值,即深度信息
1.4 为什么可以感知深度信息呢?我们的左右眼从略微不同的角度观察景物,而这种视差与物体所处的位置有关
2.视差
2.1 视差和距离的直观概念
自己可以体验一下:将手指头放在离眼睛不同距离的位置,并轮换睁、闭左右眼,可以发现手指在不同距离的位置,视觉差也不同,且距离越近,视差越大。
2.2 立体图像
Anaglyph images are used to provide a stereoscopic 3D effect, when viewed with glasses where the two lenses are different (usually chromatically opposite) colors, such as red and cyan. Images are made up of two color layers, superimposed, but offset with respect to each other to produce a depth effect. Usually the main subject is in the center, while the foreground and background are shifted laterally in opposite directions. The picture contains two differently filtered colored images, one for each eye. When viewed through the "color coded" "anaglyph glasses", they reveal an integrated stereoscopic image. The visual cortexof the brain fuses this into perception of a three dimensional scene or composition.
这种立体照片的原理是利用特殊的眼镜,使左右眼接收不同颜色的光线,通过大脑合成立体照片。
2.2 决定深度信息感知的因素
关于深度信息的感知理论还在发展中,这是一个复杂的过程,很难用单一的理论来完全描述,决定深度信息感觉的因素很多。如消失线,同类物体的大小,遮挡关系等等。甚至,用单眼也可以感知深度信息。
2.3立体感知与视差、像距和物距的关系
假设两个相机的内部参数一致,如焦距、镜头等等,为了数学描述的方便,需引入坐标,由于坐标是人为引入的,因此客观世界中的事物可以处于不同的坐标系中。假设两个相机的X轴方向一致,像平面重叠,如下图所示,坐标系以左相机为准,右相机相对于左相机是简单的平移,用坐标表示为(Tx,0,0)
Tx一般称为基线(baseline),根据三角形相似关系,很容易得出空间中的一点P(X,Y,Z)分别在左右像平面上的投影坐标。f为焦距(也就是像距),Z表示物距。
理论上成像面是在黑点的下面,那是真实的像面,但一般为了方便讨论,会使用虚拟的像面,也就是上面图像的黑色水平方向的线。虚拟的像面所成的像是正的,真实的像面所成的像是倒着的。
上面右侧camera所成的像可以等价于下图中的(x-Tx, Y, Z):
显然,深度信息Z和视差(Disparity / Parallax) d成反比,这与我们用手指做试验是相吻合的,这也是为什么近的物体看起来比远的物体移动得快。