【问题标题】:Generic web camera calibration通用网络摄像头校准
【发布时间】:2012-02-10 03:51:34
【问题描述】:

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

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

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

【问题讨论】:

标签: opencv computer-vision camera-calibration


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:
    1. 有大名鼎鼎的Camera Calibration Toolbox,一个很好的提取内参和外参的Matlab实现。

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

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

    【讨论】:

      【解决方案3】:

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

      我自己没试过。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        • 2018-03-18
        • 1970-01-01
        • 1970-01-01
        • 2020-07-06
        • 2010-12-31
        相关资源
        最近更新 更多