python小记(九):用于比较6D姿势的计算ADD-S的函数

参数:

  • T_gt: 真实姿态的变换矩阵 (4x4 numpy array)
  • T_pred: 预测姿态的变换矩阵 (4x4 numpy array)
  • M: 物体模型上的点集,每个点是一个三维坐标 (Nx3 numpy array)

返回:

  • ADD-S度量值
    “”"

    将模型点转换为齐次坐标,以便应用变换矩阵

    M_hom = np.hstack((M, np.ones((M.shape[0], 1))))

    应用变换矩阵

    M_gt_transformed = (T_gt @ M_hom.T).T[:, :3]
    M_pred_transformed = (T_pred @ M_hom.T).T[:, :3]

    计算每个真实点与预测点集中所有点的距离的最小值,然后取平均

    distances = np.min(np.linalg.norm(M_gt_transformed[:, None, :] - M_pred_transformed[None, :, :], axis=2), axis=1)
    add_s = np.mean(distances)

    return add_s

示例数据

T_gt = np.array([[1, 0, 0, 0], # 真实姿态的变换矩阵
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])

T_pred = np.array([[0.999, 0, 0.035, 0.1], # 预测姿态的变换矩阵(有轻微的平移和旋转)
[0, 1, 0, 0.2],
[-0.035, 0, 0.999, 0.3],
[0, 0, 0, 1]])

M = np.array([[0, 0, 0], # 三维点集,代表物体模型上的一些点
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])

计算ADD-S

add_s = compute_add_s(T_gt, T_pred, M)
add_s


  

## 二:解释:


逐行分析`compute_add_s`函数的代码:


### 1. def compute\_add\_s(T\_gt, T\_pred, M):



def compute_add_s(T_gt, T_pred, M):


这行定义了一个名为`compute_add_s`的函数,它接受三个参数:


* `T_gt`࿱
  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值