区块链技术博客
www.b2bchain.cn

SA-SSD 代码阅读

这篇文章主要介绍了SA-SSD 代码阅读的讲解,通过具体代码实例进行17435 讲解,并且分析了SA-SSD 代码阅读的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=17435

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

    • 一. Auxiliary Network
      • 1. 生成 point_cls 和 point_reg 的 label
      • 2. loss 构建

一. Auxiliary Network

1. 生成 point_cls 和 point_reg 的 label

在 Auxiliary Network 中, 需要分割出 前景点 和 背景点,首先需要生成前景点和背景点的 label

def pts_in_boxes3d(pts, boxes3d):     N = len(pts)      M = len(boxes3d)     pts_in_flag = torch.IntTensor(M, N).fill_(0)     reg_target = torch.FloatTensor(N, 3).fill_(0)     points_op_cpu.pts_in_boxes3d(pts.contiguous(), boxes3d.contiguous(), pts_in_flag, reg_target)     return pts_in_flag, reg_target 
pts_in_flag : [M, N] , pts 在 bbox 中,则 mask = 1  疑惑:reg_target :  [N, 3], 对每个点回归 ? 

需要解决上面一个疑惑,就需要弄懂这个函数 points_op_cpu.pts_in_boxes3d

int pts_in_boxes3d_cpu(at::Tensor pts, at::Tensor boxes3d, at::Tensor pts_flag, at::Tensor reg_target){     // param pts: (N, 3)     // param boxes3d: (M, 7)  [x, y, z, h, w, l, ry]     // param pts_flag: (M, N)     // param reg_target: (N, 3), center offsets      CHECK_CONTIGUOUS(pts_flag);     CHECK_CONTIGUOUS(pts);     CHECK_CONTIGUOUS(boxes3d);     CHECK_CONTIGUOUS(reg_target);      long boxes_num = boxes3d.size(0);     long pts_num = pts.size(0);      int * pts_flag_flat = pts_flag.data<int>();     float * pts_flat = pts.data<float>();     float * boxes3d_flat = boxes3d.data<float>();     float * reg_target_flat = reg_target.data<float>();  //    memset(assign_idx_flat, -1, boxes_num * pts_num * sizeof(int)); //    memset(reg_target_flat, 0, pts_num * sizeof(float));      int i, j, cur_in_flag;     for (i = 0; i < boxes_num; i++){         for (j = 0; j < pts_num; j++){             cur_in_flag = pt_in_box3d_cpu(pts_flat[j * 3], pts_flat[j * 3 + 1], pts_flat[j * 3 + 2], boxes3d_flat[i * 7],                                           boxes3d_flat[i * 7 + 1], boxes3d_flat[i * 7 + 2], boxes3d_flat[i * 7 + 3],                                           boxes3d_flat[i * 7 + 4], boxes3d_flat[i * 7 + 5], boxes3d_flat[i * 7 + 6]);             pts_flag_flat[i * pts_num + j] = cur_in_flag;             if(cur_in_flag==1){                 reg_target_flat[j*3] = pts_flat[j*3] - boxes3d_flat[i*7];                 reg_target_flat[j*3+1] = pts_flat[j*3+1] - boxes3d_flat[i*7+1];                 reg_target_flat[j*3+2] = pts_flat[j*3+2] - (boxes3d_flat[i*7+2] + boxes3d_flat[i*7+3] / 2.0);             }         }     }     return 1; } 

2. loss 构建

SA-SSD 代码阅读

本文转自互联网,侵权联系删除SA-SSD 代码阅读

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » SA-SSD 代码阅读
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们