Exposure Time(曝光时间)

介绍

曝光时间,也称为快门速度,是指单张相机图像曝光的时间。换句话说,就是快门保持打开的时间。

Zivid相机拍摄多张图像来生成彩色图像和点云,曝光时间的设置定为单张图像的曝光时间。

Zivid 2

Zivid 2+

Zivid 2+ R

最短曝光时间 (µs)

1 677

1 677

900

最大曝光时间 (µs)

100 000

100 000

40 000

小技巧

查看 捕获速度计算器 以了解曝光时间如何影响总捕获时间。

来自强环境光源的干扰

当使用Zivid相机拍摄图像时,我们在特定时间窗口内对光信息进行采样。通过利用这个简单的概念,可以避免可能由环境光引起的许多问题。

结构光传感器是采样系统,其采样率与电视和照明等许多公用设施相似。荧光灯通常是连接到交流电源上工作的。在欧盟,电源产生频率为50Hz的正弦电压。在其他国家,例如美国,电源线频率为60Hz。

如果您在欧洲以30fps的帧率对准的荧光灯进行录像,您会发现它在视频中似乎在闪烁。 当您在车库或仓库内用智能手机拍照时,可能已经遇到过这种现象。

如果相机的帧频与环境光电源的频率匹配,则最终将在每个图像中以相同相位进行光的采样,闪烁现象也将消失。 这会使光线看起来没有变化。

这种概念被称为关联采样(correlated sampling),在使用结构光3D扫描仪时具有良好的效果。 通过选择满足以下公式的曝光时间,可以过滤掉这些由环境光电源导致的随时间变化的噪声:

\[t_{exp} = \frac{n}{2f_s},\quad n \in \mathbb{N}^{+}\]

其中 \(n\) 是正整数, \(f_s\) 是光源的频率。

在存在强烈闪烁的环境光源的情况下,使用电网周期倍数的采样率(曝光时间):

  • 在50Hz电网频率下以10 000µs的倍数进行采样。

  • 在60Hz电网频率下以8 333µs的倍数进行采样。

具有直流电源的光源(例如聚光灯或≥1kHz的LED)不会产生此类随时间变化的噪声。

干扰对点云的影响

闪烁的环境光对平面造成的干扰(点云) 闪烁的环境光对平面造成的干扰(点云)
通过适应电网频率的曝光时间减轻干扰 通过适应电网频率的曝光时间减轻干扰

备注

仅在存在 环境光的情况下才需要启用环境光适应功能。当相机投影仪是主要光源时,在正常工作条件下,任何曝光时间通常都足够。

测量环境光闪烁频率

Zivid 相机可以检测场景中的闪烁并区分 50 Hz 和 60 Hz 电网的干扰。

打开 Zivid Studio 并连接到您的相机。点击 Capture 部分中的三个点。然后点击 Measure scene lighting conditions 。软件将显示检测到的环境光闪烁频率。

../../../_images/studio-measure-ambient-light.png

或者,使用 SDK 测量环境光条件。此方法将报告是否检测到明显的环境光闪烁,以及它对应的电网频率是 50 Hz 还是 60 Hz。

转至源代码

source

std::cout << "Measuring scene conditions" << std::endl;
auto sceneConditions = camera.measureSceneConditions();
auto flickerClassification = sceneConditions.ambientLight().flickerClassification().toString();
std::cout << flickerClassification << std::endl;
auto flickerFrequency = sceneConditions.ambientLight().flickerFrequency();
std::cout << "Measured flickering frequency in the scene: " << flickerFrequency << " Hz." << std::endl;
转至源代码

源码

Console.WriteLine("Measuring scene conditions");
var sceneConditions = camera.MeasureSceneConditions();
var FlickerClassification = sceneConditions.AmbientLight.FlickerClassification.ToString();
var flickerFrequency = sceneConditions.AmbientLight.FlickerFrequency;
Console.WriteLine($"Measured flickering frequency in the scene: {flickerFrequency} Hz.");
转至源代码

源码

print("Measuring scene conditions")
scene_conditions = camera.measure_scene_conditions()
flicker_classification = scene_conditions.ambient_light.flicker_classification
flicker_frequency = scene_conditions.ambient_light.flicker_frequency
print(f"The measured flickering frequency in the scene: {flicker_frequency} Hz.")

50 Hz 环境光适应

下表显示了在使用50Hz电源线频率的国家/地区使用的一些推荐的曝光时间。请注意,您还可以使用10 000 µs的其他倍数,例如30 000µs和50 000µs。

曝光时间 (µs)

10 000

20 000

40 000

80 000

100 000

曝光等级

0

+1

+2

+3

+3.32

60 Hz 环境光适应

下表显示了在使用60 Hz电源线频率的国家/地区使用的一些推荐的曝光时间。请注意,您还可以使用8 333 µs的其他倍数,例如24 999 µs和41665 µs。

曝光时间 (µs)

83 33

16 667

33 333

66 667

83 333

曝光等级

0

+1

+2

+3

+3.32

版本历史

SDK

变更

2.16.0

增加了对测量环境光闪烁频率的支持。

2.14.0

增加了对 Zivid 2+ MR130、LR110 和 MR60 的支持,最短曝光时间为 900 µs。