def compute_regression_targets(self, gt_list, fg_thresh): if self.best_iou < fg_thresh: # background proposals do not need this return # find the groundtruth instance with the highest IOU ious = [temporal_iou((self.start_frame, self.end_frame), (gt.start_frame, gt.end_frame)) for gt in gt_list] best_gt_id = np.argmax(ious) best_gt = gt_list[best_gt_id] prop_center = (self.start_frame + self.end_frame) / 2 gt_center = (best_gt.start_frame + best_gt.end_frame) / 2 prop_size = self.end_frame - self.start_frame + 1 gt_size = best_gt.end_frame - best_gt.start_frame + 1 # get regression target: # (1). center shift propotional to the proposal duration # (2). logarithm of the groundtruth duration over proposal duraiton self.loc_reg = (gt_center - prop_center) / prop_size try: self.size_reg = math.log(gt_size / prop_size) except: print(gt_size, prop_size, self.start_frame, self.end_frame) raise
def compute_regression_targets(self, gt_list, fg_thresh): if self.best_iou < fg_thresh: # background proposals do not need this return # find the groundtruth instance with the highest IOU ious = [temporal_iou((self.start_frame, self.end_frame), (gt.start_frame, gt.end_frame)) for gt in gt_list] best_gt_id = np.argmax(ious) best_gt = gt_list[best_gt_id] prop_center = (self.start_frame + self.end_frame) / 2 gt_center = (best_gt.start_frame + best_gt.end_frame) / 2 prop_size = self.end_frame - self.start_frame + 1 gt_size = best_gt.end_frame - best_gt.start_frame + 1 # get regression target: # (1). center shift propotional to the proposal duration # (2). logarithm of the groundtruth duration over proposal duraiton self.loc_reg = (gt_center - prop_center) / prop_size try: self.size_reg = math.log(gt_size / prop_size) except: print(gt_size, prop_size, self.start_frame, self.end_frame) raise