Exemple #1
0
    def __call__(self, in_data):
        img, d_list = in_data
        _, _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H
        for i, _ in enumerate(d_list):
            d_list[i][1] = util.resize_bbox(d_list[i][1], (H, W), (o_H, o_W))
            d_list[i][2] = util.resize_bbox(d_list[i][2], (H, W), (o_H, o_W))


        # horizontally flip
        # img, params = util.random_flip(
        #     img, x_random=True, return_param=True)
        # bbox = util.flip_bbox(
        #     bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, d
Exemple #2
0
 def __getitem__(self, index):
     ori_img, gt_bbox, label, difficult = self.dataset[index]
     height, width = ori_img.shape[1:]
     img = preprocess(ori_img)
     new_height, new_width = img.shape[1:]
     bbox = resize_bbox(
         bbox=gt_bbox, in_size=(height, width),
         out_size=(new_height, new_width)
     )
     return img, ori_img.shape[1:], gt_bbox, bbox, label, difficult
Exemple #3
0
 def __call__(self, in_data):
     img, bbox, label = in_data
     _, H, W = img.shape
     img = preprocess(img, self.min_size, self.max_size)#对图像缩放处理
     _, o_H, o_W = img.shape
     scale = o_H / H
     bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))#对bbox处理
     #图像随机水平翻转
     img, params = util.random_flip(img, x_random=True, return_param=True)
     #对应的bbox
     bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])
     return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # 水平翻转
        img, params = util.random_filp(img, x_random=True, return_param=True)
        bbox = util.filp_bbox(bbox, (o_H, o_W), x_filp=params['x_filp'])
        return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        C, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _C, _H, _W = img.shape
        scale = _H / H
        bbox = util.resize_bbox(bbox, (H, W), (_H, _W))

        img, params = util.random_flip_image(img,
                                             x_random=True,
                                             return_param=True)
        bbox = util.flip_bbox(bbox, (_H, _W), x_flip=params['x_flip'])
        return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape  #_表示临时变量,一般用不到
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H  #得出bbox缩放比因子
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))  #bbox按照与原图等比例缩放

        # horizontally flip
        img, params = util.random_flip(img, x_random=True, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #7
0
    def __call__(self, data):
        img, bbox, label = data
        _, H, W = img.shape
        img = preprocess(img)
        _, o_H, o_W = img.shape
        bbox = resize_bbox(bbox, (H, W), (o_H, o_W))

        #randomly horizontally flip
        img, x_flip = random_flip(img)
        if x_flip:
            bbox = flip_bbox(bbox, (o_H, o_W))

        scale = o_H / H
        return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape # 缩放后的图像大小
        scale = o_H / H # 缩放比例
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W)) # 按比例缩放包围盒

        # horizontally flip, 将图像随机水平翻转
        img, params = util.random_flip(img, x_random=True, return_param=True)
        # 将包围盒进行与图像相同的水平翻转
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #9
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape

        #         img, bbox, scale = preprocess(img, bbox, self.target_size)
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))
        # horizontally flip
        img, params = util.random_flip(img, x_random=True, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #10
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size,
                         self.max_size)  # 将图片进行最小最大化放缩然后进行归一化
        _, o_H, o_W = img.shape
        scale = o_H / H  # 放缩前后相除,得出放缩比因子
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))  # 重新调整bboxes框的大小

        # 水平翻转
        # 进行图片的随机反转,图片旋转不变性,增强网络的鲁棒性!
        img, params = util.random_flip(img, x_random=True, return_param=True)
        # 同样的对bboxes进行随机反转
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])
        return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H

        # 由于数据进行了缩放,所以标签也要做相同的缩放
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip 水平翻转
        img, params = util.random_flip(img, x_random=False, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape

        img = preprocess(img, self.min_size, self.max_size)  #预处理图片
        _, o_H, o_W = img.shape
        scale = o_H / H
        #预处理图片中的bbox,对相应的bounding boxes 也进行同等尺度的缩放。
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip水平翻转
        img, params = util.random_flip(img, x_random=True, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #13
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H                                         # 得到缩放因子
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))       # 对bounding box 也缩放

        # horizontally flip
        img, params = util.random_flip(                         # 图像的随机水平翻转
            img, x_random=True, return_param=True)
        bbox = util.flip_bbox(                                  # 对bounding box 水平翻转
            bbox, (o_H, o_W), x_flip=params['x_flip'])  

        return img, bbox, label, scale
Exemple #14
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape  #(3,h,w)
        img = preprocess(img, self.min_size,
                         self.max_size)  #(3,h*scale,w*scale)
        _, o_H, o_W = img.shape
        scale = o_H / H  #(得出缩放比因子) #scale
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))  #

        # horizontally flip
        img, params = util.random_flip(
            img, x_random=True,
            return_param=True)  #jiang pictures shuiping fanzhuang
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #15
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        img = preprocess(img, self.signal_type, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip
        # FLAG: data augmentation
        """
        img, params = util.random_flip(
            img, x_random=True, return_param=True)
        bbox = util.flip_bbox(
            bbox, (o_H, o_W), x_flip=params['x_flip'])
        """
        return img, bbox, label, scale
Exemple #16
0
    def __call__(self, in_data):
        img, bbox, label, mask = in_data
        _, H, W = img.shape

        img, mask = preprocess(img, mask)

        _, o_H, o_W = img.shape
        scale = o_H / H
        # print(bbox)
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip
        # img, params = util.random_flip(
        #     img, x_random=True, return_param=True)
        # bbox = util.flip_bbox(
        #     bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale, mask
Exemple #17
0
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        # 图像等比例缩放
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        # 得出缩放比因子
        scale = o_H / H
        # bbox按照与原图等比例缩放
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # 将图片进行随机水平翻转,没有进行垂直翻转
        img, params = util.random_flip(
            img, x_random=True, return_param=True)
        # 同样地将bbox进行与对应图片同样的水平翻转
        bbox = util.flip_bbox(
            bbox, (o_H, o_W), x_flip=params['x_flip'])

        return img, bbox, label, scale
Exemple #18
0
    def __call__(self, in_data):
        image, bbox, label = in_data
        _, H, W = image.shape
        image = preprocess(image, self.min_size, self.max_size)
        _, o_H, o_W = image.shape
        scale = o_H / H
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip
        # image, params = util.random_flip(
        #     image, x_random=True, return_param=True)
        # bbox = util.flip_bbox(
        #     bbox, (o_H, o_W), x_flip=params['x_flip'])

        #random horizontal flip of image and bounding box
        image, param = util.random_horizflip(image)
        bbox = util.flip_bbox(bbox, (o_H, o_W), param)

        return image, bbox, label, scale
    def __call__(self, in_data):
        img, bbox, label = in_data
        _, H, W = img.shape
        # print("before preprocessing:", img.shape, img[:, 100: 200, 100: 200])
        img = preprocess(img, self.min_size, self.max_size)
        # print("after preprocessing:", img.shape, img[:, 100: 200, 100: 200])
        _, o_H, o_W = img.shape
        # TODO change the defenition of scale.
        # warning: might have issue.
        scale = o_H / H
        # print("bbox pre: ", bbox)
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))
        # print("bbox after: ", bbox)
        # horizontally flip
        img, params = util.random_flip(img, x_random=True, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])
        # print("bbox after flip: ", bbox, bbox.shape)

        return img, bbox, label, scale
Exemple #20
0
    def __call__(self, in_data):
        img, bbox, label, depth, y_rot = in_data
        _, H, W = img.shape
        img = preprocess(img, self.min_size, self.max_size)
        _, o_H, o_W = img.shape
        scale = o_H / H
        bbox = util.resize_bbox(bbox, (H, W), (o_H, o_W))

        # horizontally flip
        img, params = util.random_flip(img, x_random=True, return_param=True)
        bbox = util.flip_bbox(bbox, (o_H, o_W), x_flip=params['x_flip'])
        if params['x_flip']:
            for i in range(len(y_rot)):
                theta = float(y_rot[i])
                if theta > 0:
                    y_rot[i] = pi - theta
                if theta < 0:
                    y_rot[i] = -pi - theta
                    y_rot[i]
                if theta == 0:
                    y_rot[i] = 3.14

        return img, bbox, label, depth, y_rot, scale
Exemple #21
0
    #     print(img.shape, bbox.shape, label, scale)
    #     img = inverse_normalize(img)
    #     img = img.transpose(1, 2, 0)
    #     drawimg=img.copy()
    #
    #     for idx,bbox_data in enumerate(bbox):
    #         cv2.rectangle(drawimg, (int(bbox_data[1]), int(bbox_data[0])), (int(bbox_data[3]), int(bbox_data[2])), (0, 255, 0),4);
    #
    #     # print(img.shape)
    #     plt.imshow(drawimg)
    #     plt.show()

    testdataset = TestDataset(opt)
    test_iter = iter(testdataset)
    for i in range(3):
        img, ori_img_shape, bbox, label, diff = next(test_iter)
        print(img.shape, bbox.shape, label)
        img = inverse_normalize(img)
        img = img.transpose(1, 2, 0)
        drawimg = img.copy()
        H, W, C = drawimg.shape
        # ori_img_shape
        print(ori_img_shape)
        bbox = util.resize_bbox(bbox, (ori_img_shape[0], ori_img_shape[1]), (H, W))
        for idx, bbox_data in enumerate(bbox):
            cv2.rectangle(drawimg, (int(bbox_data[1]), int(bbox_data[0])), (int(bbox_data[3]), int(bbox_data[2])),
                          (0, 255, 0), 4)
        # print(img.shape)
        plt.imshow(drawimg)
        plt.show()