docstr: given 3d points, we obtain 2d projection of these given the camera matrices.
  filter needs to be called beforehand.
  the prediction is stored to self.preds
  args:
      points: [B, 3, N] 3d points in world space
      calibs: [B, 3, 4] calibration matrices for each image
      transforms: [B, 2, 3] image space coordinate transforms
      labels: [B, C, N] ground truth labels (for supervision only)
  return:
      [B, C, N] prediction
docstr_tok: ["given","3d","points",",","we","obtain","2d","projection","of","these","given","the","camera","matrices",".","filter","needs","to","be","called","beforehand",".","the","prediction","is","stored","to","self.preds","args",":","points",":","[","B",",","3",",","N","]","3d","points","in","world","space","calibs",":","[","B",",","3",",","4","]","calibration","matrices","for","each","image","transforms",":","[","B",",","2",",","3","]","image","space","coordinate","transforms","labels",":","[","B",",","C",",","N","]","ground","truth","labels","(","for","supervision","only",")","return",":","[","B",",","C",",","N","]","prediction"]
code: def query(self, points, calibs, trasnforms=None, labels=None):
      """
      given 3d points, we obtain 2d projection of these given the camera matrices.
      filter needs to be called beforehand.
      the prediction is stored to self.preds
      args:
          points: [B, 3, N] 3d points in world space
          calibs: [B, 3, 4] calibration matrices for each image
          transforms: [B, 2, 3] image space coordinate transforms
          labels: [B, C, N] ground truth labels (for supervision only)
      return:
          [B, C, N] prediction
      """
      None
  
file_path: pifuhd/lib/model/BasePIFuNet.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from ..geometry import index, orthogonal, perspective
label_desc: Use image node_id 4 for calling the BasePIFuNet obj's underlying member method code with example usage: obj.query(points, calibs, trasnforms, labels) without return types