机器视觉作业上课没认真听看不懂题目,想要了解一下关于消失点这类基本概念。
使用的课程截图来自coursera的机器人学感知,链接为:导言 - 图像形成的几何学 | Coursera。
导言
此项研究的目的是解决两个问题,一是找到画面中的物体在3D场景中的位置,二是找到相机在3D场景中的位置optical center。
定位需要vanishing points,一个vanishing point可以估计2个维度的旋转自由度,得到3D的坐标需要用到2个消失点。找到图片中相互垂直的两组平行线,每组平行线在图片远处的交点就是消失点。
如果没有消失点,可以找到一个planar object的四个点,然后跟自身相关联。也可以使用一个已知的3D物体,用它的两个面。
还有一种不用消失点的方法,就是拍多张照片计算旋转量和变换。使用bundle adjustment技术对图片进行非线性变换(可能是单应性矩阵这种,不确定,再看看),可以得到所有viewer的坐标。
相机建模
眼睛长在两边的鸟怎么判断自己离水面的距离?
相机由两个基本元素构成:成像芯片和透镜。
首先介绍透镜。由相似三角形可以很轻易地得到公式 ,其中,f是焦距,a是物体与len的距离,b是成像平面与len的距离。
拉远b,图像将会变得模糊;靠近objection,成像将会变大(周所周知)。
单视角几何图形
重建3D场景的两个方法:还原平行或垂直、得到消失点。
消失点是原场景中的许多无限远点构成的一个点,现实中并没有这样一个点。
消失点的性质:
- 任意两条平行线都有相同的消失点
- 成像中的经过消失点的线都平行
- 一个图片中可能有多个消失点
平行于ground plane,穿过optical center,垂直于image plane的一个平面就是horizontal plane。它与image plane的交线就是vanishing line。
- 可以通过ground plane中的两组平行线得到vanishing line。我认为是通过这两组平行线可以得到两个消失点,再将这两个点连起来得到消失线。
- 所有与optical center在同一高度的点会投影到消失线上。由此能够计算出camera的高度。
- 当然,如果场景中有一个已知高度的object,也能够借此得知场景中的物体的高度。
使用上述结论的前提是,camera的角度是完全平行于ground plane,或者说image plane是完全垂直于地面。