def __init__(self, cfg: CfgNode): """ Initialize chart-based loss from configuration options Args: cfg (CfgNode): configuration options """ # fmt: off self.heatmap_size = cfg.MODEL.ROI_DENSEPOSE_HEAD.HEATMAP_SIZE self.w_points = cfg.MODEL.ROI_DENSEPOSE_HEAD.POINT_REGRESSION_WEIGHTS self.w_part = cfg.MODEL.ROI_DENSEPOSE_HEAD.PART_WEIGHTS self.use_part_focal_loss = cfg.MODEL.ROI_DENSEPOSE_HEAD.PART_FOCAL_LOSS self.w_segm = cfg.MODEL.ROI_DENSEPOSE_HEAD.INDEX_WEIGHTS self.w_body = cfg.MODEL.ROI_DENSEPOSE_HEAD.BODY_WEIGHTS self.n_segm_chan = cfg.MODEL.ROI_DENSEPOSE_HEAD.NUM_COARSE_SEGM_CHANNELS self.w_smooth = cfg.MODEL.ROI_DENSEPOSE_HEAD.SMOOTH_WEIGHTS self.w_tv = cfg.MODEL.ROI_DENSEPOSE_HEAD.TV_WEIGHTS # fmt: on self.segm_trained_by_masks = cfg.MODEL.ROI_DENSEPOSE_HEAD.COARSE_SEGM_TRAINED_BY_MASKS # <<<<<<< HEAD self.use_mean_uv = cfg.MODEL.ROI_DENSEPOSE_HEAD.MEAN_UV_LOSS if self.use_part_focal_loss: gamma = cfg.MODEL.ROI_DENSEPOSE_HEAD.PART_FOCAL_GAMMA self.focal_loss = FocalLoss(gamma=gamma, alpha=None, size_average=False) self.use_teacher_student = cfg.MODEL.TEACHER_STUDENT self.teacher_cfg = cfg.MODEL.TEACHER_CFG_FILE self.teacher_weights = cfg.MODEL.TEACHER_WEIGHTS self.teach_ins_wo_gt_dp = cfg.MODEL.TEACH_INS_WO_GT_DP self.w_part_teach = cfg.MODEL.TEACH_PART_WEIGHTS self.w_points_teach = cfg.MODEL.TEACH_POINT_REGRESSION_WEIGHTS if self.use_teacher_student: from densepose.engine import Trainer from densepose.modeling.densepose_checkpoint import DensePoseCheckpointer from densepose.config import get_cfg, add_densepose_config self.teacher_cfg = get_cfg() add_densepose_config(self.teacher_cfg) self.teacher_cfg.merge_from_file(cfg.MODEL.TEACHER_CFG_FILE) self.teacher_model = Trainer.build_model(self.teacher_cfg) # pdb.set_trace() DensePoseCheckpointer(self.teacher_model).load( cfg.MODEL.TEACHER_WEIGHTS) self.teacher_model.eval() self.use_aux_global_s = cfg.MODEL.CONDINST.AUX_SUPERVISION_GLOBAL_S self.use_aux_global_skeleton = cfg.MODEL.CONDINST.AUX_SUPERVISION_GLOBAL_SKELETON self.use_aux_body_semantics = cfg.MODEL.CONDINST.AUX_SUPERVISION_BODY_SEMANTICS self.w_aux_global_s = cfg.MODEL.CONDINST.AUX_SUPERVISION_GLOBAL_S_WEIGHTS self.w_aux_global_skeleton = cfg.MODEL.CONDINST.AUX_SUPERVISION_GLOBAL_SKELETON_WEIGHTS self.w_aux_body_semantics = cfg.MODEL.CONDINST.AUX_SUPERVISION_BODY_SEMANTICS self.pred_ins_body = cfg.MODEL.CONDINST.PREDICT_INSTANCE_BODY # def __call__( # self, proposals_with_gt: List[Instances], densepose_predictor_outputs: Any, images=None # ======= self.segm_loss = MaskOrSegmentationLoss(cfg)
def setup(args): cfg = get_cfg() add_densepose_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) # Setup logger for "densepose" module setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="densepose") return cfg
def setup_config(cls: type, config_fpath: str, model_fpath: str, args: argparse.Namespace, opts: List[str]): cfg = get_cfg() add_densepose_config(cfg) add_hrnet_config(cfg) cfg.merge_from_file(config_fpath) cfg.merge_from_list(args.opts) if opts: cfg.merge_from_list(opts) cfg.MODEL.WEIGHTS = model_fpath ## MLQ added cfg.MODEL.DEVICE = "cuda" if torch.cuda.is_available() else "cpu" cfg.DATA_DIR = os.path.dirname(args.input) # cfg.SMOOTH_K = args.smooth_k cfg.freeze() return cfg
def setup_config(cls: type, config_fpath: str, model_fpath: str, args: argparse.Namespace, opts: List[str]): # pdb.set_trace() cfg = get_cfg() add_densepose_config(cfg) # add_hrnet_config(cfg) # add_adet_cfg(cfg, args) cfg.merge_from_file(config_fpath) cfg.merge_from_list(args.opts) if opts: cfg.merge_from_list(opts) cfg.MODEL.WEIGHTS = model_fpath ## MLQ added cfg.MODEL.DEVICE = "cuda" if torch.cuda.is_available() else "cpu" cfg.DATA_DIR = os.path.dirname(args.input) cfg.SMOOTH_K = args.smooth_k # Set score_threshold for builtin models cfg.MODEL.RETINANET.SCORE_THRESH_TEST = args.confidence_threshold cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = args.confidence_threshold cfg.MODEL.FCOS.INFERENCE_TH_TEST = args.confidence_threshold cfg.MODEL.MEInst.INFERENCE_TH_TEST = args.confidence_threshold cfg.MODEL.PANOPTIC_FPN.COMBINE.INSTANCES_CONFIDENCE_THRESH = args.confidence_threshold cfg.freeze() return cfg