想象一个场景:我们在高铁站候车,由于进站比较早,我们还需要再等会儿。这时手里有一个3D相机,然后你在那儿瞎琢磨,如何能通过拍照识别旅客的身高呢? 视觉测量已经不是一个新鲜的话题了,但是里面蕴含的知识还是很值得学习的。首先,我们了解一些基本概念:

一、针孔相机模型

简单的说,针孔相机模型就是把相机简化成小孔成像。这里引出两个概念:三大坐标系以及像素点坐标的计算。

1.三大坐标系:
  • 世界坐标系:目标物体位置的参考系。除了无穷远,世界坐标可以根据运算方便与否自由放置。
  • 摄像机坐标系:摄像机站在自己角度上衡量的物体的坐标系。摄像机坐标系的原点在摄像机的光心上,z轴与摄像机光轴平行。它是与拍摄物体发生联系的桥头堡,世界坐标系下的物体需先经历刚体变化转到摄像机坐标系(旋转和平移),然后再和图像坐标系发生关系。
  • 图像坐标系:以摄像机拍摄的二维照片为基准建立的坐标系。用于指定物体在照片中的位置。
2.对于3D空间中的一个点,其投影到图像平面上的像素点坐标计算过程为:

其中f为相机焦距,X,Y,Z为相机坐标系下某点坐标,x,y为相机图像坐标系下对应该点坐标,c为主点坐标(一片薄的双凸透镜的焦点距离,一般指镜片的中心到焦点为止的光轴上的距离,这个镜片的中心叫做“主点”,表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数)。

二、简单的相机标定

相机标定是一个求解内外参的过程,这里我们以内参为例做个简单标定。 1)未知:焦距f(单位: 像素) 2)已知:图像平面上观察到的目标高度h(单位:像素) 3)假设

  • 目标高度H和到相机的距离Z已知;
  • 目标与图像平面对齐。

标定过程如下图所示:

三、消失点

我们都有经验,当你沿着铁路线去看两条铁轨,又或者沿着公路线去看两边排列整齐的树木时,两条平行的铁轨或两排树木连线相交与很远很远的某一点,这点在透视投影中叫做消失点vanishing point),又称灭点

  • 每组平行线都在同一方向,在不同的点上相遇。
  • 另一件事是,平行线都在同一平面上,它们都会收敛到共线消失点。

有了前面的概念做基础,我们看下如何进行目标定位与测量,这里给出两种情况: A. 目标定位和测量#1 1)未知:目标位置和高度(单位: m) 2)已知:图像中目标和地面的接触点以及目标的头部点(单位:像素) 3)假设

  • 焦距、主点和相机高度已知;
  • 相机和参考面对齐;
  • 目标位于参考面上。

求解过程如下图所示: B.目标定位和测量#2 1)未知:目标位置和高度(单位: m) 2)已知:图像中目标和地面的接触点以及目标的头部点(单位:像素) 3)假设

  • 焦距、主点和相机高度已知;
  • 相机朝向未知;
  • 目标位于参考面上。

求解过程如下图所示: 最后,我们给出部分代码及测量结果: