本页目录

  • 概述
  • 抗振性能
  • 对焦范围
  • 手动对焦
  • 识别对焦类型

自动/固定焦距

概述

参数固定焦距(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控制器)读取的实际值,是您应该依赖的字段。