docstr: Parameters
  ----------
  pred_corners_3d : [B, num_proposal, 8, 3]
      box corners
  objectness: [B, num_proposal]
      objectness score
  pred_sem_cls: [B, num_proposal]
      Predicted semantic class
docstr_tok: ["Parameters","--","--","--","--","--","pred_corners_3d",":","[","B",",","num_proposal",",","8",",","3","]","box","corners","objectness",":","[","B",",","num_proposal","]","objectness","score","pred_sem_cls",":","[","B",",","num_proposal","]","Predicted","semantic","class"]
code: def _nms_mask(self, pred_corners_3d, objectness, pred_sem_cls):
      """
      Parameters
      ----------
      pred_corners_3d : [B, num_proposal, 8, 3]
          box corners
      objectness: [B, num_proposal]
          objectness score
      pred_sem_cls: [B, num_proposal]
          Predicted semantic class
      """
      boxes_3d = torch.zeros(
          (self.batch_size, self.num_proposal, 6)
      )  # [xmin, ymin, zmin, xmax, ymax, zmax]
      boxes_3d[:, :, 0] = torch.min(pred_corners_3d[:, :, :, 0], dim=2)[
          0
      ]
      boxes_3d[:, :, 1] = torch.min(pred_corners_3d[:, :, :, 1], dim=2)[
          0
      ]
      boxes_3d[:, :, 2] = torch.min(pred_corners_3d[:, :, :, 2], dim=2)[
          0
      ]
      boxes_3d[:, :, 3] = torch.max(pred_corners_3d[:, :, :, 0], dim=2)[
          0
      ]
      boxes_3d[:, :, 4] = torch.max(pred_corners_3d[:, :, :, 1], dim=2)[
          0
      ]
      boxes_3d[:, :, 5] = torch.max(pred_corners_3d[:, :, :, 2], dim=2)[
          0
      ]
  
      boxes_3d = boxes_3d.cpu().numpy()
      mask = np.zeros(
          (self.batch_size, self.num_proposal), dtype=np.bool
      )
      for b in range(self.batch_size):
          pick = nms_samecls(
              boxes_3d[b],
              pred_sem_cls[b],
              objectness[b],
              overlap_threshold=0.25,
          )
          mask[b, pick] = True
      return mask
  
file_path: torch-points3d/torch_points3d/modules/VoteNet/votenet_results.py
imports: import torch
  from torch_geometric.data import Data
  import numpy
  from typing import List
  from torch_points3d.core.losses.huber_loss import nn_distance
  from torch_points3d.utils.box_utils import box_corners_from_param, nms_samecls
  from torch_points3d.datasets.object_detection.box_data import BoxData
label_desc: Use image node_id 6 for calling the VoteNetResults obj's underlying member method code with example usage: obj._nms_mask(pred_corners_3d, objectness, pred_sem_cls) and returns: mask