6DoF位姿估计的度量标准

  1. ADD
    参考 Model Based Training, Detection and Pose Estimation of Texture-Less 3D Objects in Heavily Cluttered Scenes - hinterstoisser2012accv
    在这里插入图片描述
  • 针对非对称物体:Average Distance
    已知Ground turth [ R ∣ T ] \rm [R|T] [RT] 以及预测结 [ R p ∣ T p ] \rm [R_p| T_p] [RpTp],用这两个数据对模型点云进行变换,然后求出每个对应点距离的平均值。
    A D D = 1 m ∑ x ∈ m o d e l ∣ ∣ ( R x + T ) − ( R p x + T p ) ∣ ∣ \rm ADD=\frac{1}{m}\sum_{x\in{model}}||(Rx+T) - (R_px+T_p) || ADD=m1xmodel(Rx+T)(Rpx+Tp)
    如果计算出来的ADD小于某一个设定的阈值(PoseCNN等工作中,阈值为10%*model_diameter),则预测位姿被认为是正确的。

  • ADD-S 针对“对称物体”

    对于对称物体,预测出来的和标注的值在旋转轴上可能会相差较大,然而并不一定代表实际的效果不好。 A D D − S \rm ADD-S ADDS使用最近点计算距离,最近距离可由快速搜索算法knn等计算。
    A D D − S = 1 m ∑ x 1 ∈ m o d e l min ⁡ x 2 ∈ m o d e l ∣ ∣ ( R x 1 + T ) − ( R p x 2 + T p ) ∣ ∣ \rm ADD-S=\frac{1}{m} \sum_{x_1\in{model}} \min \limits_{x_2\in{model}} ||(Rx_1+T) - (R_px_2+T_p) || ADDS=m1x1modelx2modelmin(Rx1+T)(Rpx2+Tp)

  • 计算代码(用到了knn,参考DenseFusion的评测代码)

# 对称物体
if idx[0].item() in sym_list:  
            target = target[0].transpose(1, 0).contiguous().view(3, -1)
            pred = pred.permute(2, 0, 1).contiguous().view(3, -1)
            inds = knn(target.unsqueeze(0), pred.unsqueeze(0))  # 找到最近邻
            target = torch.index_select(target, 1, inds.view(-1).detach() - 1)
            target = target.view(3, bs * num_p, num_point_mesh).permute(1, 2, 0).contiguous()
            pred = pred.view(3, bs * num_p, num_point_mesh).permute(1, 2, 0).contiguous()
# 非对称物体
dis = torch.mean(torch.norm((pred - target), dim=2), dim=1)  # 对应点求L2范数
  1. 重投影误差
    将估计后的三维点,重投影到二维图像,计算原图像与重投影图像的差别。
    【参考DeepIM】

  2. 5度旋转,5cm平移的容忍,小于这个范围就是估计正确,从而转换成01分类问题的度量
    【参考DeepIM】

  3. 直接计算平移差与欧式角度误差
    此方法出现于最近看的部分中文论文。相比之下更加直观。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值