同步来自两个不同相机的图像

时间:2012-05-08 15:42:58

标签: c synchronization camera

我从两台不同的相机接收图像,具有不同的帧速率和分辨率。其中一个摄像头(智能摄像头)用作控制器。它从其他相机和自己的图像传感器接收图像,然后将图像对保存在板载内存中。在这里,我有一个问题。我必须与每对图像进行立体匹配。因此,图像应该完全同步(仅相隔几毫秒)。我将两个摄像头都指向一个屏幕上的秒表并捕捉图像,只是为了看到他们彼此之间的距离。事实证明,它们不是同步的,也不是单个对之间的时间偏移是不变的,这令人失望。我正在研究Linux和C语言编程。我尝试了两个posix线程来捕获各个摄像机的图像。第一个线程cam1()在开始图像捕获之前发信号通知另一个线程cam2()。因此,两个图像捕获应该同时开始。但这也不起作用。我真的很感激这方面的任何解决方案。

1 个答案:

答案 0 :(得分:1)

时钟同步在每个传感器网络中都是一个非常具有挑战性的问题我不是专家,但你可以试试一些解决方案。

首先,n.m. is right!在高FPS情况下,软件同步非常困难,您需要控制两台摄像机的图像采集之间的FPS(您需要具有相同的FPS),曝光,时间戳等。摄像机同步通常在外部完成,称为外部触发和同步I / O.

在外部同步的摄像机中,两个时钟并不总是相同。相机时钟晶体始终具有由设计指定的漂移。您可以计算两个图像以可区分的方式漂移所需的时间并重置时钟。我已经使用AVT相机一段时间了。 The company proposes

  

有兴趣将相机Timestamp同步到另一个时钟的用户   应该注意相机时钟会从另一个时钟漂移,并且   因此需要通过重置来定期重新同步   时间戳。

如果您的FPS较低,并且您可以随时知道丢帧数,则可以与每帧的名为帧数的(增加)注释同步。

如果您有立体声校准的图像,默认相机的图像中的某些功能(任意定义一个或仅触发另一个的功能)可能位于/靠近穿过另一个相机的epipolar lines。因此,极线可能会在程序逻辑中引入一定的不变量来配对特征(检测到的斑点)。