class_docstr: Computes one-to-one matching between predictions and ground truth.
  
  This class computes an assignment between the targets and the predictions
  based on the costs. The costs are weighted sum of three components:
  classification cost, regression L1 cost and regression oks cost. The
  targets don't include the no_object, so generally there are more
  predictions than targets. After the one-to-one matching, the un-matched
  are treated as backgrounds. Thus each query prediction will be assigned
  with `0` or a positive integer indicating the ground truth index:
  
  - 0: negative sample, no assigned gt.
  - positive integer: positive sample, index (1-based) of assigned gt.
  
  Args:
      cls_weight (int | float, optional): The scale factor for classification
          cost. Default 1.0.
      kpt_weight (int | float, optional): The scale factor for regression
          L1 cost. Default 1.0.
      oks_weight (int | float, optional): The scale factor for regression
          oks cost. Default 1.0.
class_docstr_tok: ["Computes","one-to-one","matching","between","predictions","and","ground","truth",".","This","class","computes","an","assignment","between","the","targets","and","the","predictions","based","on","the","costs",".","The","costs","are","weighted","sum","of","three","components",":","classification","cost",",","regression","L1","cost","and","regression","oks","cost",".","The","targets","do","n't","include","the","no_object",",","so","generally","there","are","more","predictions","than","targets",".","After","the","one-to-one","matching",",","the","un-matched","are","treated","as","backgrounds",".","Thus","each","query","prediction","will","be","assigned","with","`","0","`","or","a","positive","integer","indicating","the","ground","truth","index",":","-","0",":","negative","sample",",","no","assigned","gt",".","-","positive","integer",":","positive","sample",",","index","(","1-based",")","of","assigned","gt",".","Args",":","cls_weight","(","int","|","float",",","optional",")",":","The","scale","factor","for","classification","cost",".","Default","1.0.","kpt_weight","(","int","|","float",",","optional",")",":","The","scale","factor","for","regression","L1","cost",".","Default","1.0.","oks_weight","(","int","|","float",",","optional",")",":","The","scale","factor","for","regression","oks","cost",".","Default","1.0","."]
code: def __init__(
      self,
      cls_cost="ClassificationCost",
      kpt_cost="KptL1Cost",
      oks_cost="OksCost",
  ):
      self.cls_cost = cls_cost
      self.kpt_cost = kpt_cost
      self.oks_cost = oks_cost
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from ppdet.core.workspace import register
label_desc: Use image node_id 1 to create a new PoseHungarianAssigner object  with example: obj = PoseHungarianAssigner(cls_cost, kpt_cost, oks_cost)