相机校参及C-arm校参 Camera calibration & X-ray calibration 01
背景介绍:本身是无计算机机视觉基础的留学生,自学过图像算法和基于计算机视觉的深度学习方面的内容。本次了解这方面的内容是因为工作需要。需求是做一个adapter或者理解为校参器,帮助在机器人做图像配准之前,对C-arm本身做一次内部参数矫正,而C-arm本身又和pinhole camera的成像原理非常的相似(后面详细解读)。但是学习过程中发现,国内和国外的网站其实对各种概念的解释也非常笼统,比如homogeneous coordinate(HC)意义,HC和euclidian coordinate的却别, vanish point含义,infinity point和infinity plane的含义…这系列文章希望帮助大家能更容易的理解,但主要还是个人学习的总结,望请轻踩~
homogeneous coordinate (HC):
从结果直观来看,其实就是在euclidian coordinate(EC)的维度上,再加了另外一个维度的值,其实不然。
- 首先HC可以更容易的表达相机上的图像信息,因为它把,比如两个维度上的信息,分为方向维度信息,加上权重维度信息。(因为相机很多时候,你只能决定往哪个方向照,但是无法确定这个方向上衍生的距离有多少。)
- 其次是在HC坐标系内,进行点点,电线和点面间的数学计算更加方便,同样包括affine or projective transformation的计算及求解。(后面可以看到)
- 正如第一点所说,在HC的空间内,可以很容易的表达infinity plan上面的点和线
HC坐标系内点的性质:
-
HC和EC转化的几何意义
-
提取公因数后矩阵和原矩阵等同
-
用HC来表达infinity plane上的点(后面计算中可以看到原因)
HC坐标系内的表示及计算:
HC坐标系内点和线关系
-
HC内线的表示
– Hesse form
– intercept form
– standard form
-
HC内点和线有交点
HC坐标系内直线的交点
- 两线相交的条件
- 可以用cramer‘s rule去求解(可以想象成对应平面法向量但没有长度概念)
- 所以用HC坐标系去表示,可以吸收前面的系数表达式
HC坐标系内和两点相交的直线
- l = X x y (cross product)
infinity内的点和线:
it is possible to explicitly model infinitively distant points with finite coordinates
by HC coordinates, it is able to maintain the direction to that infinitively distant point
在infinity中点和线相交
-
l dot X =0 (dot-product)
-
all parallel lines meet at one point at infinity(前两个系数看做方向或在平面内的角度,后面看做长度)
-
infinity distant line is in the form of this:
-
在3D infinity中平面和点的关系(如果把HC内的点坐标看做是方向量+权重伸长量,那么infinity上就只有方向量,所以同一条射线上的各个点是相同的,而infinity distant plane就表达图中的穹顶面,所有点都要通过圆心之后穿过它)
infinity中的transformation
-
X‘ = HX
-
translational transformation (3 para)
-
rotational transformation (3 para; can be multiplied RxRyRz. 对于其它变换同样适用)
-
rigid body transformation (6 para)
-
similarity transformation (7 para)
-
affine transformation (12 para = 3 tran + 3 rot +3 scale + 3 sheer)
-
projective tranformation
(图片清晰度不高,大概看看吧,太困了睡觉…)