关于jsfeat中若干要吐槽的问题

前言

  jsfeat作为一个js库,支持诸多计算机视觉中要用到的功能,尤其是在SLAM方面。因为最近在搞WebAR的相关项目,所以频繁的用到。

  虽然 ,jsfeat的作者无疑是位大佬,但是其提供的Matrix Math提供的接口存在一个很奇葩的问题。

正文

  在Matrix Math中的矩阵乘法函数jsfeat.matmath.multiply中,在nxn与nxn的矩阵相乘时一切正常,但是如果你要想实现nxm乘mxh矩阵时,你需要让nxm乘一个hxm的矩阵。就像下面这样:

U=new jsfeat.matrix_t(3,3,jsfeat.F32C1_t);
tp=new jsfeat.matrix_t(1,3,jsfeat.F32C1_t);

Utp=new jsfeat.matrix_t(3,3,jsfeat.F32C1_t);
jsfeat.matmath.multiply(Utp, U ,tp);

如果不这样做,乘出来的结果会是NaN。

  另外,jsfet还有个问题,就是其svd_decompose函数。其文档中是这样说的:

This routine decomposes an rows x cols matrix A, into a product of the three matrices U, W, and V’, i.e. A = UWV’, where U is an rows x rows matrix whose columns are orthogonal, W is a 1 x cols matrix, and V is an cols x cols orthogonal matrix.

// U       - the left orthogonal matrix
// W       - vector of singular values
// V       - the right orthogonal matrix
// options - jsfeat.SVD_U_T and/or jsfeat.SVD_V_T to return transposed U and/or V
jsfeat.linalg.svd_decompose(A:matrix_t, W:matrix_t, U:matrix_t, V:matrix_t, options);

参见https://inspirit.github.io/jsfeat/#linalg

然而,这个函数最后求出来的V(也就是第四个参数),其实是V’。我直接抓狂。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值