相机的内参和外参介绍

这篇具有很好参考价值的文章主要介绍了相机的内参和外参介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

      :以下相机内参与外参介绍除来自网络整理外全部来自于《视觉SLAM十四讲从理论到实践  第2版》中的第5讲:相机与图像,为了方便查看,我将每节合并到了一幅图像中
      相机与摄像机区别:相机着重于拍摄静态图像,光学变焦不大;摄像机着重于拍摄动态视频,光学变焦比较大。
      相机的传感器(CCD, 光学镜头)是有许多像素点按照矩阵的形式排列而成,分辨率就是以水平方向和垂直方向的像素来表示的。分辨率越高,成像后的图像像素数就越高,图像就越清晰。传感器尺寸越大,一定程度上表示相机可容纳像素个数越多,成像的画幅越大。
      像元尺寸:就是每个像素的面积。单个像素面积小,单位面积内的像素数量多,相机的分辨率高。
      像素深度:是指每个像素用多少比特位表示。通常,每个像素的比特位数多,表达图像细节的能力强,这个像素的颜色值更加丰富、分的更细,颜色深度就更深。一般像素深度有1位、8位、16位、24位和32位。
      曝光:指在摄影过程中进入镜头照射在感光元件上的光量。曝光时间:传感器将光信号转换为电信号形成一帧图像,每个像元接受光信号的过程叫曝光,所花费的时间叫曝光时间,也叫快门速度。曝光补偿:是一种曝光控制方式,如果环境光源偏暗,即可增加曝光值以突显画面的清晰度。曝光补偿就是有意识地变更相机自动演算出的"合适"曝光参数,让照片更明亮或者更昏暗的拍摄手法。
      在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数求解相机参数的过程称为相机标定
      三维世界中的一个物体反射或发出的光线,穿过相机光心后,投影在相机的成像平面上。相机的感光器件接收到光线后,产生测量值,就得到了像素,形成了我们见到的照片。
      相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述。这个模型有很多种,其中最简单的称为针孔模型。针孔模型是很常用而且有效的模型,它描述了一束光线通过针孔之后,在针孔背面投影成像的关系。同时,由于相机镜头上的透镜的存在,使得光线投影到成像平面的过程中会产生畸变。因此,我们使用针孔和畸变两个模型来描述整个投影过程。这两个模型能够把外部的三维点投影到相机内部成像平面,构成相机的内参数。

相机的内参和外参介绍

      齐次坐标是将一个原本是N维的向量用一个N+1维向量来表示.
      通常认为,相机的内参(Camera Intrinsics)在出厂之后是固定的,不会在使用过程中发生变化。
      内参包括:焦距(fx, fy)、主点坐标(cx, cy)、畸变参数。
      内参作用:把坐标从相机坐标系转换到像素坐标系中
      外参作用:把坐标从世界坐标系转换到相机坐标系中。相机外参随着世界坐标系与相机坐标系的相对位置而变。
      外参:相机的旋转、平移(相机的位姿由它的旋转矩阵R和平移向量t来描述),用于描述在静态场景下相机的运动,或者在相机固定时,运动物体的刚性运动相比于不变的内参,外参会随着相机运动发生改变。旋转矩阵R为3*3,平移向量t为3*1; R,t组合成3*4的矩阵。 

相机的内参和外参介绍

      由透镜形状引起的畸变(Distortion, 也叫失真)称为径向畸变,参数包括:k1, k2, k3;
      由于透镜和成像面不能严格平行,会引入切向畸变,参数包括:p1, p2;
      相机成像过程涉及到四个坐标系的转换:世界坐标系、相机坐标系、图像坐标系(归一化坐标系)、像素坐标系。
      在instant-ngp中可通过colmap2nerf.py求相机的内参和外参,运算后生成的transforms.json部分内容如下:

{
  "camera_angle_x": 0.6797143901096673,
  "camera_angle_y": 0.6796103976473696,
  "fl_x": 1131.2978259257525,
  "fl_y": 1131.4850184079994,
  "k1": 0.010915222368470609,
  "k2": -0.9233170001378709,
  "k3": 0,
  "k4": 0,
  "p1": 0.011664713007717898,
  "p2": -0.004849750483773029,
  "is_fisheye": false,
  "cx": 445.86115401855534,
  "cy": 382.96655347583277,
  "w": 800.0,
  "h": 800.0,
  "aabb_scale": 4,
  "frames": [
    {
      "file_path": "./train/r_16.png",
      "sharpness": 695.979090625,
      "transform_matrix": [
        [
          -0.6656617785641908,
          0.007151776858681357,
          0.7462193033207263,
          2.8758118623856377
        ],
        [
          0.7251107079754902,
          -0.23014046936711052,
          0.6490376148874708,
          2.7371395609739637
        ],
        [
          0.17637703291159618,
          0.9731311404169232,
          0.14800988417722724,
          0.6687713985786954
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ]
    },
    {
      "file_path": "./train/r_23.png",

      其中:
      (1).camera_angle_x, camera_angle_y: 水平、垂直视角;镜头的焦距决定了视角的大小;在colmap2nerf.py中,由焦距求视角的公式为:

camera_angle_x = math.atan(w / (fl_x * 2)) * 2
camera_angle_y = math.atan(h / (fl_y * 2)) * 2

      (2).fl_x, fl_y: 焦距,若没有给出可通过水平或垂直视角计算出,在nerf_loader.cu中的公式为:

fl_x = 0.5f * (float)w / tanf(0.5f * camera_angle_x);
fl_y = 0.5f * (float)h / tanf(0.5f * camera_angle_y);

      (3).k1,k2,k3,k4: 径向畸变参数;
      (4).p1,p2: 切向畸变参数;
      (5).is_fisheye: 是否是鱼眼相机模型;
      (6).cx,cy: 主点坐标;
      (7).w,h: 分辨率,图像宽、高;
      (8).aabb_scale: 对于在单元立方体(unit cube)外部有可见背景的自然场景,有必要将参数aabb_scale设置为2的幂,最大为128;
      (9).transform_matrix: 外参.文章来源地址https://www.toymoban.com/news/detail-484244.html

到了这里,关于相机的内参和外参介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉(相机标定;内参;外参;畸变系数)

    目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标

    2024年02月07日
    浏览(51)
  • (九)相机内参、外参、反透视变换python opencv

    任务需求:将相机上的一个点投影到真实世界平面上去。 原则上单目相机是不可以的,因为只记录了二维信息,真实世界是三维的,双目相机可以通过视差,或者单目+IMU组合,但是 由于特征点在地面上的先验知识 ,因此可以进行反透视变换。方法有很多种那个,这里采用计

    2024年02月06日
    浏览(48)
  • M2DGR数据集各相机话题名与外参名的对应关系

    M2DGR数据集各传感器的名称-话题-外参的对应关系-CSDN博客 文中介绍了M2DGR数据集各传感器的名称-话题-外参的对应关系。 M2DGR数据集除了视觉惯性器件、天向相机,还有6个安装在同一平面、参数一致的鱼眼相机。 本文对这6个相机的安装位置、外参、topic话题进行区分。 安装

    2024年02月10日
    浏览(59)
  • 标定(内参、外参)

    在计算机视觉中,特别是在相机标定和立体视觉领域,内参(intrinsic parameters)和外参(extrinsic parameters)是非常重要的概念。它们与相机的几何属性和姿态有关。 内参(Intrinsic Parameters) : 内参是描述相机内部属性的参数,包括焦距、主点(光学中心)坐标、畸变系数等。

    2024年02月14日
    浏览(44)
  • 相机标定,内参数与外参数

    所谓的相机标定就是将外界世界的坐标信息转化为计算机(自带相机/摄像头)可以理解的“距离”,将世界坐标系转换到相机坐标系。我们可以理解为从一个坐标系转换到另一个坐标系所需要的转换关系就是相机标定。 简单滴说:A=F(B),其中F()就是相机标定要做的工作。 其

    2024年02月09日
    浏览(45)
  • 【相机标定】相机内参

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

    2023年04月10日
    浏览(48)
  • matlab相机标定求得相机内参

    可以去官网下载标定板,然后使用我们的相机进行拍照(10~15张即可): 下载请点击这里:here 在拍摄照片之前,先量取对应的每个方格的长度: 如下: 打开MATLAB的命令行: 输入 cameraCalibrator #调用标定的工具箱 添加的是刚刚我们拍照标定板的图片。 点击运行按钮 参数导出

    2024年02月09日
    浏览(47)
  • 相机校准—外参矩阵

    在本文中,我们将探讨摄影机的外参,并通过Python中的一个实践示例来加强我们的理解。 相机外参 摄像头可以位于世界任何地方,并且可以指向任何方向。我们想从摄像机的角度来观察世界上的物体,这种从世界坐标系到摄像机坐标系的转换被称为摄像机外参。 那么,我们

    2023年04月16日
    浏览(64)
  • 相机内参标定理论篇------相机模型选择

    当拿到一款需要标定内参的相机时,第一个问题就是选择那种的相机模型来标定相机。首先对相机类型进行分类,然后针对相机类型选择相机模型。工程上相机类型的划分并不是十分严格,一般来说根据相机FOV可以把相机大概分为以下几类: 长焦相机:=  标准相机:~; 广角

    2024年02月04日
    浏览(46)
  • 鱼眼相机外参的计算

    主要是借助cv::solvepnp和cv::solvePnPRansac或calibrate来求解相机外参,但鱼眼相机外参的计算,在调用 参考链接: (185条消息) 鱼眼相机外参的计算和图像的透视变换_求解鱼眼相机外参_Mega_Li的博客-CSDN博客 我: 你是opencv专家,教我计算鱼眼相机的外参,用c++代码实现 openai(chatgpt

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包