# -------------------------------------------------------- # SiamMask # Licensed under The MIT License # Written by Qiang Wang (wangqiang2015 at ia.ac.cn) # -------------------------------------------------------- from __future__ import division from SiamMask.utils.anchors import Anchors class TrackerConfig(object): # These are the default hyper-params for SiamMask penalty_k = 0.09 window_influence = 0.39 lr = 0.38 seg_thr = 0.3 # for mask windowing = 'cosine' # to penalize large displacements [cosine/uniform] # Params from the network architecture, have to be consistent with the training exemplar_size = 127 # input z size instance_size = 255 # input x size (search region) total_stride = 8 out_size = 63 # for mask base_size = 8 score_size = (instance_size-exemplar_size)//total_stride+1+base_size context_amount = 0.5 # context amount for the exemplar ratios = [0.33, 0.5, 1, 2, 3] scales = [8, ] anchor_num = len(ratios) * len(scales) round_dight = 0 anchor = [] def update(self, newparam=None, anchors=None): if newparam: for key, value in newparam.items(): setattr(self, key, value) if anchors is not None: if isinstance(anchors, dict): anchors = Anchors(anchors) if isinstance(anchors, Anchors): self.total_stride = anchors.stride self.ratios = anchors.ratios self.scales = anchors.scales self.round_dight = anchors.round_dight self.renew() def renew(self): self.score_size = (self.instance_size - self.exemplar_size) // self.total_stride + 1 + self.base_size self.anchor_num = len(self.ratios) * len(self.scales)