0

我正在建立一个网站,该网站使用计算机视觉技术做一些很酷的事情,用户使用他们的网络摄像头实时录制和上传视频。为此,我需要相机内在和失真参数。考虑到用户上传的视频,我试图找出计算这些的最佳方法。我们不能对用户可能上传的视频做出任何假设 - 但一个合理的假设是视频中可能存在人类。我仍处于初始阶段,但我很想知道其他人是如何解决这个问题的。

具体来说,以下是我希望小组中有经验的人可能会评论的问题:

  • 有哪些算法、库和技术可用于提取市场上任何通用网络摄像头的固有参数和失真参数?[我说“提取”而不是“校准”以包括内在参数只是一种方法调用而无需校准的情况]。
  • 一般来说,您在市场上可用的网络摄像头的内在参数和失真参数中观察到多少差异?您是否使用单一的内在参数和失真参数来近似它们,或者您采用什么方法?
  • 在这些场景中可以采用哪些相机自校准方法(如果有)?是否有任何可用的开源或商业库可能会有所帮助?
  • 如果我们的目标是使用用户记录和上传的视频来校准网络摄像头,那么参数中的哪些假设 [如 fx==fy 或无失真参数] 对您来说是合理且合理的?
  • 所有相机的内在参数和失真参数的合理近似是否有意义?验证特定网络摄像头的特定内在参数和失真参数有多好的合理方法是什么?
  • 还有其他需要考虑的问题吗?
4

3 回答 3

2

有时我是带来坏消息的人:)我现在也是。

对于您的几乎所有观点,明确的答案是“否”、“没有”、“不是”等等。仅对于最后一点,对于其他问题,答案不是否,而是一长串:)。

实际上,没有棋盘和一些特定约束的相机校准几乎是不可能的。

在 OpenCV 的拼接模块中可以找到最接近无假设校准的实现。但是,它并不完美,并且不适用于随机视频。试试看。

于 2012-01-14T18:38:40.007 回答
1
  1. 有著名的Camera Calibration Toolbox,它是提取内在和外在参数的一个很好的 Matlab 实现。

  2. 不仅网络摄像头之间存在差异,而且:

    • 不同的模块
    • 不同的缩放级别(影响光学)
  3. 如果您限制自己对视频不做任何假设,我认为这是一个非常困难的问题。如果您不使用已知的东西(例如相机校准工具箱中的棋盘格),校准和评估都很难。

于 2012-01-14T17:40:26.180 回答
1

许多算法,包括目前在 opencv 中使用的算法,都要求可以检测已知点(例如棋盘中的角)。您必须要求您的用户拍摄这种已知模式的照片,这破坏了随机视频的概念。我对此没有解决方案,但您可能需要考虑要求用户录制结构场景的视频(没有特定图案或对象)并使用以下算法中描述的算法:“相机校准与低阶纹理的镜头失真” http:/ /ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5995548&tag=1

不过自己没试过。

于 2012-03-09T14:31:39.547 回答