gpt4 book ai didi

math - 如何量化表面法线

转载 作者:行者123 更新时间:2023-12-02 01:09:58 26 4
gpt4 key购买 nike

我正在尝试将表面法线量化为 8 个 bin。

例如,当计算像 HOG 这样的特征时将 2D 梯度 [x,y] 量化为 8 个 bin,我们只需取与 y 平面的角度,即 arctan(y/x),这将使我们的角度介于 0 之间-360.

我的问题是,给定一个 3D 方向 [x,y,z],在这种情况下是表面法线,我们如何以类似的方式对其进行直方图绘制?我们是否只投影到一个平面上并使用该角度,例如 [x,y,z][0,1,0] 的点积?

谢谢

编辑

我还读了一个paper最近,他们通过测量围绕直圆锥形状排列的法线和预先计算的向量之间的角度来量化表面法线。我在问题(第 3.3.2 节最后一段)中添加了指向本文的链接,这是一种有效的方法吗?如果是这样,我们如何计算这些向量?

最佳答案

量化一个连续的拓扑空间对应于对其进行分区并为每个分区分配标签。这种情况(量化法线)的直接标准方法如下。

  1. 选择你最喜欢的均匀多面体:
  2. 开发一个映射函数,从单位球体上的法线到法线相交的所选多面体的面。
    • 我建议在多面体面上做一个 argmax,取法线和每个多面体面法线的点积。给出最高点积的那个是你的法线应该被合并到的脸。
  3. 使用每个多面体面的法线作为该面的标签。

比起其他人建议的映射到球坐标然后将其装箱的方法,更喜欢这种方法。这种方法在球体两极附近过于敏感。

编辑

在您添加到问题中的论文中,使用了相同的想法。然而,法线仅限于一个半球 - 图像中唯一直接可见的表面的表面法线与从表面到视点的矢量的夹角不超过 90 度。

论文想将这些表面法线量化为 8 个值,用 8 位整数表示,其中只有一位设置为 1,其余设置为 0。这 8 个预计算法线的计算方式为:

ntx = cos(a)*cos(t)

nty = cos(a)*sin(t)

ntz = sin(a)

其中 a = pi/4 和 t = 0, pi/4, 2*pi/4, 3*pi/4, ..., 7*pi/4。

注意事项

[cos(a)*cos(t)]2 + [cos(a)*sin(t)]2 + [sin(a)]< sup>2 = cos2(a)[cos2(t) + sin2(t)] + sin< sup>2(a) = cos2(a) + sin2(a) = 1

关于math - 如何量化表面法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com