位置: IT常识 - 正文

【相机标定】相机内参(什么叫相机标定)

编辑:rootadmin
【相机标定】相机内参 相机标定

推荐整理分享【相机标定】相机内参(什么叫相机标定),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:什么叫相机标定,相机标定完有啥作用,相机标定怎么做,相机标定zc,相机标定怎么做,什么叫相机标定,相机标定怎么做,相机标定csdn,内容如对您有帮助,希望把文章链接给更多的朋友!

相机在计算机视觉方面的一些应用一般需要相机标定。我们总是听到标定这个词,那么具体标定的是什么呢?相机的拍摄是一个三维到二维(透视投影)的过程,这个过程可以用数学模型去表述,标定便是计算这个数学模型中的参数,我们最终希望通过这些参数能够从二维的图像去还原三维的世界。

拍照过程简化(针孔相机模型)

拍照是一个三维世界降维到二维的不可逆的操作,可以说相机拍摄是一个 R3→R2\mathbb{R}^3 \to \mathbb{R}^2R3→R2 的变换。 相机标定的目的就是找到一个合适的数学模型,近似表示这个三维到二维的过程,并且求其逆过程。

实际的镜头模组都是非常复杂的,我们可以找一个与这个镜头具有相同的物像共轭关系的凸透镜来等效这个镜头,我们把这个凸透镜称作等效透镜。为了分析的方便,我们用一个等效透镜在数学上替代一整个镜头模组。

​ ​Canon EF 85mm/F1.2L II USM 镜头模组等效透镜

简化后的针孔相机模型中的 f 为焦距,但是这个焦距不是等效透镜的焦距,而是指图像传感器到等效透镜光心 O 的距离。 针孔相机模型大大简化了相机模型的数学复杂度,但是也有一些代价。针孔相机模型没有考虑相差(镜头畸变),没有考虑景深(因为针孔成像没有焦距的概念,认为物总是能够清晰成像)。

我们以小米 12S Ultra 的主摄为例,Sony IMX989 就是该款主摄的 CMOS 图像传感器。即便手机中的相机模组体积很紧凑,其中也是有多片镜头的,右下图是主摄的镜头组拆解,左图说的 23mm 等效焦距就是指跟这一堆镜片等效的等效镜片到 CMOS 的距离。像素尺寸指的是一个 CMOS 像素的边长,一个(正方形)像素尺寸约为 1.6μm。四合一像素尺寸是四个像素合成一个像素,所以边长 3.2μm。

小米12S Ultra主摄模组拆解

相机内参相机拍摄过程中的四个坐标系

下图表示了摄影的过程,其实计算机视觉可以说是摄影或计算机图形学(Computer Graphics)的逆过程,想着如何利用已经降维成2D的信息去还原3D世界中的信息。

这里使用四个坐标系来描述拍摄过程:像素坐标系、图像坐标系、相机坐标系、世界坐标系。

像素坐标系:图片是由像素组成的,每个像素可以用一个有序二元组(u,v)来表示,这个坐标系就叫做像素坐标系。像素坐标系是一个二维坐标系,标识了在每个像素在图像传感器中的位置,每次增量是 1 个像素。

图像坐标系:像素坐标系中的标号为(u,v),其中 u 轴对应实际物理尺寸 dx,v 轴对应实际物理尺寸 dy,图像坐标系是一个对应真实世界的尺寸二维坐标系,可以记为 (x,y)(x,y)(x,y)。图像坐标系也标记的是像素在图像传感器中的位置,不过增量是每个像素的实际物理尺寸,比如上面提到的 IMX989 的每个像素尺寸 1.6μm,对应这里的dx和dy。

相机坐标系:以相机光心为原点呈现的世界三维坐标系 (X,Y,Z)(X,Y,Z)(X,Y,Z),坐标系原点是相机等效镜头的光心。

世界坐标系:真实的世界三维坐标系 (Xw,Yw,Zw)(X_w,Y_w,Z_w)(Xw​,Yw​,Zw​),坐标系原点一般是外界的某一点。比如在机器人应用中经常是以机器人的基座为世界坐标系原点。

像素坐标系图像坐标系相机坐标系世界坐标系2D 坐标系,位于 CMOS3D 坐标系整数序号,标识像素位置,原点位于 CMOS 左上角对应真实世界物理尺寸,标识像素在 CMOS 上的平面位置,原点为相机光轴与 CMOS 的交点。原点为相机光心世界坐标系原点

相机拍照的过程可以分为以下几步:

将世界坐标转换为相机坐标,存在刚体变换。其实对应的就是相机外参。相机坐标变为图像坐标,这是一个 3D->2D 的透视投影过程。图像坐标变为像素坐标,对图像坐标系进行离散化。相机内参

相机内参便是求第二步和第三步中的参数。

为了描述的方便,我们可以将针孔相机模型翻转过来,如下图所示,因为主要用到三角关系,所以翻转前后在数学描述上是等价的。

在相机坐标系中,像平面(图像传感器所在平面)为 Z=fZ=fZ=f(焦距,mm)。空间中一点 P 在相机坐标系下为 P(X,Y,Z)P(X,Y,Z)P(X,Y,Z),该点在像平面上的投影为点 p(x.y)p(x.y)p(x.y),在图像坐标系下为 p(x,y)p(x,y)p(x,y),在像素坐标系中的坐标为 (u,v)(u,v)(u,v)。   

根据三角形相似原理,通过右图可得图像坐标系和相机坐标系比例关系

xX=yY=fZ\frac{x}{X}=\frac{y}{Y}=\frac{f}{Z}Xx​=Yy​=Zf​

相机坐标系(3D) -> 图像坐标系(2D):于是我们 得到了 相机坐标系中一3D点 (X,Y,Z)(X,Y,Z)(X,Y,Z) 在图像坐标系中的对应平面位置 (x,y)(x,y)(x,y)

x=fZX, y=fZYx={f \over Z}X,\ y={f \over Z}Yx=Zf​X, y=Zf​Y

像素坐标系的原点位于图像传感器的左上角,记光心到 CMOS 零点的偏移为 cx,cyc_x,c_ycx​,cy​,也就是相机光心在像素坐标系中的坐标为 (cx,cy)(c_x,c_y)(cx​,cy​)。记每个像素在水平和竖直方向上的尺寸为 k,lk, lk,l (mm/pixel),由于像素不一定是正方形的,所以这里长宽分别表示,这个就对应上面说的CMOS像素尺寸1.6μm。

图像坐标系(连续2D) -> 像素坐标系(离散2D):则图像坐标系中一点 (x,y)(x,y)(x,y) 到像素坐标系中像素标号 (u,v)(u,v)(u,v) 的关系可以表示为

【相机标定】相机内参(什么叫相机标定)

u=xk+cx=fkZX+cxu={x\over k}+c_x={f \over kZ}X + c_xu=kx​+cx​=kZf​X+cx​

v=yl+cy=flZY+cyv={y \over l}+c_y = {f \over lZ}Y + c_yv=ly​+cy​=lZf​Y+cy​

令 fx=f/k,fy=f/lf_x=f /k, f_y=f /lfx​=f/k,fy​=f/l,则上面两式可以写成

u=fxXZ+cx, v=fyYZ+cyu=f_x{X \over Z}+c_x,\ v=f_y{Y \over Z}+c_yu=fx​ZX​+cx​, v=fy​ZY​+cy​

其中 fx=f/k,fy=f/lf_x=f/k,f_y=f/lfx​=f/k,fy​=f/l(pixel)为像素焦距,即单位长度的像素个数,单位为像素。

上式写成矩阵形式为

[uv1]=1Z[fxcxfycy1][XYZ]\begin{bmatrix} u\\ v\\ 1 \end{bmatrix}= {1 \over Z} \begin{bmatrix} f_x & 0 & c_x\\ 0 & f_y & c_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} X\\ Y\\ Z \end{bmatrix}⎣⎡​uv1​⎦⎤​=Z1​⎣⎡​fx​00​0fy​0​cx​cy​1​⎦⎤​⎣⎡​XYZ​⎦⎤​

上面的矩阵可以写成 Zpuv=KPZp_{uv}=KPZpuv​=KP,中间的矩阵便是内参(intrinsics)矩阵,其中的四个参数便是要标定的内参。这个矩阵描述了相机坐标系到像素坐标系的变换关系。

有了相机内参我们便可以知道像素点对应的归一化平面(距光心距离为1的平面)的 x y 坐标,注意不是真实的XY坐标,因为空间点的深度值在透视投影过程中丢失了。

畸变

畸变(distortion)是对直线投影(rectilinear projection)的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。畸变简单来说就是一条直线投影到图片上不能保持为一条直线了,这是一种光学畸变(optical aberration),可能是摄像机镜头的原因。

畸变模型:桶形畸变和枕形畸变。

相机中透镜的加入会对光线传播产生影响。透镜自身形状会影响光线传播,这种畸变(distortion,或失真)称为径向畸变;再者,相机组装过程中,镜片平面和 CMOS 不可能绝对平行,这种透镜平面和 CMOS 成像面不平行导致的畸变叫 切向畸变。

如果镜头没有畸变,那么点 P、光心 O、像点 p 应该是共线的。

径向畸变可以理解为像点沿距光心的长度方向发生了变化,切向畸变可以理解为像点沿切向(长度正交方向)发生了变化。一般使用多项式描述这些畸变,(xdistort,ydistort)(x_{distort}, y_{distort})(xdistort​,ydistort​) 来描述畸变后的像点位置

径向畸变

xdistort=x(1+k1r2+k2r4+k3r6)ydistort=y(1+k1r2+k2r4+k3r6)x_{distort}=x(1+k_1r^2 + k_2 r^4 + k_3 r^6) \\ y_{distort} = y(1+k_1 r^2 + k_2 r^4 + k_3 r^6)xdistort​=x(1+k1​r2+k2​r4+k3​r6)ydistort​=y(1+k1​r2+k2​r4+k3​r6)

切向畸变

xdistort=x+2p1xy+p2(r2+2x2)ydistort=y+2p2xy+p1(r2+2y2)x_{distort}=x+2p_1xy + p_2(r^2 +2x^2) \\ y_{distort} = y + 2p_2xy +p_1(r^2 + 2y^2)xdistort​=x+2p1​xy+p2​(r2+2x2)ydistort​=y+2p2​xy+p1​(r2+2y2)

像平面(图像坐标系)上畸变后的像点坐标为

xdistort=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ydistort=y(1+k1r2+k2r4+k3r6)+2p2xy+p1(r2+2y2)x_{distort}=x(1+k_1r^2 + k_2 r^4 + k_3 r^6)+2p_1xy + p_2(r^2 +2x^2) \\ y_{distort} = y(1+k_1 r^2 + k_2 r^4 + k_3 r^6) + 2p_2xy +p_1(r^2 + 2y^2)xdistort​=x(1+k1​r2+k2​r4+k3​r6)+2p1​xy+p2​(r2+2x2)ydistort​=y(1+k1​r2+k2​r4+k3​r6)+2p2​xy+p1​(r2+2y2)

得到 5 个畸变参数 k1,k2,k3,p1,p2k_1, k_2, k_3, p_1, p_2k1​,k2​,k3​,p1​,p2​ 后便可以对畸变进行建模。实际使用中也可以使用更简单的模型,比如径向畸变只使用二阶(只用 k1k_1k1​)多项式描述。

外参

内参是确定像素坐标系到图像坐标系的四个参数 cx,cy,fx,fyc_x,c_y,f_x,f_ycx​,cy​,fx​,fy​

世界坐标系到相机坐标系的变换矩阵 R,t\mathbf{R,t}R,t ​称为外参。

比如和机器人相关的应用中,一般外参是描述相机坐标系和机器人基坐标系之间的刚体变换。

如果有标定板的话,标定板的尺寸都是已知的。

参考

相机标定究竟在标定什么?–复旦光学博士 许翔翔

Computer Vision: A Modern Approach

本文链接地址:https://www.jiuchutong.com/zhishi/299930.html 转载请保留说明!

上一篇:最优化理论笔记及期末复习(《数值最优化》——高立)(最优化理论pdf)

下一篇:GCN经典论文笔记:Semi-Supervised Classification with Graph Convolutional Networks

  • 分配股东利润分录
  • 股权转让需要缴纳企业所得税吗
  • 增值税税率变化时间节点
  • 全年一次性奖金税收优惠政策
  • 合营企业和联营企业会计核算
  • 教育培训学校怎么翻译
  • 开票就必须要交个税吗
  • 资产负债表中的货币资金怎么算
  • 通过认证的增值税怎么算
  • 收入转本年利润的会计分录
  • 个人开劳务发票是否需要交纳个人所得税呢?
  • 补开的银行手续费发票怎么做账
  • 17税点变更成16税点
  • 企业债务重组损失的所得税前扣除
  • 没签合同怎么交社保
  • 零报税报表怎么下载
  • 增值税检查调整科目已经删除
  • 代扣代缴个人所得税现金流计入哪里
  • 房地产开发经营属于什么行业类别
  • 预付账款的借方是应付账款的哪方
  • 损失性费用的会计科目有
  • 企业合作开发的研发费怎样加计扣除?
  • 资产置换会计处理办法
  • 借主营业务成本表示什么
  • 驾校如何用完工百分比法确认收入?
  • 企业支付微信认证怎么弄
  • 微软正式宣布收购动视暴雪
  • 提升一下网速
  • bios怎么恢复出厂设置会怎么样
  • php数组函数面试题
  • 公司有长期挂账的权利吗
  • windows 10无法开机
  • 公租房租金收入免企业所得税吗
  • 房产备案交税
  • php获取年月日
  • Vue3通透教程【四】Vue3组合API初体验
  • 收到境外服务费可以退税吗
  • 跨年进项税额未做账
  • 公司有一个残疾人
  • 代收代付业务需要开发票吗
  • 库存商品用于研发要进项税额转出吗
  • 期货收入交个人所得税吗
  • 发现以前年度的账错误
  • 小规模纳税人收普票和专票有什么区别
  • sqlserver2005使用
  • 所得税交多了怎么留抵
  • 普票是啥意思
  • 加班打车费用计入什么科目
  • 资本溢价举例说明
  • 所得税审核一般需要多久
  • 成品油生产库存
  • 污水处理工程内容包括
  • 法人私户转公户备注什么
  • 法院案件受理费退费申请
  • 项目预验收包括以下哪些内容
  • 政府专项扶持资金
  • 收到的普通发票被对方作废
  • mysql %s
  • 通过修改注册表激活win7
  • Win7安装i219v网卡驱动
  • 恢复已删除的聊天记录微信
  • 红帽企业版更新了吗
  • windows10version20h2的03
  • 注册表没有windows nt
  • win8怎么改系统
  • java timer
  • Android Broadcast
  • shell命令行参数个数
  • python火车订票系统
  • jquery图片轮播无缝连接
  • 弹簧设计软件手机版
  • Python简单格式化时间的方法【strftime函数】
  • JavaScript Math.round() 方法
  • 社保每个月几号截止申报
  • 水利基金税率‰6什么时候调整
  • 各地市的税务局有哪些
  • 广西税务局客服电话时间
  • 税务局风险管理股工作总结
  • 地税局一般几点下班
  • 扬州 税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设