def __init__(self, img, start_pos, HOG_flag=0, dataformat=1, resize=1):
self.HOG_flag = HOG_flag
self.padding = 2
self.dataformat = dataformat
self.resize = resize
self.img_size = img.shape[0],img.shape[1]
if self.dataformat:
w,h = start_pos[2]-start_pos[0],start_pos[3]-start_pos[1]
self.pos = start_pos[0],start_pos[1],w,h
else:
self.pos = start_pos
if self.resize:
self.pos = tuple([ele/2 for ele in self.pos])
self.img_size = img.shape[0]/2, img.shape[1]/2
img = cv2.resize(img,self.img_size[::-1])
object_size = self.pos[2:]
if self.HOG_flag:
self.target_size = 32,32
self.l = 0.0001
self.sigma = 0.6
self.f = 0.012
else:
self.target_size = object_size[0]*self.padding,object_size[1]*self.padding
self.l = 0.0001
self.sigma = 0.2
self.f = 0.02
output_sigma_factor = 1/float(8)
output_sigma = np.sqrt(np.prod(self.target_size)) * output_sigma_factor
self.cos_window = np.outer(np.hanning(self.target_size[0]), np.hanning(self.target_size[1]))
self.y = tracker.generate_gaussian(self.target_size, output_sigma)
x = tracker.get_window(img, self.pos, self.padding)
x = tracker.getFeature(x, self.cos_window,self.HOG_flag)
self.alpha = tracker.train(x, self.y, self.sigma, self.l)
self.z = x
评论列表
文章目录