Loading...
墨滴

张春成

2021/12/19  阅读:70  主题:默认主题

超级加倍-反直觉的计算机视觉

超级加倍-反直觉的计算机视觉

计算机视觉算法实现过程中, 会遇到一系列相当“反直觉”的问题。 当然,这里的“直觉”指的是过于“想当然”的直觉, 而不是基于纯几何分析的理性推断。

事实上,这些问题的解决方式,通常是以几何分析为突破口的。 本文将描述如何正确处理计算机视觉三维呈现过程中, 如何生成一个正确的“表面”的问题。


表面包含几个面?

在几何中,连续表面是这样一种点集的抽象,

在点集的每一个局部,它们的法线方向均存在且相同。

这样,三维空间中的某个“平面”就是典型有连续表面。 因此,从直觉上讲,它需要两个“要素”

  • 它需要包含某个定点,
  • 它需要“定义”一个法线方向,

通常用这样一个方程来描述它

其中,

而如果直接将它照搬到机器视觉模型中, 就容易陷入这样一个误区

【误】需要用3个点和1个法线方向,来定义一个面元。

之所以说它是一个误区, 是由于在存在透明的情况下, 我们至少需要两个“对偶”的面来表达一个面元。

Dual Surface
Dual Surface

其中,左图表示用单法线、单面元的方式定义一个立方体。 可见,由于只关注了立方体“外立面”的颜色定义, 在渲染过程中,计算机势必会缺少“立方体内部”立面的颜色定义。 而采用对偶面元定义方式(中间图), 就解决了这一问题。 之所以将这种方法命名为“对偶”,是因为两个面元的法线在同一条直线上, 但方向相反。 (如右图所示)

在这种方法下, 渲染效果如下图所示

Dual Render
Dual Render

这种方法适用于“三维点阵”的渲染, (见之前的工程[1] 但这种方法会导致需要渲染的面元数量翻倍, 算是一种难以避免的缺点。

参考资料

[1]

之前的工程: https://mp.weixin.qq.com/s?__biz=MzkxNTI1MDc5NA==&mid=2247484883&idx=1&sn=dc2fcbd763c28994a69f6698b9188f59&chksm=c1634ed6f614c7c06d892e6761ca503cf1592b2f02457c9301ebcd319140bed4d49de3dccf66&token=168781269&lang=zh_CN#rd

张春成

2021/12/19  阅读:70  主题:默认主题

作者介绍

张春成