如何根据基本事实计算角度值的 L1 和 L2 范数(其中角度值的周期为 -180 到 180)?

问题描述 投票:0回答:1

如何根据基本事实计算角度值的 L1 和 L2 范数(其中角度值具有 -180 度到 180 度的周期)?

如果我有一组数据

ip_data[]
和一组真实值
gt[]
那么可以计算 L1 和 L2 范数:

L1 norm = sum(abs(gt[i] - ip_data[i]))

L2 norm = sqrt(sum( (gt[i] - ip_data[i])^2 ))

但是,一般来说,在角度值的情况下,它们有-180度到180度的周期。那么,让我们说

gt[] = [175, 179, 177]

ip_data_a[] = [165, 169, 167]

ip_data_b[] = [-175, -171, -173]

对于

ip_data_a[]
,

L1 = |175 - 165| + |179 - 169| + |177 - 167| = 30
L2 = sqrt(10^2 + 10^2 + 10^2) = sqrt(300)    = 17.32

对于

ip_data_b[]
,

L1 = |175 - (-175)| + |179 - (-171)| + |177 - (-173)| = 1050
L2 = sqrt(350^2 + 350^2 + 350^2) = sqrt(367500)       = 606.22

可以看出,对于

L1
v/s
L2
ip_data_a[]
(或
ip_data_b[]
)存在巨大差异,即使两个数据数组中的所有值都与地面实况正好相差 10 度除了相反的方向。

将这些角度从 [-180, 180] 归一化到 [0, 360] 没有帮助。因为当 GT 角度接近 360 度并且给定的角度值接近 0 度时会发生同样的事情,反之亦然。

那么,在这种情况/数据中,计算 L1 和 L2 范数的正确方法是什么才能正确评估数据?

math computer-vision rotation angle visual-odometry
1个回答
0
投票

看似迂回,但通过三角函数可能更容易

即求解单位向量之间的夹角。例如角度可以从内积的反余弦得到。

如您所知,

角度的单位向量是

[cos(angle), sin(angle)]^T

cos( a - b )
是两个单位向量之间的内积:
cos(a)cos(b) + sin(a)sin(b)
.
所以,两个角之间的“差”
a
b
是这个的反余弦。

© www.soinside.com 2019 - 2024. All rights reserved.