Using Vanishing Points for Camera Calibration

来源:互联网 发布:sql注入测试工具汇总 编辑:程序博客网 时间:2024/06/05 03:43

昨天和今天看了一篇用 Vanishing Point 来进行相机标定的的文章,是一篇1990年的工作,论文链接在最后。里边有关相机标定的一些符号和矩阵表示跟我之前看的《An Invitation to 3-D Vision From Images to Geometry Models》这本书里的表示有些不同,最后大部分内容都统一了起来,但还有一些内容无法统一。

相机标定中,想要获得的参数为内参 αx,αy,ox,oy, 外参 R,T.

Vanishing Point: 对于场景中的一条线S,这条线和像平面是不平行的, 当S 向无穷远延伸时,无穷远处的点在像平面上的投影就是S对应的Vanishing Point vS. 设f表示相机的焦距,n=(nx,ny,nz)表示S方向的单位向量,那么vS=(fnxnz,fnynz,f)

论文中介绍了有关 Vanishing Point 的三个Property:
1. 对于和像平面不平行的直线的集合A={Si},这些线对应的vS的集合为α={vSi},那么α中的点在一条直线上, 当且仅当A中的线和同一个平面ΠA平行。
2. 对于三条相互垂直的线Q,RS, 它们对应的 Vanishing Point 分别为vQ,vRvS, 如果知道其中上面三个点中的一个,比如 vQ, 而且也知道在像平面里经过另外一个点vR 的直线的方向, 那么就可以计算得到vR,vS 的坐标。
3. 对于 2 中三个点,它们构成的三角形的垂心就是相机的光轴与像平面的交点。

对于上面三个 property, 论文中给出的证明前两个没看懂,最后一个看懂了,我的理解是三个点在图像中对应的点构成的三角形的垂心的像素坐标就是内参 ox,oy. 关于另外连个参数的获取,我没看懂,但在论文中,主要是通过手动的方式去获得 Vanishing Point,从而去求其他参数。

相机外参主要是两个或多个相机之间相对位置关系。对于两个相机 C,C, 以C 为参考相机, 对于场景中的一个点M, 在两个相机坐标系中的坐标分别为 P,P, 那么

P=RP+T^

其中R 表示C的坐标轴在 C 里的坐标, R 为正交矩阵, T^ 表示 C 的坐标原点在 C 中的坐标。

C 中, 场景中相互垂直的三个直线的单位方向向量v1,v2,v3, 构成一个矩阵V=[v1,v2,v3], 这三条直线在C中对应的矩阵为V, 那么就有如下关系

V=RV

如果 V,V 已知, 那么可以获得
R=VV1=VVT

对于点 P,P, 之间还存在另一种关系
P=R(PT)

其中 T 表示 C 的坐标原点在 C 的坐标,那么可以获得
T=PRTP

上面关于 R,T 的求解看似很简单, 作者在论文中也介绍了很多,但从论文中看, 都需要人工去测量,我搞不懂从真实场景坐标到像素坐标的中间过程该怎么去测量,这是让我很头疼的地方。因为以前看的张正友的标定方法,基本不需要手动去测量,所以看到这种方法, 感觉怪怪的。

理解中一定有很多错误的地方,但是先把自己的理解写下来,要不然睡一觉就忘了。

论文题目 《Using Vanishing Points for Camera Calibration》,链接为 https://courses.engr.illinois.edu/cee598vsc/machineproblems/Using%20Vanishing%20Points%20for%20Camera%20Calibration.pdf

0 0