快门类型
- 卷帘快门 - 图像通过从上到下逐行扫描的方式捕捉。这意味着图像并非一次性全部捕捉,而是一行一行地捕捉。当相机或物体移动时,这可能导致图像出现变形(果冻效应)。卷帘快门传感器可以在不显著增 加成本的情况下实现更高分辨率。
- 全局快门 - 图像一次性全部捕捉。这意味着整幅图像在同一时刻被捕捉,从而消除了果冻效应。全局快门传感器在更高分辨率(超过 1MP)时通常要昂贵得多,因此我们当前支持的最大全局快门传感器为 2.3MP(AR0234)。
卷帘快门
卷帘快门传感器时序

行时间 = 1 / (最大帧率 * 行数)。因此对于 IMX378 @ 1080P,行时间为 1/(60 * 1080) = 15.4微秒。下面的动画展示了在捕捉运动物体时使用卷帘快门的缺点。卷帘快门传感器时序

估算果冻效应
- 物体的速度
- 物体大小
- 使 用的分辨率
Python
1obj_speed = 0.364 # [fov%/sec] 物体速度
2obj_height = 0.1 # [%] 物体在FOV中的高度
3width_pix, height_pix = 1920, 1080 # [pix] 1080P分辨率
4row_time = 1 / (60 * height_pix) # 15.4微秒
5
6obj_speed_pix = obj_speed * width_pix # 1920 像素/秒 移动
7shift_per_row = obj_speed_pix * row_time # 0.0148[像素/行] 偏移
8
9# 行数,占FOV的10% => 108行 * 偏移
10total_shift = obj_height * height_pix * shift_per_row
11print('物体偏移:', total_shift, '像素') # -> 物体偏移: 1.16 像素
12print('相对物体偏移', total_shift / width_pix * 100, '%') # -> 0.06 %
13
14width_pix, height_pix = 3840, 2160 # [pix] 4K分辨率
15obj_speed_pix = obj_speed * width_pix
16row_time = 1 / (30 * height_pix) # 15.4微秒,与1080P相同
17shift_per_row = obj_speed_pix * row_time
18total_shift = obj_height * height_pix * shift_per_row
19print('物体偏移:', total_shift, '像素') # -> 物体偏移: 4.66 像素
20# 相对物体偏移
21print(total_shift / width_pix * 100, '%') # -> 0.12%全局快门
全局快门传感器时序

全局快门传感器时序
