【问题标题】:How do people prove the correctness of Computer Vision methods?人们如何证明计算机视觉方法的正确性?
【发布时间】:2012-04-20 11:22:18
【问题描述】:

我想提出一些关于计算机视觉研究的抽象问题。通过搜索网络和阅读论文,我还不能完全回答这些问题。

  1. 如何知道计算机视觉算法是否正确?
  2. 我们如何定义计算机视觉中的“正确”?
  3. 形式证明对理解计算机视觉算法的正确性有影响吗?

一些背景知识:我即将开始攻读计算机科学博士学位。我喜欢设计快速并行算法并证明这些算法的正确性。我也在一些课堂项目中使用过 OpenCV,尽管我没有接受过太多计算机视觉方面的正式培训。

一位潜在的论文顾问找到了我,他致力于为计算机视觉设计更快、更具可扩展性的算法(例如快速图像分割)。我正在尝试了解解决计算机视觉问题的常见做法。

【问题讨论】:

  • 这里很难选择正确的答案……所有的答案都非常有帮助! :)

标签: algorithm opencv computer-vision proof correctness


【解决方案1】:

你只是没有证明它们。

您可以在一组测试用例上测试您的算法,然后将输出与以前已知的算法或正确答案(例如,当您识别文本,你可以生成一组你知道文本内容的图像)。

【讨论】:

  • 定量方法也出现在其他 CS 论文中,例如在分布式系统中,尽管有比计算机视觉更好的形式化方法。
  • 有趣。假设视觉算法 X 适用于称为 Y 的标准基准图像集。我们如何知道算法 X 是否也适用于任意图像集 Z?是否有用于比较基准图像集的指标?
  • 大多数计算机视觉算法都不是 100% 可靠的。它们在大多数情况下都有效,而不是在所有情况下 - 总会有一张图像不够清晰和详细,无法获得预期的输出。边界在哪里?你不能说。
【解决方案2】:

在实践中,计算机视觉更像是一门实证科学:您收集数据,思考可以解释数据某些方面的简单假设,然后检验这些假设。对于人脸识别等高级 CV 任务,您通常没有明确的“正确”定义,因此无法证明正确性。

不过,低级算法是另一回事:您通常在这里对“正确”有一个清晰的数学定义。例如,如果您发明了一种算法,可以比已知算法更有效地计算中值滤波器或形态学运算,或者可以更好地并行化,那么您当然必须证明它的正确性,就像任何其他算法一样。

对可以形式化的计算机视觉算法有某些要求也是很常见的:例如,您可能希望您的算法对旋转和平移保持不变 - 这些是可以形式化证明的属性。有时也可以创建信号和噪声的数学模型,并设计一个具有最佳信噪比的滤波器(IIRC、Wiener 滤波器或 Canny 边缘检测器就是这样设计的)。

许多图像处理/计算机视觉算法都有某种“重复直到收敛”循环(例如蛇或 Navier-Stokes 修复和其他基于 PDE 的方法)。您至少会尝试证明该算法对于任何输入都收敛。

【讨论】:

  • 这个解释真的很有帮助!您提到“如果您发明的算法可以比已知算法更有效地计算中值滤波器或形态学运算,或者可以更好地并行化,那么您当然必须证明它的正确性,就像任何其他算法一样。”除了中值滤波器和形态学运算之外,您能否推荐任何其他我可能想了解的计算机视觉“基本计算内核”?
  • @solvingPuzzles:线性过滤器、几何变换、连通分量分析很常见。最好的起点可能是阅读 Gonzales 和 Woods 的“数字图像处理”——它涵盖了最基本的算法。
  • 谢谢!我会看看冈萨雷斯和伍兹的书。
【解决方案3】:

这是我的个人意见,所以请接受它的价值。

您现在无法证明大多数计算机视觉方法的正确性。我认为当前的大多数方法都是某种“配方”,其中成分被丢弃,直到“结果”足够好。你能证明布朗尼蛋糕是正确的吗?

这在某种程度上与机器学习的演变方式有点相似。起初,人们做神经网络,但它只是一个大“汤”,碰巧或多或少地起作用。它有时有效,但在其他情况下无效,而且没有人真正知道为什么。然后统计学习(通过 Vapnik 等)开始了,并带有一些真正的数学备份。您可以证明您拥有最小化特定损失函数的独特超平面,PCA 为您提供与给定矩阵最接近的固定秩矩阵(考虑到我相信的 Frobenius 范数)等等......

现在,计算机视觉中仍有一些“正确”的东西,但它们非常有限。我想到的是wavelet :它们是正交函数基中最稀疏的表示。 (即:以最小误差表示图像近似值的最压缩方式)

【讨论】:

    【解决方案4】:

    计算机视觉算法不像您可以证明的定理,它们通常会尝试将图像数据解释为我们人类更容易理解的术语。像人脸识别、运动检测、视频监控等。确切的正确性是不可计算的,就像在图像压缩算法的情况下,你可以很容易地通过图像的大小找到结果。 用于显示计算机视觉方法(尤其是分类问题)结果的最常用方法是精度与召回率、准确率与误报率的图表。这些是在各种站点上可用的标准数据库上测量的。通常,您为正确检测设置的参数越严格,产生的误报就越多。典型的做法是根据您对“应用程序可以容忍多少误报”的要求从图中选择点。

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 2016-02-20
      • 1970-01-01
      • 2013-06-23
      • 2013-03-11
      相关资源
      最近更新 更多