网站到期是否能换服务商,郑州专业网站建设价格,新乡专业做网站,故宫上海网络营销公司目录
0.引言#xff1a;小孔成像-映射表达式
1. 相机自身的运动如何表征#xff1f;-外参矩阵E
1.1 旋转
1.2 平移
2. 如何投影到“像平面”#xff1f;-内参矩阵K
2.1 图像平面坐标转换为像素坐标系
3. 三维到二维的维度是如何丢失的#xff1f;…目录
0.引言小孔成像-映射表达式
1. 相机自身的运动如何表征-外参矩阵E
1.1 旋转
1.2 平移
2. 如何投影到“像平面”-内参矩阵K
2.1 图像平面坐标转换为像素坐标系
3. 三维到二维的维度是如何丢失的-透视变换
4. 坐标变换的应用
附像平面投影实际的偏差问题
参考资料 0.引言小孔成像-映射表达式
视觉包含着大量的信息是几乎所有生物感知环境的主要工具也是机器人的重要传感器之一但是相机究竟是如何成像的呢
现在我们假设一种情况黑暗的环境下空中有一个发光的小球小球对面是铺满了墙壁的一张纸我们会发现小球照亮了整个纸面但是小球的二维投影圆却没有呈现在纸上。
现在我们再给一个平面放在小球和纸之间这个平面中心有一个小孔光透过小孔我们发现纸面整体虽然变暗了但是小球二维投影圆却能清晰看见了。这就是小孔成像。
但是小孔到底起着怎样的作用从数学角度看小孔就是一个映射或者函数表达式它让“物点”与“像点”的空间位置有了一一对应的关系。如果没有“小孔”那么物点会“漫射”到所有像点自然不会呈现任何形状。 小孔成像就是相机的基本原理因为镜头本身和小孔一样也是一个映射。镜头将物点投射到图像传感器上将光强信号转换到成电流信号电流信号再由运算电路转化成数字信号合成数字图像就是照片。
下面我们就来具体求解这个镜头代表的映射函数的具体形式从而构建物和像之间的数学关系。 1. 相机自身的运动如何表征-外参矩阵E
首先我们建立一个世界坐标系W而我们的相机自身也有一个坐标系我们称为相机坐标系C而且相机坐标系C可以在世界坐标系W中运动这就引出几个问题
1.相机自身的运动如何表征
2.世界坐标系中的“物点”投影到相机的成像平面这又如何表示
3.三维到二维的维度是如何丢失的
4.这些坐标的变换有什么应用
问题一个一个解决。我们先看第一个问题为了明白背后的原理我先采用二维坐标三维坐标是同理的这样便于理解。
从世界坐标系变换到相机坐标系属于刚体变换。首先介绍刚体运动的概念刚体即形状和大小不变的理想化物体进行的运动这种运动保持了物体内部所有点之间的相对距离不变。刚体变换通常包括“平移”和”旋转“。
注意说明旋转和平移时用的是二维举例三维坐标系的原理是相同的推广即可
1.1 旋转
我们先看旋转。现在在二维空间三维空间同理有一点P其W坐标系下x,y,红色的相机坐标系原来与世界坐标系重合现在其旋转了θ角 那么P点在做了旋转运动了的相机坐标系C下的坐标(x,y)是多少呢 这个问题我们回头解决我们先看一下二维平面内的旋转运动是如何表达的
二维空间内一点P的坐标为x,y其绕原点旋转θ后得到P’的坐标是x,y如何求x,y? 假设OP连线与X轴夹角为 α,由于旋转不改变OP长度所以有这个等式 利用和角公式展开可得到x相似我们也能得到y 我们利用线性代数的知识写成矩阵的形式这就得到一个旋转矩阵R也是一个二维的线性变换 我们记作pRp,R为上面的旋转矩阵。 我们回到刚才的问题用同样的思路还是有OP长度相等的关系我们计算可得xy
还是用矩阵来表达我们就得到了一个坐标基变换的表达式 上面的矩阵我们记作A写作pAp其实这就是坐标基变换 矩阵A的作用就是对同一点不同坐标系下的表达式进行转化
如果我们把刚刚得到的R和A相乘结果会发现是一个单位矩阵I则A和R就是互逆的。换句话说再量相同的情况下旋转点和坐标系变换是互逆的操作。 这一点非常有用也就是只要我们知道了相机的运动就可以求表示相机运动的逆矩阵来求空间物点在运动后的相机坐标系下的表达。
1.2 平移
上面的是旋转运动下面我们看一下平移运动。
点P移动到P,x,y的坐标很容易得到。但是我们要注意平移不是线性变换也就是说我们不能用矩阵表示平移运动。但是如果我们硬要用矩阵来表示平移呢----这就引出了齐次坐标homogeneous
我们可以用如下方式表示点P的平移 上面的矩阵其实就是三维剪切变换带入到三维中通过线性变换来达到“平移”的效果 那条白色的线其实都发生了成比例的缩放缩放因子就是最后一个维度的值ωω1时称为归一化平面齐次坐标ω不同的点在笛卡尔坐标系下是同一个点。
这就是所谓的透视投影中心投影变换。透视中心就在ω0的所谓无穷远点处。
这样我们就明白我们可以通过高维的剪切变换来实现低维度的平移变换从而解决了平移运动的矩阵表示问题。
我们通常把线性变换 平移称为“仿射变换”Affine
同样地对于相机坐标系的平移我们可以通过直接求平移矩阵T的逆矩阵来得到基变换矩阵A。 然后我们把刚刚提到的平移和旋转合在一起拼成一个矩阵就得到了能够转换二维三维同理世界坐标到运动的相机坐标系的桥梁线性变换。 我们把这个矩阵写成更一般的形式T和R分别表示平移和旋转我们称E为相机的“外参矩阵”Extrinsic Matrix 写成这种形式的好处是可以统一的表达有限维空间的情况比如二维和三维 注基于欧拉角的旋转矩阵其具体形式与旋转轴是否固定以及旋转顺序有关
如此一来我们就把第一个问题解决了。
2. 如何投影到“像平面”-内参矩阵K
我们已经把世界坐标系通过外参矩阵E转换到了运动了的相机坐标系下了现在我们把目光聚焦到相机坐标系就可以了。像平面与XY平面的距离我们称为焦距f,相机坐标系下一点P(x,y,z)与坐标原点所连直线与像平面的交点P就是P在像平面上或者说焦平面上的投影点。 现在我们来求P 的坐标根据两个三角形相似可得 则P的坐标为
我们再定义像平面上的坐标为这就是图像坐标系下的坐标值。
写成齐次坐标下矩阵的形式为 z代表点p的深度信息。 2.1 图像平面坐标转换为像素坐标系
像素坐标系和图像坐标系都在成像平面上只是各自的原点和度量单位不一样。图像坐标系的原点为相机光轴与成像平面的交点通常情况下是成像平面的中点或者叫principal point。图像坐标系的单位是mm是物理单位而像素坐标系的单位是pixel我们平常描述一个像素点都是几行几列。所以这两者之间的转换关系如下 。
其中dx和dy分别表示每一列和每一行分别代表多少mm即1pixeldxmm。以齐次坐标形式表示为
那么将上面得线性变换矩阵与之前的作矩阵乘法有 其中fx,fy是焦距(mm)像素值表示(pixel)
右侧的矩阵即为相机的内参矩阵,我们记作K。我们可以看到这个矩阵其实也是一个仿射变换的形式。
这样我们的第二个问题也解决了。
3. 三维到二维的维度是如何丢失的-透视变换
我们把内外参矩阵写在一起就得到了之前“小孔成像”所代表的映射的表达式
这里本质上是一个透视变换即齐次坐标转笛卡尔坐标降维了相机成像三维到二维的维度丢失就是在这里发生的得到的归一化像素坐标系下的uv值就是我们要找的图像坐标了。
一句话总结第三个问题的答案相机坐标系到归一化像素坐标系的透视变换投影
4. 坐标变换的应用
1.相机标定
每一个相机生产出来之后都要进行标定这样才能把相机的内参写进产品手册卖给客户而外参会随着相机运动变化而变化一般把相机固定之后再校正。常用的标定方法是张正友老师提出的棋盘格校定法此外还有直接线性法DLT。但无论哪种方法本质都是求解内外参矩阵E和K。
2.视觉测量 iphone的measure也是通过内外参矩阵才能把图像像素的距离和真实的物理距离对应起来。
3.视觉导航
如果我们用摄像头作为传感器进行导航和定位尤其是在视觉SLAM中如果我们不知道相机的内外参矩阵又怎么能通过摄像头提供的图像信息解算真实世界的位置构建真实世界的物理地图呢
附像平面投影实际的偏差问题
在实际情况下相机的成像并没有那么理想。
首先由于图像传感器的尺寸和形状误差导致像平面沿xy轴有不同尺度的缩放(scale) 再者相机在实际生产过程中存在公差和不确定性因素导致Z轴或者说主光轴未穿过像平面的中心而产生偏移(offset):
最后由于工艺问题像平面不再是矩形而是平行四边形我们用θ来刻画这种偏斜(skew)。我们会发现这本质也是一个坐标基变换的问题从垂直XY轴变成了非垂直的xy轴从正交基变为了非正交基。 参考资料
参考1
参考2
参考3