Example #1
0
    def getlabel(self):
        im_tensor, im_info, gt_boxes = self._data

        # all stacked image share same anchors
        _, out_shape, _ = self._feat_sym.infer_shape(data=im_tensor.shape)
        feat_height, feat_width = out_shape[0][-2:]
        anchors = self._ag.generate(feat_height, feat_width)

        # assign anchor according to their real size encoded in im_info
        label, bbox_target, bbox_weight = [], [], []
        for batch_ind in range(im_info.shape[0]):
            b_im_info = im_info[batch_ind].asnumpy()
            b_gt_boxes = gt_boxes[batch_ind].asnumpy()
            b_im_height, b_im_width = b_im_info[:2]

            b_label, b_bbox_target, b_bbox_weight = self._as.assign(anchors, b_gt_boxes, b_im_height, b_im_width)

            b_label = b_label.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1)).flatten()
            b_bbox_target = b_bbox_target.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1))
            b_bbox_weight = b_bbox_weight.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1))

            label.append(b_label)
            bbox_target.append(b_bbox_target)
            bbox_weight.append(b_bbox_weight)

        label = mx.nd.array(tensor_vstack(label, pad=-1))
        bbox_target = mx.nd.array(tensor_vstack(bbox_target, pad=0))
        bbox_weight = mx.nd.array(tensor_vstack(bbox_weight, pad=0))
        self._label = label, bbox_target, bbox_weight
        return self._label
Example #2
0
    def getlabel(self):
        im_tensor, im_info, gt_boxes = self._data

        # all stacked image share same anchors
        _, out_shape, _ = self._feat_sym.infer_shape(data=im_tensor.shape)
        feat_height, feat_width = out_shape[0][-2:]
        anchors = self._ag.generate(feat_height, feat_width)

        # assign anchor according to their real size encoded in im_info
        label, bbox_target, bbox_weight = [], [], []
        for batch_ind in range(im_info.shape[0]):
            b_im_info = im_info[batch_ind].asnumpy()
            b_gt_boxes = gt_boxes[batch_ind].asnumpy()
            b_im_height, b_im_width = b_im_info[:2]

            b_label, b_bbox_target, b_bbox_weight = self._as.assign(
                anchors, b_gt_boxes, b_im_height, b_im_width)

            b_label = b_label.reshape((feat_height, feat_width, -1)).transpose(
                (2, 0, 1)).flatten()
            b_bbox_target = b_bbox_target.reshape(
                (feat_height, feat_width, -1)).transpose((2, 0, 1))
            b_bbox_weight = b_bbox_weight.reshape(
                (feat_height, feat_width, -1)).transpose((2, 0, 1))

            label.append(b_label)
            bbox_target.append(b_bbox_target)
            bbox_weight.append(b_bbox_weight)

        label = mx.nd.array(tensor_vstack(label, pad=-1))
        bbox_target = mx.nd.array(tensor_vstack(bbox_target, pad=0))
        bbox_weight = mx.nd.array(tensor_vstack(bbox_weight, pad=0))
        self._label = label, bbox_target, bbox_weight
        return self._label
Example #3
0
 def getdata(self):
     indices = self.getindex()
     im_tensor, im_info = [], []
     for index in indices:
         roi_rec = self._roidb[index]
         b_im_tensor, b_im_info, _ = get_image(roi_rec, self._short, self._max_size, self._mean, self._std)
         im_tensor.append(b_im_tensor)
         im_info.append(b_im_info)
     im_tensor = mx.nd.array(tensor_vstack(im_tensor, pad=0))
     im_info = mx.nd.array(tensor_vstack(im_info, pad=0))
     self._data = im_tensor, im_info
     return self._data
Example #4
0
 def getdata(self):
     indices = self.getindex()
     im_tensor, im_info = [], []
     for index in indices:
         roi_rec = self._roidb[index]
         b_im_tensor, b_im_info, b_gt_boxes, b_seg = get_image(roi_rec, self._short, self._max_size, self._mean, self._std)
         im_tensor.append(b_im_tensor)
         im_info.append(b_im_info)
     im_tensor = mx.nd.array(tensor_vstack(im_tensor, pad=0))
     im_info = mx.nd.array(tensor_vstack(im_info, pad=0))
     self._data = im_tensor, im_info
     return self._data
 def getdata(self):
     indices = self.getindex()
     im_tensor, im_info, gt_boxes = [], [], []
     for index in indices:
         roi_rec = self._roidb[index]
         b_im_tensor, b_im_info, b_gt_boxes = get_image(
             roi_rec, self._short, self._max_size, self._mean, self._std)
         im_tensor.append(b_im_tensor)
         im_info.append(b_im_info)
         gt_boxes.append(b_gt_boxes)
     im_tensor = mx.nd.array(tensor_vstack(im_tensor, pad=0))
     im_info = mx.nd.array(tensor_vstack(im_info, pad=0))
     gt_boxes = mx.nd.array(tensor_vstack(gt_boxes, pad=-1))
     #print ("gt_boxes_shape=",gt_boxes.shape)
     self._data = im_tensor, im_info, gt_boxes
     return self._data
Example #6
0
 def getdata(self):
     indices = self.getindex()
     # short_side = np.floor(np.random.uniform(800, 1025))
     im_tensor, im_info, gt_boxes, seg = [], [], [], []
     for index in indices:
         roi_rec = self._roidb[index]
         b_im_tensor, b_im_info, b_gt_boxes, b_seg = get_image(roi_rec, self._short, self._max_size, self._mean, self._std)
         im_tensor.append(b_im_tensor)
         im_info.append(b_im_info)
         gt_boxes.append(b_gt_boxes)
         seg.append(b_seg)
         # print(b_seg)
     im_tensor = mx.nd.array(tensor_vstack(im_tensor, pad=0))
     im_info = mx.nd.array(tensor_vstack(im_info, pad=0))
     gt_boxes = mx.nd.array(tensor_vstack(gt_boxes, pad=-1))
     seg = mx.nd.array(tensor_vstack(seg, pad=0))
     self._data = im_tensor, im_info, gt_boxes, seg
     return self._data
Example #7
0
    def getlabel(self):
        im_tensor, im_info, gt_boxes = self._data

        label_list = []
        bbox_target_list = []
        bbox_weight_list = []
        # all stacked image share same anchors
        # print(type(self._feat_sym))
        for i, feat_sym in enumerate(self._feat_sym):
            _, out_shape, _ = feat_sym.infer_shape(data=im_tensor.shape)
            feat_height, feat_width = out_shape[0][-2:]
            # print('feat height & width', feat_height, feat_width)
            anchors = self._ag[i].generate(feat_height, feat_width)

        # assign anchor according to their real size encoded in im_info
            label, bbox_target, bbox_weight = [], [], []
            for batch_ind in range(im_info.shape[0]):
                b_im_info = im_info[batch_ind].asnumpy()
                b_gt_boxes = gt_boxes[batch_ind].asnumpy()
                b_im_height, b_im_width = b_im_info[:2]

                b_label, b_bbox_target, b_bbox_weight = self._as.assign(anchors, b_gt_boxes, b_im_height, b_im_width)

                b_label = b_label.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1)).flatten()
                b_bbox_target = b_bbox_target.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1))
                b_bbox_weight = b_bbox_weight.reshape((feat_height, feat_width, -1)).transpose((2, 0, 1))

                label.append(b_label)
                bbox_target.append(b_bbox_target)
                bbox_weight.append(b_bbox_weight)

            label_list.append(mx.nd.array(tensor_vstack(label, pad=-1)))
            bbox_target_list.append(mx.nd.array(tensor_vstack(bbox_target, pad=0)))
            bbox_weight_list.append(mx.nd.array(tensor_vstack(bbox_weight, pad=0)))
        self._label = label_list[0], label_list[1], label_list[2], label_list[3], label_list[4], bbox_target_list[0], bbox_target_list[1], bbox_target_list[2], bbox_target_list[3], bbox_target_list[4], bbox_weight_list[0], bbox_weight_list[1], bbox_weight_list[2], bbox_weight_list[3], bbox_weight_list[4]
        return self._label