camera calibration 相机标定

[toc]

相机标定 Camera Calibration

将相机抽象成针孔模型进行建模,同时因为透镜的存在,光线投影到成像平面的过程中会产生畸变(distortion)

相机标定的目的:寻找像素坐标系到世界坐标系之间的转换关系。

相机标定标什么?

相机内参:fx fy cx cy f(这个可以已知,可能和dx dy 包含到fx fy) 畸变项:k1 k2 k3 p1 p2

相机外参:R T

四个坐标系与针孔模型

相机针孔模型

camera pinhole model

image-20221216231439534

  • 成像平面(image plane):相机的CCD平面,图像在这个平面上形成,注意后续讨论的image plane一般会是指的呈现正像的那个平面Virtual image plane
  • Focal lenth 相机焦距

四个坐标系

相机标定涉及以下四个坐标系

  • 世界坐标系world coordinate (xw,yw,zw),是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。
  • 相机坐标系camera coordinate (xc,yc,zc),原点位于镜头光心处(针孔模型中的针孔),x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。
  • 图像坐标系:物理成像平面,原点是相机光轴与成像平面的交点,是图像的中心点,坐标用x,y表示
  • 像素坐标系:是图像像素坐标,($u$,$v$)表示,原点在图像左上角

image-20221216232256715

世界坐标系到相机坐标系转换

假设物体在空间中的三维点坐标为(Xw,Yw,Zw),通过一个刚体变换(左乘该刚体 rigid 变换),变换到相机坐标系,此时坐标变为(Xc,Yc,Zc)。为了满足矩阵乘法,添加了1

相机坐标系到图像坐标系的转换

相机坐标系中的点,根据相似三角形关系,映射到光信后方的成像平面(倒像)。根据虚拟成像平面得到正像。

  • 根据比例关系,图像坐标系中点的单位为mm
  • 相机坐标系点(Xc,Yc,Zc) 图像坐标系点(x,y)

image-20221217141832778image-20221217142015651

等式两边配平

图像坐标系到像素坐标系的转换

像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。我们设像素坐标在 u 轴上缩放了 α 倍,在 v 上缩放了 β 倍。

像素坐标单位是pixel,不含有mm这些距离相关的信息。

假设:

  • 图像x方向每个像素对应dx mm的物理距离(在物距为f时),图像y方向每个像素对应dy mm的物理距离(在物距为f时)
    • 1/dx 含义: x方向每毫米的像素数
    • 1/dy 含义: y方向每毫米的像素数
  • [cx,cy]是图像坐标系原点在像素坐标系下的坐标

等式两边配平

世界坐标系到像素坐标系的转换

image-20221217144917379

image-20221217145027509

相机内参 intrinsics parameters

将以下矩阵的乘积成为相机内参矩阵intrinsics matrix

  • 解释了相机坐标系到像素坐标系的变换关系
  • (2)式一般称为内参矩阵

s的定义,普通计算时,一般将s假设为0

image-20221217151921161

相机外参 extrinsics parameters

刚体变换。相机外参矩阵extrinsics matrix 4*4

  • 可以用来表示相机在世界坐标系中的位姿

畸变模型

由透镜引起的畸变称为径向畸变 Radial distortion

image-20221217152133422

桶形畸变 barrel distortion 越靠近图像中心,图像越被放大

枕型畸变 pincushion distortion 越远离图像中心,图像越被放大

由于透镜与成像平面不平行而导致的畸变成为切向畸变 Tangential Distortion

image-20221217153121680

两种畸变计算(xdistorted, ydistorted)

在没有畸变时,相机坐标系到像素坐标系的转换

引入畸变后

径向畸变模型

坐标点沿着长度方向发生了变化,也就是距离原点的长度发生变化

(xdistorted, ydistorted)

r^2^ = x^2^+y^2^ (将x,y 转成极坐标表示[r,/σ])

k1 k2k3 径向畸变系数

切向畸变模型

坐标点沿着切线方向发生变化,水平夹角发生变化

(xdistorted, ydistorted)

r^2^ = x^2^+y^2^

畸变总结

径向畸变 k1 k2 k3

切向畸变 p1 p2

  • 实际使用中可以灵活选择畸变模型,如k1 p1 p2 三项

去畸变 undistort

  • 将整张图片进行去畸变处理,得到去畸变图像(更常用)
  • 从畸变图像某个点出发,按照畸变模型,找到去畸变后的点

圆点与棋盘格

结论: 圆点标定板的标定精度优于棋盘格

圆点标定板:中心拟合精度高,但是存在偏心误差问题。

  • 圆的中心的投影,不等于投影出的圆的中心

棋盘格标定板:中心拟合精度低,但是不存在偏心误差问题

image-20221217161126794

圆环的优化方法:

  • 将椭圆通过透视投影,投影成正圆
  • 检测正圆圆心
  • 再将正圆圆心投影回椭圆平面

OpenCV 相机标定

image-20221217161517934

  • 让标定板覆盖整个相机平面。永远在中间的话,畸变参数会不准
  • 改变角度
  • 数量10-20张
  • cv::calibrationCamera 返回 重投影误差 这个参数,一般来说,重投影误差越小,表示这次标定精度越好

标定结果的评价

  • 重投影误差 re-projection error

  • 影响因素:

    • 角点检测精度

    • 相机本身噪声,相机固定

    • 相机分辨率,其他条件相同,分辨率高的话,re-projection error可能会更大(单位是像素)

    • 相机本身的标定算法的最优化

其它思路:

  1. 通过图像上某两个角点反向投影到3D空间,计算距离,与其实际物理距离进行比较

相机内参标定后的应用

PnP问题

solvePnP

已知n点之间的对应关系,怎么求它们之间的关系。

已知3D点,对应2D角点,图像坐标系到像素坐标系的变换,畸变参数,去求某一张图片的外参

image-20221217161832680

其它

  • 使用背光板
  • 过渡带越长,越影响检测

image-20221217161942921

image-20221217162003714

  • 快门时间调低,光圈调小
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2023 cyg
  • 访问人数: | 浏览次数: