class_docstr: Basic data structure to hold a box prediction or ground truth
  if an score is provided then it will be treated as a prediction. Else, it is a ground truth box
class_docstr_tok: ["Basic","data","structure","to","hold","a","box","prediction","or","ground","truth","if","an","score","is","provided","then","it","will","be","treated","as","a","prediction",".","Else",",","it","is","a","ground","truth","box"]
code: def __init__(self, classname, corners3d, score=None):
      assert corners3d.shape == (8, 3)
      assert score is None or score <= 1 and score >= 0
  
      if torch.is_tensor(classname):
          classname = classname.cpu().item()
      self.classname = classname
  
      if torch.is_tensor(corners3d):
          corners3d = corners3d.cpu().numpy()
      self.corners3d = corners3d
  
      if torch.is_tensor(score):
          score = score.cpu().item()
      self.score = score
  
imports: import numpy
  import torch
label_desc: Use image node_id 1 to create a new BoxData object  with example: obj = BoxData(classname, corners3d, score)