中国 · 南京 · 栖霞区紫东路2号紫东国际创意园B3-2幢5F
+86-18994094214 (仅工作日:8:30~17:30)    Wechat:Leonardoliu123(24h)
contact@oakchina.cn

一文带你了解深度相机中的全局快门与卷帘快门!

一文带你了解深度相机中的全局快门与卷帘快门!

▌前言

Hello,大家好,这里是OAK中国,我是Ashely。

我们知道OAK相机支持很多型号的传感器(具体型号请查看此处),这些传感器可以分为两种:

  • 卷帘快门
  • 全局快门

一些朋友在为分体式OAK-FFC-4POAK-FFC-3P选购镜头模组时会犹豫哪种比较合适,本文会为大家详细介绍这两种快门的区别和应用场景。

▌什么是快门?

快门是相机中的一个关键组件,用于控制进入感光介质(例如胶片或图像传感器)的光线的时间。它由一个可打开和关闭的机械或电子设备组成,以控制感光介质暴露于光线的持续时间。快门速度通常以秒为单位表示,例如1/1000秒或1秒。较快的快门速度可以冻结运动,而较慢的快门速度可以捕捉到运动的轨迹或模糊效果。

打个比方,快门就像相机的眼睛的闪光灯,它控制相机在拍摄照片时看到的时间长短。当你按下快门按钮时,相机的快门打开,就像眨眼一样,允许光线进入相机的感光器官。快门速度越快,它的“眨眼”时间就越短,所以它可以冻结运动,让你拍到高速运动的清晰图像;而如果快门速度慢,就像眨眼的时间变长,你可以捕捉到运动的轨迹或者创造出模糊的特效。所以,快门是相机中控制拍摄时间的关键部件。

▌什么是卷帘快门?

卷帘快门通过从上到下扫描图像来捕获图像,这意味着图像不是一次捕获所有图像,而是一次捕获一行。当相机或物体移动时,这可能会导致图像失真(果冻效应)。卷帘快门传感器可以具有很高的分辨率(OAK目前最高支持3200万像素),但成本又不会太高。

卷帘快门推荐用于需要更高分辨率且相机或物体移动速度不太快的应用。

卷帘快门传感器计时

每个新行开始曝光之间的时间差(“行时间”)取决于传感器、MIPI 通道和配置、MIPI 速度和原始位深度(每像素 8/10/12 位)。通常,我们可以用 row_time = 1 / (maxFps * rows) 来估计它。因此,对于 IMX378 @ 1080P,它将是 row_time = 1/(60 * 1080) = 15.4us .

果冻效应 

果冻效应是相机或物体移动时图像的失真,这是由每个新行的开始曝光之间的时间差引起的。

果冻效应取决于:

  • 物体的速度
  • 物体大小
  • 使用的分辨率

让我们以 FOV 的百分比来测量速度/高度。你可以使用 fov.luxonis.com 来估计速度/高度。假设我们正在使用 OAK-1相机(IMX378,正常 FOV)测量一个高度为 1 厘米的盒子。盒子以 1 米/秒的水平移动,相机距离物体 2 米。这意味着总覆盖区域 (AoC) 长度为 2.75m,因此物体以 36.4% FOV/秒的速度移动,高度为 FOV 的18%。

obj_speed = 0.364  # [fov%/sec]
obj_height = 0.1  # [%] Object height in the FOV
width_pix, height_pix = 1920, 1080  # [pix] 1080P resolution
row_time = 1 / (60 * height_pix) # 15.4 microsec

obj_speed_pix = obj_speed * width_pix # 1920 pix/sec movement
shift_per_row = obj_speed_pix * row_time # 0.0148[pix/row] shift

# Number of rows, 10% of the FOV => 108 rows * shift
total_shift = obj_height * height_pix * shift_per_row
print('Object shift:', total_shift, 'pix') # -> Object shift: 1.16 pix
print('Relative obj shift', total_shift / width_pix * 100, '%') # -> 0.06 %

width_pix, height_pix = 3840, 2160  # [pix] 4K resolution
obj_speed_pix = obj_speed * width_pix
row_time = 1 / (30 * height_pix) # 15.4 microsec, same as 1080P
shift_per_row = obj_speed_pix * row_time
total_shift = obj_height * height_pix * shift_per_row
print('Object shift:', total_shift, 'pix') # -> Object shift: 4.66 pix
# Relative obj shift
print(total_shift / width_pix * 100, '%') # -> 0.12%

1.16像素偏移大吗?这取决于应用程序。对于大多数应用程序来说,这并不多,但对于某些应用程序来说,它可能偏移过大。

▌什么是全局快门?

全局快门 一次拍摄所有图像,这意味着整个图像是同时捕获的,从而消除了果冻效应。更高分辨率(1MP以上)的全局快门传感器通常要贵得多,这就是为什么我们目前支持的最大全局快门传感器是2.3MP(AR0234)。

全局快门推荐用于相机或物体快速移动的应用,以及立体相机对,在这些应用中,果冻效应可能会导致视差匹配问题。

全局快门传感器时序

与卷帘快门图相比,只有 1 行用于曝光 – 因为所有像素都同时曝光。

索引