单目摄像头标定参数相关说明

转载于:http://blog.csdn.net/xuelabizp/article/details/50314633

1.针孔摄像机模型

  • 在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理。投影平面到小孔的距离为焦距f,物体到小孔的距离为Z,其中物体和投影是倒立相似的关系,下图为针孔摄像机的投影示意图:

  • 如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把投影平面平移到其关于小孔对称的位置,这样投影坐标和物体坐标符号就相同了,示意图如下:

  • 根据三角形相似的原理,可以列出如下等式:

    fZ=ll

2.摄像机中的坐标系

  • 摄像机中的坐标系有4个,均为右手坐标系,分别记为{world},{camera},{picture},{pixel},下图所示列出了{camera},{picture}和{pixel}坐标系:

  • {world},{camera},{picture}和{pixel}坐标系的坐标用下标来区分,分别是W,c,p,pix

  • {world},{camera},{picture}坐标系单位为长度,一般为mm;{pixel}坐标系单位为像素,一般为pix
  • {world}坐标系为世界坐标系,可以任意指定,其他坐标系都有明确的定义
  • {camera}坐标系为摄像机坐标系,原点在小孔的位置,z轴与光轴重合,Xc轴和Yc轴分别和投影面两边平行
  • {picture}坐标系为图像坐标系,光轴和投影面的交点为原点,Xp轴和Yp轴分别和投影面两边平行
  • {pixel}坐标系为像素坐标系,从小孔向投影面方向看,投影面的左上角为原点Opix,Xpix轴和Ypix轴和投影面两边重合

3.各个坐标系的坐标转换

3.1{world}到{camera}

设某点在{world}坐标系中的坐标为  PW=[xW,yW,zW,]T ,该点在{camera}坐标系中的坐标为 Pc=[xc,yc,zc,]T ,则有

Pc=[R0T1]PW(1)

其中R是正交旋转矩阵:
R=r11r21r31r12r22r32r13r23r33(2)

T是平移矩阵:
T=[txtytz]T(3)

确定R需要3个参数,确定T需要3个参数,共需6个参数,这6个参数称为 摄像机的外部参数

3.2{camera}到{picture}

根据三角形相似原理,可得

xp=fxczcyp=fyczc(4)

写成矩阵形式
zcxpyp1=f000f0001000xcyczc1(5)

3.3{picture}到{pixel}

sx 表示Xpix方向上单位mm的像素数,单位是pix/mm
sy 表示Ypix方向上单位mm的像素数,单位是pix/mm
x0,y0 表示投影平面中心在{pixel}中的坐标,则有

{xpix=x0+xpsxypix=y0+ypsy(6)

写成矩阵形式
xpixypix1=sx000sy0x0y01xpyp1(7)

3.4{world}到{pixel}


{fx=fsxfy=fsy(8)

分别表示焦距f在Xpix和Ypix方向上的等效焦距,单位是pix,结合(1)(5)(7)(8)式可得
zcxpixypix1=fx000fy0x0y01000[R0T1]xWyWzW1(9)

3.5小结

单目摄像机需要标定参数就是 fx,fy,x0,y0 这4个参数

  • fx,fy,x0,y0 叫做摄像机的内部参数,因为这些参数只和摄像机有关系,和具体的摄像场景,和世界坐标系没有关系
  • R T 内部一共有6个独立的参数,叫做外部参数。外部参数是描述世界坐标系和摄相机坐标系的参数,所以只要世界坐标系和摄相机坐标系的相对位姿发生了变化, R T 就会改变,甚至可以说,每一张图片的 R T 都不一样
  • 单目摄像机标定就是已知像素坐标系下的坐标 Ppix 和世界坐标系下的坐标 PW ,列方程组求解内部参数

4.摄像机透镜畸变

由于针孔可以透过的光线太少,成像会不清楚,所以往往都会加上凸透镜汇聚更多的光线。但是加上凸透镜以后,会导致成像畸变,所以还需要校正透镜畸变。透镜的畸变主要分为两类,一类是径向畸变,一类是切向畸变

4.1径向畸变

径向畸变会产生“鱼眼”现象。成像中心处径向畸变为0,径向畸变随着与成像中心距离增大而增大,在图像边缘处达到最大径向畸变。常常用偶次幂的泰勒公式描述径向畸变

{xcerrected=x(1+k1r2+k2r4+k3r6)ycerrected=y(1+k1r2+k2r4+k3r6)(10)

4.2切向畸变

切向畸变由透镜和成像平面不平行引起。常用如下公式描述

{xcerrectedycerrected=x+[2p1y+p2(r2+2x2)]=y+[p1(r2+2y2)+2p2x](11)

4.3小结

单目摄像机透镜畸变校正需要确定的就是 k1,k2,k3,p1,p2 这5个参数,如果“鱼眼”现象不明显的话,常常使用 k1,k2 来校正径向畸变

5.总结

  • 单目摄像机标定和校正最终将获得9个参数,内部参数是4个,畸变校正参数是5个
  • 单目摄像机标定常用的工具有OpenCV库和Matlab摄像机标定工具箱

在Matlab中进行单目摄像头标定的步骤如下: 1. 下载并安装相机标定工具包。你可以从以下链接下载工具包:\[1\]\[2\]。下载完成后,将工具包解压,并将其路径添加至Matlab。 2. 将Matlab的工作路径改变至你存放标定板拍摄图片的文件夹。 3. 在Matlab命令行中输入"calib_gui",然后选择标准模式。 4. 在Image names中输入图片的前缀,比如"Img"。 5. 选择"Read images",然后点击"Extract grid corners"来提取角点。wintx和winty可以使用默认值。 6. 选择自动格子计数(默认回车即可),然后会弹出第一幅图片让你用鼠标选定四个原点。 7. 输入真实的棋盘格宽度和高度,比如前面设置的20mm。 8. 重复以上步骤,直到所有图片都被读入。 9. 点击工具箱上的"Calibration",然后会出现内参数结果。 通过以上步骤,你可以在Matlab中进行单目摄像头标定。这样你就可以获得相机的内参和外参,从而进行后续的相机位姿变换和成像变换矩阵的解算。\[1\]\[3\] #### 引用[.reference_title] - *1* *3* [单目相机的标定(matlab)](https://blog.csdn.net/luoweidashi/article/details/129717738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MATLAB+单目摄像头标定+Calibration 工具箱](https://blog.csdn.net/qq_39642029/article/details/121622077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值