2012-05-08 46 views
3

我从两个不同的相机接收图像,具有不同的帧速率和分辨率。其中一台摄像机(智能相机)用作控制器。它从其他相机和自己的图像传感器接收图像,然后将图像对保存在机载存储器中。在这里,我有一个问题。我必须对每一对图像进行立体匹配。因此,图像应该完美同步(相隔几毫秒)。我将两台摄像机都指向屏幕上的秒表,并捕获图像,以便查看它们在多远以及它们之间的距离。结果令人失望的是,它们都没有同步,也没有一对之间的时间偏移是恒定的。我正在研究Linux和C编程。我尝试了两个posix线程来捕获单个相机的图像。在开始图像捕捉之前,第一个线程cam1()向另一个线程cam2()发出信号。因此,这两个图像捕捉应该同时开始。但是这也行不通。我真的很感谢在这方面的任何解决方案。同步来自两个不同相机的图像

+2

我不是相机专家,所以接下来只是我的无知的意见。由于涉及内核驱动程序,这不会很简单。你不知道他们施加了哪种延迟。另外,硬件本身可能会引入延迟。我认为您必须使用相同的帧速率从两个摄像头流式传输视频,并找到流之间的最佳时间偏移量(并且可能会随帧速率的变化而重新评估偏移量)。 –

回答

1

时钟同步在每个传感器网络中都是一个相当具有挑战性的问题。我不是专家,但有一些解决方案可以尝试。首先,n.m. is right!在需要控制FPS(您需要具有相同FPS)的高FPS情况下,软件同步非常困难,两台相机的图像采集之间的曝光,时间戳等。摄像机同步通常在外部完成,称为外部触发和同步I/O。

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

兴趣synching相机时间戳到另一个时钟 用户应该注意,相机时钟将从其他时钟漂移,因此 将需要定期重置 时间戳重新同步。

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

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

+0

感谢您的详细解答。我的问题是,我有两个完全不同的相机,具有不同的帧速率,曝光时间,捕捉机制等。不知何故,我设法使用两个不同的线程同步图像进行捕捉。其中一台摄像机GigE现在工作在触发模式下。另一个摄像头,智能摄像头,向GigE摄像头发送触发信号,然后从其接收来自其自身传感器的图像。但是,为了匹配相框,我不得不从智能相机中跳过一些相框。由于帧速率漂移,跳过有时不准确。 – user846400

+0

现在,90%的图像完美同步。其余的有一个不变的抵消。问题是我无法确定漂移发生的时间和时间。所以,有时候,当我跳过两帧时,我得到一个偏移量。在所有相机中发现这种帧速率漂移吗? – user846400

相关问题