位置: 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

  • 苹果13自动亮度怎么设置(苹果13自动亮度调节需要关闭吗)

    苹果13自动亮度怎么设置(苹果13自动亮度调节需要关闭吗)

  • 微信怎么加群找群(在微信怎么找群聊)

    微信怎么加群找群(在微信怎么找群聊)

  • 电脑怎么强制格式化sd卡(电脑怎么强制格式化d盘)

    电脑怎么强制格式化sd卡(电脑怎么强制格式化d盘)

  • 快手收藏的显示不出来(快手收藏显示999是啥意思)

    快手收藏的显示不出来(快手收藏显示999是啥意思)

  • hs8145c5是千兆光猫吗(hs8145c 千兆)

    hs8145c5是千兆光猫吗(hs8145c 千兆)

  • ppt可以做视频吗

    ppt可以做视频吗

  • b450和b450m有什么区别(b450与b450m)

    b450和b450m有什么区别(b450与b450m)

  • qq的屏幕分享有声音吗(qq的屏幕分享有记录吗)

    qq的屏幕分享有声音吗(qq的屏幕分享有记录吗)

  • 荣耀30s截屏快捷键(荣耀30s截屏快捷键是什么)

    荣耀30s截屏快捷键(荣耀30s截屏快捷键是什么)

  • 新手机三个条码干什么用(新手机三个条码怎么弄)

    新手机三个条码干什么用(新手机三个条码怎么弄)

  • 双卡可以都是移动吗(双卡都是移动卡怎么查话费)

    双卡可以都是移动吗(双卡都是移动卡怎么查话费)

  • lon-al00是华为什么型号(lonal00是华为什么型号手机什么时候上市的)

    lon-al00是华为什么型号(lonal00是华为什么型号手机什么时候上市的)

  • excel怎么把第一行固定在最上面(excel怎么把第一行固定在顶端)

    excel怎么把第一行固定在最上面(excel怎么把第一行固定在顶端)

  • mgaa2ch a 是什么版(苹果手机mgaa2ch/a是什么型号)

    mgaa2ch a 是什么版(苹果手机mgaa2ch/a是什么型号)

  • 苹果6指纹无法完成触控id设置(苹果6指纹无法识别)

    苹果6指纹无法完成触控id设置(苹果6指纹无法识别)

  • 如何检测华为电池寿命(如何检测华为电容笔是否需要换笔尖)

    如何检测华为电池寿命(如何检测华为电容笔是否需要换笔尖)

  • ps如何除去图片水印(ps如何除去图片上的文字)

    ps如何除去图片水印(ps如何除去图片上的文字)

  • 米家扫地机充完要拔电源吗(米家扫地机不会回充)

    米家扫地机充完要拔电源吗(米家扫地机不会回充)

  • 千牛离职要解除子账号吗(离职后怎么自己注销千牛子账号)

    千牛离职要解除子账号吗(离职后怎么自己注销千牛子账号)

  • 华为畅享10plus升降摄像头怎么用(华为畅享10plus升级鸿蒙3.0好不好)

    华为畅享10plus升降摄像头怎么用(华为畅享10plus升级鸿蒙3.0好不好)

  • ios13有没有解决信号问题(苹果13bug解决了吗)

    ios13有没有解决信号问题(苹果13bug解决了吗)

  • 为啥苹果下载不了小红书(为啥苹果下载不了贵旅优品)

    为啥苹果下载不了小红书(为啥苹果下载不了贵旅优品)

  • 阿里云邮箱如何注册(阿里云邮箱如何续费)

    阿里云邮箱如何注册(阿里云邮箱如何续费)

  • WPS文字里如何组合两张图片(wps文字里如何组合在一起)

    WPS文字里如何组合两张图片(wps文字里如何组合在一起)

  • 苹果8p怎么关闭运行程序(苹果8p怎么关闭自动调节亮度)

    苹果8p怎么关闭运行程序(苹果8p怎么关闭自动调节亮度)

  • 淘宝直播如何申请(淘宝直播如何申请海外账号)

    淘宝直播如何申请(淘宝直播如何申请海外账号)

  • wps合并单元格在哪(wps合并单元格在哪里)

    wps合并单元格在哪(wps合并单元格在哪里)

  • 【修改huggingface transformers默认缓存文件夹】

    【修改huggingface transformers默认缓存文件夹】

  • 人工智能会影响测试工程师吗(人工智能会影响经济发展吗)

    人工智能会影响测试工程师吗(人工智能会影响经济发展吗)

  • 不开票收入要交所得税吗
  • 企业所得税零申报表怎么填写
  • 股份支付为什么计入股本溢价
  • 小规模无票收入填在哪一栏
  • 企业所得税成本费用大于发票金额的原因
  • 应收账款待转销和应交税费待转销
  • 什么费用可以报销工会经费
  • 计提个人部分保险
  • 建筑业异地施工如何纳税
  • 员工一次性补偿要缴纳个税吗
  • 不合格发票入账责任
  • 个人怎么捐赠物资
  • 财产性收入是非劳动性收入吗
  • 营改增后接受实物投资是否需要缴纳增值税?
  • 出口进项税额转出怎么做账务处理
  • 个税手续费返还计入哪个科目
  • 矿产资源税是多少
  • 服装发票怎么进项抵扣
  • 30万以下免征附加税包含30万吗
  • 所得税费用一年交几次
  • 员工转入子公司怎么做账
  • 小微企业应纳税所得额不超过100万
  • 房地产企业预缴增值税如何申报
  • 出口视同内销补缴增值税会计分录?
  • 税务罚款计入哪个会计科目
  • 企业之间承兑汇票贴现违法吗知乎
  • 民非企业缴纳税额怎么算
  • 发票已入账未认证怎么办
  • 上年多计提所得税怎么做会计分录
  • 定额发票属于什么会计
  • 保险赔款确认函
  • office com组件修复
  • 农业企业出租厂房需要交税吗
  • 年终结算增值税怎么算
  • 最小巧的单反相机
  • 如何计算业务招标价格
  • 企业发生的直接用于产品生产,专门设有成本项目的费用
  • 业务招待费的纳税筹划
  • 月末一次加权平均和移动加权平均的区别
  • php获取指定数量的数据
  • 深度测试软件
  • 做了几年前端基础还是很差
  • 季节性用工法律规定
  • 应交所得税的科目是什么
  • 增值税普通发票可以抵扣吗
  • mysql主从同步的优点
  • wordpress 自动生成文章
  • 有外币业务需不需要交税
  • 以货换货账务怎么处理
  • 保险公司报销修车流程
  • 出售固定资产计入营业外收入
  • 普通发票税费会计分录
  • 中小企业的判定标准
  • 汽车装修费计入哪个科目
  • 税控系统全额抵扣增值税申报
  • 去银行提备用金需要什么
  • 房地产项目企业
  • mysql用处
  • xp系统提升cpu最高性能
  • win10小娜如何使用
  • 如何修改注册表键值
  • bios cmos设置
  • linux中find命令基本使用方法
  • 永恒之塔客户端是32位
  • config是什么文件夹
  • win8.1system磁盘占用率高
  • js domcontentloaded
  • jquery的实现原理
  • javascript sort排序
  • jQuery实现两个下拉列表关联
  • table css 模板
  • python2.7多进程
  • python 初级
  • jquery中的eq是什么
  • javascript常见的数据类型
  • unityugui
  • jQuery bt气泡实现悬停显示及移开隐藏功能的方法
  • fragment生命周期图
  • 灵活就业登记审核查询
  • 契税补贴网上申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设