示例#1
0
    def __getitem__(self, index):
        img = ImageHelper.pil_open_rgb(self.img_list[index])
        if os.path.exists(self.mask_list[index]):
            maskmap = ImageHelper.pil_open_p(self.mask_list[index])
        else:
            maskmap = ImageHelper.np2img(np.ones((img.size[1], img.size[0]), dtype=np.uint8))

        kpts, bboxes = self.__read_json_file(self.json_list[index])

        if self.aug_transform is not None and len(bboxes) > 0:
            img, maskmap, kpts, bboxes = self.aug_transform(img, mask=maskmap, kpts=kpts, bboxes=bboxes)

        elif self.aug_transform is not None:
            img, maskmap, kpts = self.aug_transform(img, mask=maskmap, kpts=kpts)

        width, height = maskmap.size
        maskmap = ImageHelper.resize(maskmap, (width // self.configer.get('network', 'stride'),
                                               height // self.configer.get('network', 'stride')), Image.NEAREST)

        maskmap = np.expand_dims(np.array(maskmap, dtype=np.float32), axis=2)

        heatmap = self.pose_data_utilizer.generate_heatmap(kpts=kpts, mask=maskmap)

        vecmap = self.pose_data_utilizer.generate_paf(kpts=kpts, mask=maskmap)

        if self.img_transform is not None:
            img = self.img_transform(img)

        if self.label_transform is not None:
            heatmap = self.label_transform(heatmap)
            vecmap = self.label_transform(vecmap)
            maskmap = self.label_transform(maskmap)

        return img, heatmap, maskmap, vecmap
示例#2
0
    def __getitem__(self, index):
        img = ImageHelper.read_image(self.img_list[index],
                                     tool=self.configer.get('data', 'image_tool'),
                                     mode=self.configer.get('data', 'input_mode'))
        if os.path.exists(self.mask_list[index]):
            maskmap = ImageHelper.read_image(self.mask_list[index],
                                             tool=self.configer.get('data', 'image_tool'), mode='P')
        else:
            maskmap = np.ones((img.size[1], img.size[0]), dtype=np.uint8)
            if self.configer.get('data', 'image_tool') == 'pil':
                maskmap = ImageHelper.np2img(maskmap)

        kpts, bboxes = self.__read_json_file(self.json_list[index])

        if self.aug_transform is not None and len(bboxes) > 0:
            img, maskmap, kpts, bboxes = self.aug_transform(img, maskmap=maskmap, kpts=kpts, bboxes=bboxes)

        elif self.aug_transform is not None:
            img, maskmap, kpts = self.aug_transform(img, maskmap=maskmap, kpts=kpts)

        width, height = maskmap.size
        maskmap = ImageHelper.resize(maskmap,
                                     (width // self.configer.get('network', 'stride'),
                                      height // self.configer.get('network', 'stride')),
                                     interpolation='nearest')

        maskmap = torch.from_numpy(np.array(maskmap, dtype=np.float32))
        kpts = torch.from_numpy(kpts).float()

        if self.img_transform is not None:
            img = self.img_transform(img)

        return img, maskmap, kpts
    def _reduce_zero_label(self, labelmap):
        if not self.configer.get('data', 'reduce_zero_label'):
            return labelmap

        labelmap = np.array(labelmap)
        encoded_labelmap = labelmap - 1
        if self.configer.get('data', 'image_tool') == 'pil':
            encoded_labelmap = ImageHelper.np2img(
                encoded_labelmap.astype(np.uint8))

        return encoded_labelmap
示例#4
0
    def _reduce_zero_label(self, labelmap):
        if not self.configer.get('data', 'reduce_zero_label'):
            return labelmap

        labelmap = np.array(labelmap)
        labelmap[labelmap == 0] = 255
        labelmap = labelmap - 1
        labelmap[labelmap == 254] = 255
        if self.configer.get('data', 'image_tool') == 'pil':
            labelmap = ImageHelper.np2img(labelmap.astype(np.uint8))

        return labelmap
示例#5
0
    def _encode_label(self, labelmap):
        labelmap = np.array(labelmap)
        shape = labelmap.shape
        encoded_labelmap = np.ones(shape=(shape[0], shape[1]),
                                   dtype=np.float32) * 255
        for i in range(self.configer.get('data', 'num_classes')):
            class_id = self.configer.get('data', 'label_list')[i]
            encoded_labelmap[labelmap == class_id] = i

        if self.configer.get('data', 'image_tool') == 'pil':
            encoded_labelmap = ImageHelper.np2img(
                encoded_labelmap.astype(np.uint8))

        return encoded_labelmap