def __init__(self, cfg): super(ModelBuilder, self).__init__() self.cfg = cfg # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head if cfg.TRANSFORMER.TRANSFORMER: assert (cfg.TRANSFORMER.KWARGS.hidden_dims == cfg.ADJUST.KWARGS.out_channels, "AdjustLayer out_channels = hidden_dims") self.tr_head = get_tr_head(cfg.TRANSFORMER.TYPE, **cfg.TRANSFORMER.KWARGS) self.criterion = SiamTrCriterion(cfg.TRAIN.CLS_WEIGHT, cfg.TRAIN.LOC_WEIGHT, cfg.TRAIN.IOU_WEIGHT) else: self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) if cfg.TRACK.TYPE == 'SiamCARTracker': # build car head self.car_head = CARHead(cfg, 256) # build response map self.xcorr_depthwise = xcorr_depthwise # build loss self.loss_evaluator = make_siamcar_loss_evaluator(cfg) self.down = nn.ConvTranspose2d(256 * 3, 256, 1, 1) else: # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build attention map #self.att_mods_head = att_mods_head(cfg.atts.TYPE, # **cfg.atts.KWARGS) # build corner head self.corner_mods_head = corners_mods_head(cfg.corners.TYPE, **cfg.corners.KWARGS) # build offs map #self.off_mods_head = off_mods_head(cfg.offs.TYPE, # **cfg.offs.KWARGS) ## build rpn head #self.rpn_head = get_rpn_head(cfg.RPN.TYPE, # **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) def get_latent_rpn_head(name, **kwargs): RPNS = {'MultiLatentRPN': MultiLatentRPN} return RPNS[name](**kwargs) # build rpn head if cfg.LATENT: self.rpn_head = get_latent_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) else: self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE) self.auto_params, self.auto_modules = self.get_layers_in_autocoder_model( ) self.auto_opt = self.build_opt_autocoder() # for nms label self.score_size = (cfg.TRACK.INSTANCE_SIZE - cfg.TRACK.EXEMPLAR_SIZE) // \ cfg.ANCHOR.STRIDE + 1 + cfg.TRACK.BASE_SIZE self.anchors = self.generate_anchor(self.score_size)
def __init__(self): super(FrostTemplate, self).__init__() self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS)
def __init__(self): super(Model, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) #是否添加gru模块 if cfg.GRU.USE_GRU: self.grus =GRU_Model(cfg.GRU.SEQ_IN,cfg.GRU.SEQ_OUT) if self.grus.seq_out_len !=1: raise ValueError("For tracking task GRU_Model.seq_out_len must be set as 1\n", "please check the value of __C.GRU.SEQ_OUT in config.py file" ) self.zfs = [None] * self.grus.seq_in_len # 多帧模板图z的特征f,测试前向的时候使用 # build adjust layer (siamese rpn++才有这个层) if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head(siamese mask里面才有这一层) if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE) #---------------------tenosrboard监视用------------------- # hanning窗口,为tensorboard显示预测结果提前出事 hanning = np.hanning(cfg.TRAIN.OUTPUT_SIZE) # 生成和输出特征图大小相同的hanning窗 window = np.outer(hanning, hanning) # 一维度的hanning窗口通过外积得到二位hanning 窗口 self.anchor_num = len(cfg.ANCHOR.RATIOS)*len(cfg.ANCHOR.SCALES) self.window = torch.from_numpy(np.tile(window.flatten(), self.anchor_num)).cuda().float() #size*size*anchor_num展平 #按照给定的比例因子生成一个位置的多种anchor,输出shape为【anchor_num,4】其中输出的anchor的值为[-w * 0.5, -h * 0.5, w * 0.5, h * 0.5] self.anchors = Anchors(cfg.ANCHOR.STRIDE, #8 cfg.ANCHOR.RATIOS, # [0.33, 0.5, 1, 2, 3] cfg.ANCHOR.SCALES) # 生成两种类型的anchor,第一种是左上右下坐标类型的,第二种是中心点类型的,shape均为【4,anchor_num,size,size] self.anchors.generate_all_anchors(im_c=cfg.TRAIN.SEARCH_SIZE//2, size=cfg.TRAIN.OUTPUT_SIZE) self.anchors_tensor =torch.from_numpy(self.anchors.all_anchors[0]).cuda()
def __init__(self): super(Model, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build feature fusion # self.feature_fusion = get_feature_fusion(cfg.FUSION.TYPE, # **cfg.FUSION.KWARGS) self.feature_fusion = xcorr_depthwise # PolarMask head self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS)
def __init__(self): super(Model, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build fcos head self.fcos_head = get_fcos_head(cfg.FCOS.TYPE, **cfg.FCOS.KWARGS) # build response map self.xcorr_depthwise = xcorr_depthwise # build loss self.loss_evaluator = make_fcos_loss_evaluator(cfg)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build non-local layer # self.non_local = get_nonlocal(cfg.NONLOCAL.TYPE, # **cfg.NONLOCAL.KWARGS) # roi align for cropping center self.roi_align = RoIAlign((7, 7), 1.0 / cfg.ANCHOR.STRIDE, 1) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build car head self.car_head = CARHead(cfg, 256) # build response map self.xcorr_depthwise = xcorr_depthwise # build loss self.loss_evaluator = make_siamcar_loss_evaluator(cfg) self.down = nn.ConvTranspose2d(256 * 3, 256, 1, 1)
def __init__(self): super(ModelBuilder, self).__init__() # build ContextBlock self.ContextBlock = ContextBlock(256) # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: #"AdjustAllLayer" self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) self.CUDA = torch.cuda.is_available() # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE) self.zf = []
def __init__(self): super(ModelBuilder, self).__init__() # build backbone self.backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS) # build adjust layer '''from the function "template" and "track", it can be seen that self.neck is shared by X and Z''' if cfg.ADJUST.ADJUST: self.neck = get_neck(cfg.ADJUST.TYPE, **cfg.ADJUST.KWARGS) # build rpn head self.rpn_head = get_rpn_head(cfg.RPN.TYPE, **cfg.RPN.KWARGS) # build mask head if cfg.MASK.MASK: self.mask_head = get_mask_head(cfg.MASK.TYPE, **cfg.MASK.KWARGS) if cfg.REFINE.REFINE: self.refine_head = get_refine_head(cfg.REFINE.TYPE)