此页面由 AI 自动翻译。查看英文原版

本页目录

  • 概述
  • 振动容差
  • 对焦范围
  • 手动对焦
  • 识别对焦类型

自动/固定对焦

概述

参数固定对焦 (FF)自动对焦 (AF)
振动容差
对焦范围50 厘米至无穷远10 厘米至无穷远
手动对焦否 - 镜头已固定是 - 可编程
总的来说,自动对焦摄像头更具通用性,可用于更广泛的应用,而固定对焦摄像头在高振动环境中更坚固。 请参阅 识别对焦类型 以了解您拥有哪种类型的摄像头模块。

振动容差

固定对焦 (FF) 更适合处理高振动环境。自动对焦使用音圈电机 (VCM) 来移动安装在自由移动镜头上的磁铁。在高振动环境下,这种电磁力会被 克服,镜头会到处振动,导致图像模糊/奇怪/"果冻"效应。
一些高振动应用场景:
  • 无人机
  • 除草机
  • 重型机械
  • 哈雷戴维森摩托车(以其振动而闻名)等。

对焦范围

自动对焦 (AF) 在这方面表现最佳。固定对焦可以清晰地看到从约 50 厘米(约 20 英寸)到无穷远,而自动对焦可以清晰地看到从 10 厘米(约 4 英寸)到无穷远。
自动对焦通过实际移动镜头到不同位置(约 255 个不同步长)来对焦特定距离,从而实现更宽的景深 (DoF)。自动对焦模型还可以通过 API 进行手动控制,以 1/256 步长进行(见下文)。

手动对焦

自动对焦摄像头可以通过 DepthAI API 进行手动控制。您可以设置对焦值 (0..255),可以在:
  • 运行时,使用 此处示例 来更改对焦
  • 启动时,使用以下 Python 代码:
Python
1pipeline = dai.Pipeline()
2rgbCam = pipeline.create(dai.node.ColorCamera)
3rgbCam.initialControl.setManualFocus(100) # 0..255
请注意,在高振动环境中,即使您设置了手动对焦,AF 线圈(固定镜头的部件)也无法将镜头保持在原位,这将导致图像模糊。

识别对焦类型

如果您不确定面前的 OAK 是自动对焦还是固定对焦彩色摄像头,可以通过自动对焦机制上的银色金属环来识别,如下图所示。
另一种方法是使用 DepthAI API 库查询此信息:
Python
1import depthai as dai
2with dai.Device() as device:
3    print(device.getConnectedCameraFeatures())
这将打印类似下面的内容。hasAutofocusIC 字段对于 AF 摄像头为 1,对于 FF 摄像头为 0。因此,在这种情况下,我们的 OAK-D 摄像头是 AF:
Python
1[
2    {socket: CAM_A, sensorName: IMX378, width: 4056, height: 3040, orientation: AUTO, supportedTypes: [COLOR], hasAutofocus: 0, hasAutofocusIC: 1, name: color},
3    {socket: CAM_B, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: left},
4    {socket: CAM_C, sensorName: OV9282, width: 1280, height: 800, orientation: AUTO, supportedTypes: [MONO], hasAutofocus: 0, hasAutofocusIC: 0, name: right}
5]
请注意,有两个字段:
  • hasAutofocus 字段存储在 EEPROM 中(可能不正确),主要用于向后兼容。
  • hasAutofocusIC 字段是从摄像头模块(VCM 控制器)读取的实际值。您应该依赖此字段。