def transform_to_yolo_labels(self, labels):
"""
Transform voc_label_parser' result to yolo label.
:param labels: [is_obj, x, y, w, h, class_probs..], ...
:return: yolo label
"""
yolo_label = np.zeros([self.side, self.side, (1 + self.coords) + self.classes]).astype(np.float32)
shuffle(labels)
for label in labels:
yolo_box = self.convert_to_yolo_box(self.ori_im_shape[::-1], list(label[2:]))
assert np.max(yolo_box) < 1
[loc_y, loc_x] = [int(np.floor(yolo_box[1] * self.side)), int(np.floor(yolo_box[0] * self.side))]
yolo_label[loc_y][loc_x][0] = 1.0 # is obj
yolo_label[loc_y][loc_x][1:5] = yolo_box # bbox
yolo_label[loc_y][loc_x][5:] = 0 # only one obj in one grid
yolo_label[loc_y][loc_x][4+label[0]] = 1.0 # class
return yolo_label
评论列表
文章目录