【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

这篇具有很好参考价值的文章主要介绍了【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编辑:OAK中国
首发:oakchina.cn
喜欢的话,请多多👍⭐️✍
内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。

▌前言

Hello,大家好,这里是OAK中国,我是助手君。

去年我写了一篇博客说明OAK相机是如何实现硬件同步的(传送门),不过随着我们产品的增多,这篇博客显然也要更新内容了。加上最近问外触发同步的朋友比较多,所以我觉得是时候更新内容了!

▌前言

有两种方式去同步来自不同传感器的信息(帧、IMU数据包、ToF等):

  • 硬件同步(多传感器亚毫米级精度,硬件触发)
  • 软件同步(基于时间戳/序列号)

本文重点介绍硬件同步,它允许在多个相机传感器之间精确同步,并可能与其他硬件同步,如闪光灯LED、外部IMU或其他相机。

▌FSYNC信号

FSYNC/FSIN(帧同步)信号是一个脉冲,在开始捕获每个帧时被驱动为高电平。它的长度与曝光时间不成正比,可以是输入或输出,在1.8V下工作。

在双目立体相机(OAK-D*)上,我们希望双目黑白相机是完全同步的,所以一个相机传感器(如左相机)的FSYNC设置为INPUT,而另一个相机传感器(如右相机)的FSYNC设置为OUTPUT。在这样的配置中,右相机驱动左相机。

⚠注意!目前,只有OV9282/OV9782可以输出FSYNC信号,而IMX378/477/577/等应该也有这个能力,但还不支持(所以这些信号不能驱动FSYNC信号,只能被它驱动)。AR0234只支持输入FSYNC信号。

从外部同步帧

如果我们想用外部信号驱动相机,我们需要将FSIN设置为相机传感器的INPUT。

所有二代的OAK-PoE设备都有一个M8 I/O连接器,可以引出FSIN信号(也包括STROBE)。因此,你可以将一个信号发生器连接到M8连接器上,所有3个相机传感器将根据信号发生器的触发器捕获一帧。

# Example: we have 3 cameras on ports A,B, and C
cam_A.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
cam_B.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)
cam_C.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)

你也可以在脚本节点内通过GPIO控制FSIN,查看这里的示例。

▌STROBE信号

STROBE信号是图像传感器的输出,在图像传感器的曝光期间是有效的(高电平)。它可以用来驱动外部的LED照明,所以照明只在曝光时间内激活,而不是持续开启,这将减少功耗和发热。

我们在OAK-D-Pro系列相机上使用STROBE信号(它有板载照明红外LED和红外激光点阵发射器)来驱动激光/LED。

▌帧捕获图像

当传感器开始传输帧(MIPI读数)时,帧时间戳会在MIPI SoF(帧开始)事件中分配给帧。

对于全局快门传感器,这是在整个帧的曝光完成后立即进行的,所以我们可以说分配的时间戳与曝光窗口的结束相一致(在几微秒的范围内)。下面是一个全局快门传感器计时的示意图,演示了时间戳何时被分配给帧。

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

对于卷帘快门,示例图看起来有点不同。MIPI SoF在图像的第一行完全曝光后继续拍摄并传输,但后面的行仍在曝光或可能还没有开始曝光(取决于曝光时间)。

下面是卷帘快门传感器(IMX378)在1080p和30fps(33.3ms帧时间)的示意图。MIPI读出时间因传感器/分辨率而异,但对于IMX378来说,1080P时为16.54ms,4K时为23.58ms,12MP时为33.04ms。

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
在OAK-FFC-4P上有四个摄像头接口:A(RGB)、B(LEFT)、C(RIGHT)和D(cam_d)。A和D是4-lane MIPI,B和C是2-lane MIPI。每对(A&D,B&C)共享一条I2C总线,默认情况下,B&C总线配置为左右相机硬件同步。

对于A&D端口,你需要启用硬件同步:

cam_A.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.OUTPUT)
cam_D.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT)

▌FFC镜头模组

FFC系列可以接的镜头模组有一个22pin的连接器,但没有给FSIN/STROBE信号焊线。如下图所示,要将FFC镜头模组连接到我们的OAK-FFC基板上,你需要使用26-22pin转换器连接器,该连接器只能通过测试焊盘露出FSIN/STROBE线。为了同步这些相机,你可以将一根电线从测试焊盘焊接到相机模块的FSIN插头,或者将所有的FSIN插头连接在一起(步骤)。

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
⚠注意!我们现在发的模组已经焊了线。

▌连接FSIN/STROBE

如前所述,所有二代的OAK PoE设备都有一个带FSYNC/STROBE信号的M8 I/O连接器。但是如果你不用这些,你可能需要在设备的PCB上焊接一条线。大多数PCB设计都是开源的(查看depthai-hardware仓库),所以你可以很容易地检查FSIN/STROBE信号在PCB上的位置。

OAK-FFC-4P FSIN

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
如上图所示,在OAK-FFC-4P上,你可以用MXIO6启用连接FSIN_4LANEFSIN_2LANE。下面的脚本将同步所有4台连接到OAK-FFC-4P的相机。

# CAM_A will drive FSIN signal for all other cameras:
cam_A.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT) # 4LANE
cam_B.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.OUTPUT) # 2LANE
cam_C.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT) # 2LANE
cam_D.initialControl.setFrameSyncMode(dai.CameraControl.FrameSyncMode.INPUT) # 4LANE

# AND importantly to tie the FSIN signals of A+D and B+C pairs, by setting a GPIO:
# OAK-FFC-4P requires driving MXIO6 high (FSIN_MODE_SELECT) to connect together
# the A+D FSIN group (4-lane pair) with the B+C group (2-lane pair)
config = dai.Device.Config()
config.board.gpio[6] = dai.BoardConfig.GPIO(dai.BoardConfig.GPIO.OUTPUT,
                                            dai.BoardConfig.GPIO.Level.HIGH)

with dai.Device(config) as device:
    device.startPipeline(pipeline)

补充信息可在这篇帖子里查看。

Series 2 USB OAKs

DM9098板上的FSIN(如OAK-D-S2、OAK-D-W、OAK-D-Pro、OAK-D-Pro-W)

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

USB OAK-1* FSIN

NG9093板上的FSIN测试点(如OAK-1、OAK-1-W、OAK-1-Lite、OAK-1-Lite-W、OAK-1-MAX)
【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

OAK-D-Lite FSIN

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄
请注意双目和RGB没有连接在一起。
【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

▌相关示例

参考示例-软同步

▌参考资料

https://docs.oakchina.cn/en/latest/
https://www.oakchina.cn/selection-guide/


OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态

戳「+关注」获取最新资讯↗↗文章来源地址https://www.toymoban.com/news/detail-497525.html

到了这里,关于【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置硬件触发模式(C++)

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩

    2024年01月16日
    浏览(45)
  • OAK相机:多相机硬件同步拍摄

    目前主要有两种方法来同步不同传感器的信息(帧、IMU数据包、ToF等): 硬件同步(基于硬件信号触发,同步精度较高,需要硬件支持) 软件同步(基于时间戳或序列号同步,同步精度较低,无需硬件支持) 此博客重点介绍硬件同步,它允许在多个相机传感器之间精确同步

    2024年02月09日
    浏览(40)
  • 计算机视觉:OAK多相机硬件同步拍摄

    目前主要有两种方法来同步不同传感器的信息(帧、IMU数据包、ToF等): 硬件同步(基于硬件信号触发,同步精度较高,需要硬件支持) 软件同步(基于时间戳或序列号同步,同步精度较低,无需硬件支持) 此博客重点介绍硬件同步,它允许在多个相机传感器之间精确同步

    2024年02月09日
    浏览(43)
  • realsense D435i 实现外部时钟触发硬件同步多相机数据采集

    最近有一个调试D435i相机的工作,需要使得三个相机能够完成硬件触发的同步,具体来说,就是有一个固定频率的外部脉冲信号,使得三个相机能够根据外部脉冲信号的硬件触发完成双目图片、深度图片、彩色图片、IMU数据的实时响应采集,因为外部脉冲信号是通过一个精确

    2024年01月16日
    浏览(48)
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集(C#)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2023年04月13日
    浏览(53)
  • Baumer工业相机VCX系列相机硬件触发流程和设置

    Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。   Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可

    2024年02月09日
    浏览(75)
  • 一步一步学OAK之三:实现RGB相机场景切换

    创建新建3-rgb-scene文件夹 用vscode打开该文件夹 新建一个main.py 文件 安装依赖前需要先创建和激活虚拟环境,我这里已经创建了虚拟环境OAKenv,在终端中输入cd…退回到OAKenv的根目录,输入 OAKenvScriptsactivate 激活虚拟环境 安装pip依赖项: 在main.py中导入项目需要的包

    2024年02月11日
    浏览(53)
  • python中使用OAK-D PRO相机实现OCR功能

    OAK(OpenCV AI Kit)是一个开源的智能视觉平台,它集成了硬件和软件组件,旨在提供高性能的实时目标检测、识别和跟踪等视觉AI功能。OAK由Luxonis公司开发,目的是为了降低视觉AI开发的门槛,使其更加普及和易于实现。 OAK平台的核心是OAK相机,它是一款集成了RGB相机、深度相

    2024年02月11日
    浏览(41)
  • 一步一步学OAK之十一:实现在RGB相机上进行对象跟踪

    这里我们用到了mobilenet-ssd_openvino_2021.4_6shave.blob模型文件,需要下载并存储到本地文件夹,不会下载的小伙伴可以看我前面的博客,里面有介绍,这里直接使用,不介绍下载过程了。 创建新建13-object-tracker-on-rgb文件夹 用vscode打开该文件夹 新建一个main.py 文件 安装依赖前需要

    2024年02月13日
    浏览(53)
  • 一步一步学OAK之十三:实现RGB相机上的空间对象跟踪

    前面我们实现了在RGB相机上进行物体的对象跟踪,能够实时跟踪我们想要追踪的物探,但是,如果我们要想知道这个物体的三维空间坐标,该如何实现呢?要想实现这个功能,我们需要用到DepthAI API提供的MobileNetSpatialDetectionNetwork节点和ObjectTracker节点,现在我们来实现它。 这

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包