games101学习笔记_Cameras, Lenses and Light Fields

我们从成像开始说起,图形学中成像有两种方式:光栅化和光线追踪
在这里插入图片描述

相机(Camera)

最早的相机就是利用“小孔成像”原理,后面发明了 “针孔相机”。
在这里插入图片描述

  • 快门用于控制进入相机的时间,快门示意图:
    在这里插入图片描述
  • 传感器在曝光过程中可以捕捉光并将信息,另外,每个传感器的点只能记录Irradiance,不会记录 radiance。但目前随着科技发展,最新的一些传感器可以通过方向性的光分开传感分开记录。这里只考虑以前的相机。
    在这里插入图片描述
    如果只有传感器,没有透镜行不行?
  • 不行,如果直接把传感器放到物体面前,那么成像平面上每个点会收到物体各个方向反射过来的光,一般的传感器本身只记录了irradiance信息,无法区分来自不同方向的光, 这样每个点就长得一样了。

针孔相机无法拍出东西的深度,任何地方都是清楚的,不会有虚化。
在这里插入图片描述

视场(FOV,Field of View)

在这里插入图片描述

  • 视场FOV:所谓视场,就是能看到多大的范围(我们常说的 广角相机 就是FOV比较大的一类相机)
  • 焦距f:传感器和小孔的距离。
  • 传感器大小h

我们要讨论的问题是,什么因素决定了FOV的大小。
根据上面的描述可以知道,视场FOV与焦距f和传感器大小h有关。

确定传感器大小

在这里插入图片描述
市面上通常都是确定完传感器的大小后,通过定义焦距的大小来决定FOV的值。

比如下图,图片都是站在同一个地方拍的,不同的是视场的大小。
在这里插入图片描述

确定焦距

显然,如果可以改变传感器大小,那么当焦距一样时,大一点的传感器自然FOV会更大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

曝光(Exposure)

在这里插入图片描述

  • H:曝光(Exposure);
  • T:曝光时间(按住快门的时间);
  • E:单位时间进来的光。

摄影中影响曝光的因素:

  • 光圈大小(Apeture size)
    光圈其实就是一种控制光线入射量的工具,是一种仿生学工具。模仿的是动物的瞳孔,在亮的地方光圈小,减少光的进入量,防止灼伤视网膜;在暗的地方光圈大,增加光的进入量,使图像尽量清楚。
    f-stop数则是用来控制光圈的大小,这个数后面再详细讲。
  • 快门速度(Shutter speed)
    快门开放的时间。
  • 感光度(ISO gain)
    是一个后期处理。是指在原来的图像上,乘以多少倍数。这样的效果是放大信号(变亮),但也同时放大了噪声。
    在这里插入图片描述
    从上到下 三行 分别是 f-stop;shutter speed;iso gain 对曝光的影响.
    在这里插入图片描述

ISO(Gain)

在这里插入图片描述
一种线性的增益。
增加ISO可以增加曝光度,但是也会放大噪声

下图可以明显地观察到随着ISO的增大,噪点逐渐明显。
在这里插入图片描述

F-Number(F-Stop,曝光等级)

F-Number通常写成 FN 或者 F/N。不管怎么写,目前需要的只有N。

f数,也就是光圈直径的倒数(1/光圈直径),光圈越小f数越大
在这里插入图片描述

快门

机械快门(Physical Shutter)

运动模糊:快门打开的时间较长、物体运动速度较快或者手抖,会导致最终照片的模糊/扭曲。因为进入到快门的光都会被传感器感应并记录下来,然后传感器起到一个平均的作用,就会产生模糊。
可以说模糊在某种程度上能表现出速度。
在这里插入图片描述
所以快门打开的时间短,进入的光线就少,时间也短,运动模糊的影响就小,就能有个比较清晰的动作,但是相对应的,亮度也就小。要解决亮度问题就只能调高ISO或者增加曝光时间。
在这里插入图片描述

运动模糊不总是坏事:

  • 可以让人视觉上有快速运动的感觉,能捕捉到物体运动的轨迹。
  • 在不同的时间对物体所在的位置进行了采样,这就与之前提到过的反走样(anti-aliasing)很相似。有着反走样的效果。

滚动快门(Rolling Shutter)

机械快门是机械控制快门的开关闭,所以必然存在着一个开关快门的速度,当拍摄物体速度快于打开快门的速度,拍摄就会出现问题。对于超高速的运动物体,不同时间的光会造成扭曲现象,称为Rolling Shutter。

开关快门如下图所示:
在这里插入图片描述
在这里插入图片描述
图像上不同的位置,记录的是不同时间快门进来的光。如下图飞机的扭曲螺旋桨:
在这里插入图片描述

表格中的每一列差不多都能达到相同的曝光度(f数是光圈直径的倒数),但是拍出来的照片效果并不一样:
在这里插入图片描述
摄影师必须权衡景深(景深)和运动模糊的偏向。二者不可兼得。

Fast and Slow Photography

高速摄影(High-Speed Photography)

帧率高,快门时间受限需要用更大光圈或者高ISO。

可以用于拍摄比较有连续性的效果。
在这里插入图片描述
在这里插入图片描述

延时摄影(Long-Exposure Photography)

小光圈长时间,延时摄影效果,在摄影界被称为 “拉丝” 效果。(打开快门的时间内,物体进行剧烈的运动,都被记录了下来)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

薄透镜近似(Thin Lens Approximation)

一般的相机都会配一组透镜:
在这里插入图片描述
目前的相机都是用透镜组来构成相机镜头。真实的透镜并不是理想的,有些透镜无法将光线汇聚到一点。
在这里插入图片描述
理想的透镜应该像下图一样,所有的光线能聚焦于一点:
在这里插入图片描述

  • 进入透镜的所有平行光线都会通过其焦点。
  • 所有通过焦点的光线在通过透镜后将平行。
  • 焦距可以任意改变(事实上,是的!)
    在这里插入图片描述

薄透镜公式(The Thin Lens Equation)

在这里插入图片描述

  • 从任何一方想穿过棱镜中心,他的方向都不会发生改变。
  • Zo:物距,物体到棱镜的垂直距离。
  • Zi:像距:物体成像后的像到棱镜的垂直距离。
  • f:透镜的焦距。

在这里插入图片描述
在这里插入图片描述

散焦模糊(Defocus Blur)

可用于解释景深。

为解释模糊,引入一个概念:Circle of Confusion(CoC)。
在这里插入图片描述

  • Zi:像距;
  • Zs:成的像与透镜的距离。

左边有一个Focal Plane,其上的东西会成像到Sensor Plane上;Object不在Focal Plane上,可能会聚焦在Image上,然后光线继续传播到Sensor Plane上形成一个圆,这时候在Sensor Plane上形成的圆就是CoC。

由CoC得知,看到的东西是否模糊,取决于光圈的大小,大光圈容易有模糊的效果。
在这里插入图片描述

再次讨论F-Number

之前f数用光圈直径的倒数来描述是不准确的。

F数的定义应该是焦距除以光圈直径。
在这里插入图片描述

  • N:f数
  • f:焦距
  • A:光圈直径

在这里插入图片描述
弥散圈(CoC)和f-stop有反比关系,效果表示如下:
在这里插入图片描述

光线追踪中使用理想透镜(Ray Tracing Ideal Thin Lenses)

以前的光线追踪中,相机是一个小点,往一个像素中心连,默认是小孔成像的原理。
模拟薄透镜可以做出景深的效果。
在这里插入图片描述

在这里插入图片描述
设置场景中的参数:

  • 首先确定Sensor有一定的大小,也就是成像平面的区域,同时确定透镜本身的属性:焦距和光圈的大小。
  • 定义透镜的位置,即物距Zo。(这步就可以知道像距是多少)

在这里插入图片描述
渲染:

  • 对于sensor上的每一个像素点x‘;
  • 在透镜上随机取样点x’’;
  • 将上面两点连线后,根据透镜性质得知光线可以传播到x’";
  • 估计x"到x"'光线上的radiance。

景深(Depth of Field)

下面两张图就是用的不同的光圈大小拍摄出来的照片,可以看见模糊的地方。
在这里插入图片描述
大的光圈对应大的CoC,得到的一个点会变成一个更大的圆,就会更模糊。

所以光圈的大小会影响模糊的范围。
在这里插入图片描述
有光经过透镜(Lens),然后打到某个成像平面,在这个成像平面附近的一段距离区域内,都认为这个CoC足够小。

景深: 在这个场景中,有一段深度(景深),这段深度经过透镜之后,会在成像平面的附近形成一段区域,在这段区域内,认为CoC都是足够小的。

在某段区域内CoC很小的一个范围内对应的那个场景是清晰的。
CoC比像素小或者比较小,成像出来就是清晰的。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意味着系统无法找到名为"kalibr_calibrate_cameras"的命令。可能是因为该命令没有正确安装或者没有添加到系统路径中。您可以尝试重新安装该命令或者检查系统路径是否正确配置。 ### 回答2: kalibr_calibrate_cameras是kalibr相机标定工具包中的一个命令,用于对单个或多个相机进行标定,并输出标定参数,以便进行三维重建等任务。当出现“未找到命令”这种错误提示时,通常是因为系统中没有安装kalibr工具包或者没有正确安装kalibr工具包,或者路径配置错误导致系统无法找到kalibr_calibrate_cameras命令。 要解决这种问题,首先需要检查kalibr工具包是否已经正确安装,并且是否已经将kalibr工具包所在路径加入到系统的环境变量中。如果没有安装kalibr工具包,则需要先下载并安装,并且确保安装路径正确。 其次,需要检查kalibr_calibrate_cameras命令所在路径是否正确,以及系统是否能够找到该路径。如果路径配置错误,则需要修改路径配置,确保系统可以正确找到kalibr_calibrate_cameras命令的所在位置。 如果以上两种方法都无法解决问题,则可能是kalibr工具包版本不兼容或者存在其他问题。此时可以尝试重新下载、安装kalibr工具包,或者查看kalibr相关的报错信息,以便进一步排除问题。 ### 回答3: kalibr_calibrate_cameras是kalibr软件包中的一个命令,用于相机标定。相机标定是指通过将相机拍摄的图像与实际场景中的标定板进行匹配,来确定相机的内部参数(如焦距、主点位置)和外部参数(如相机在空间中的位置和方向)。相机标定是视觉SLAM(同时定位与建图)和许多其他计算机视觉问题的基础。 当提示“未找到命令”时,可能有以下几种情况: 1. 没有安装kalibr软件包。在执行kalibr_calibrate_cameras命令之前,应先安装kalibr软件包。可以通过以下命令安装kalibr软件包: sudo apt-get install ros-<distro>-kalibr 其中,distro应替换为你正在使用的ROS发行版。例如,如果你使用的是ROS Kinetic,则应替换为“kinetic”。 2. 没有正确设置环境变量。在ROS中使用kalibr软件包时,应先运行以下命令来设置环境变量: source /opt/ros/<distro>/setup.bash source /path/to/kalibr_ws/devel/setup.bash 其中,第一行命令将ROS的环境变量设置为所使用的ROS版本,第二行命令将kalibr软件包添加到ROS的搜索路径中。 3. 在运行命令时输入错误。在执行kalibr_calibrate_cameras命令时,需要正确设置参数和选项。可以通过运行以下命令查看命令使用方式: kalibr_calibrate_cameras --help 这将列出所有可用的参数和选项,以及相应的说明。 总之,当kalibr_calibrate_cameras命令返回“未找到命令”时,需要检查以上几个方面,以确定问题的原因并采取相应的解决措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值