От Coco-аннотации json до семантичного c изображения сегментации, такого как .png VO C в pytorch - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь использовать данные COCO 2014 для обучения семантике c в PyTorch. У меня есть модель PS PNet с функцией кросс-энтропийной потери, которая отлично работала на наборе данных PASCAL VO C с 2012 года. Теперь я пытаюсь использовать часть изображений COCO для того же процесса. Но у Coco есть json данные вместо .png изображений для аннотации, и мне как-то приходится скрывать одно в другое. Я заметил, что в cocotools есть annToMask, но я не могу понять, как использовать эту функцию в моем случае. Вот как выглядит элемент извлечения моего загрузчика данных

def pull_item(self, index):

        I DONT KNOW WHAT TO DO HERE

        raw_img = self.transform(raw_img)
        anns_img = self.transform(anns_img)

        return raw_img, anns_img

Ниже показано, как выглядит моя обучающая функция, использующая данные из загрузчиков данных.

 for images, labels in dataloaders_dict[phase]:

                images = images.to(device)

                labels = torch.squeeze(labels)
                labels = labels.to(device)

                with torch.set_grad_enabled(phase == 'train'):
                    outputs = net(images)

                    loss = criterion(outputs, labels.long())

1 Ответ

1 голос
/ 06 мая 2020

Я работал над созданием генератора данных для набора данных COCO с PyCOCO, и я думаю, что мой опыт может помочь вам. Мой пост на носителе описывает весь процесс от начала до конца sh, включая создание масок.

Однако, обратите внимание, я работал с Tensorflow Keras, а не с pytorch. Но поток логики c в основном должен быть таким же, поэтому я уверен, что вы можете извлечь из него что-то полезное.

...