一文带你搞懂相机内参外参(Intrinsics & Extrinsics)

您所在的位置:网站首页 wb设置内参的意义 一文带你搞懂相机内参外参(Intrinsics & Extrinsics)

一文带你搞懂相机内参外参(Intrinsics & Extrinsics)

2024-07-15 08:36| 来源: 网络整理| 查看: 265

点击上方“小白学视觉”,选择加"星标"或“置顶”

重磅干货,第一时间送达

摘要:本文介绍了相机的内参和外参以及推导过程,由三个部分组成:第一部分,相机内参;第二部分,相机外参;第三部分,总结。

1 相机内参 cac8c2894a2a535bf2bee4ceaaa080b6.png

在左图中,我们把相机看作是针孔,现实世界中的点P经过相机的光心O,投影到物理成像平面上,变为点P'。

在右图中,对这个模型进行了一个简化,将其看作是一个相似三角形。

下面我们来对这个模型进行建模。

设O-X-Y-Z为相机坐标系,习惯上我们把z轴指向相机前方,x向右,y向下。O为摄像机的光心,也是针孔模型中的针孔。

设真实世界点中的P的坐标为,成像的点P'的坐标为, 物理成像平面和光心的距离为f(即为焦距)。

根据右图中的三角形相似关系,有:

3b470b8ef46c4435c2fc225054c0b190.png

其中,有负号是因为坐标轴方向,也就表示了成的像是倒立的。

为了表示起来更方便,我们把成像平面从相机的后面对称到前面去,如下图所示。这样,负号就没有了。

1bfee0e38e4a613d6b9c0dd636be67c0.png

在对称后,有:

4054340b59d6523c0fa4d461220b1efe.png

整理解出P'的坐标:

7ad722beb90547ffffac38026d134679.png

上面两个式子就描述了P点与它所成像的坐标关系,可以看到,X对应的X'与焦距f有关,与距离Z有关。

映射到成像平面上还不够,我们还需要将这个像给放到像素坐标系内。

我们设在物理成像平面上固定着像素平面O-U-V。

设P'在像素平面坐标系上的坐标是。

像素坐标系通常定义方式是:原点o'位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。

我们设像素坐标在u轴上缩放倍,在v轴上缩放了倍。同时,原点平移了Cx,Cy。

因此可以得到P'与像素坐标的关系:

952a944ad45124df48510a500c361231.png

代入P与P'的关系式可得:

7f90ddead440aa35badc40cdb76aa76f.png

其中,我们用,替换了f 和f 。,的单位是像素。

用齐次坐标,把上式写出矩阵的形式:

e44e7a8eb0bd9fb3fbb96c46520b1541.png

也可以把Z写到等式左边去,就变成了:

8c2e1d1fb91924a603b95bd6a2ee89b7.png

上式中,K即为相机的内参矩阵(Intrinsics)。通常来说,相机的内参在出厂之后就是固定的了。

2 相机外参

在上面的推导中,我们用的是P在相机坐标系的坐标(也就是以相机为O点),所以我们应该先将世界坐标系中的给变换到相机坐标系中的P。

相机的位姿由旋转矩阵R和平移向量t来描述,因此:

d1616bb35aee248e89adc4d648612d90.png

再代入之前的内参的式子,得到:

ca9e8f7a22615e0e03e523cf284b1fdd.png

后面一个等号蕴含了一个齐次坐标到非齐次坐标的转换。

其中,R,t为相机的外参(Extrinsics)。

3 总结

本文介绍了:

从相机坐标系转换到像素坐标系中,相机内参的作用

从世界坐标系转换到相机坐标系中,相机外参的作用

相机内参是这样的一个矩阵:

046359d2235dd2de7a8faae26b22af2c.png

里面的参数一般都是相机出厂就定下来的,可以通过相机标定的方式人为计算出来。

相机外参是旋转矩阵R和平移向量t构成,一般来说写成:

9c6bcac252aab8afa8a2e9f30f1936ce.png

这个矩阵决定了相机的位姿。

参考文献:

[1] 视觉slam十四讲,高翔

[2] Step1:模型 16个相机参数(内参、外参、畸变参数)

下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群 欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3