当前位置:   article > 正文

6DoF位姿估计的度量标准

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 重投影误差
    将估计后的三维点,重投影到二维图像,计算原图像与重投影图像的差别。
    【参考DeepIM】

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/658078
推荐阅读
相关标签
  

闽ICP备14008679号