Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 8
0
    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()
Esempio n. 9
0
    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)
Esempio n. 10
0
    def __init__(self):
        super(ModelBuilder, self).__init__()

        # build backbone
        self.backbone = get_backbone(cfg.BACKBONE.TYPE,
                                     **cfg.BACKBONE.KWARGS)

        # build car head
        self.car_head = CARHead(cfg, 256)

        # build response map
        self.attention = Graph_Attention_Union(256, 256)

        # build loss
        self.loss_evaluator = make_siamcar_loss_evaluator(cfg)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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)
Esempio n. 13
0
    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)
Esempio n. 14
0
    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)
Esempio n. 15
0
    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 = []
Esempio n. 16
0
    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)
Esempio n. 17
0
# from tqdm import tqdm
# from tqdm import trange
# pbar =tqdm(total=10000000)
# pbar.set_description("processing ")
# for i in range(10000000):
#     pbar.update(1)
# pbar.close()
#
from pysot.core.config import cfg
from pysot.models.backbone import get_backbone
import torch

cfg.merge_from_file(
    "/home/tempuser1/pysot/experiments/siamrpn_r50_l234_dwxcorr_gpu_visdrone/config.yaml"
)

backbone = get_backbone(cfg.BACKBONE.TYPE, **cfg.BACKBONE.KWARGS)
data = torch.rand([1, 3, 255, 255])
output = backbone.forward(data)
for i in output:
    print(i.size())