#pytorch #image-segmentation #torchvision
#pytorch #сегментация изображений #факельное видение
Вопрос:
Я следовал руководству torchvision (https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html ) и обучил модель сегментации на моем собственном наборе данных аэрофотоснимков. Который имеет только 2 класса. Результатом были:
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.640
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.700
Прилично, но я хотел бы улучшить точность масок.
Поэтому я затем точно так же тренировался с pretrained=False
and pretrained_backbone=False
и был очень удивлен, что производительность составила примерно половину от предварительно обученной модели.
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.328
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.472
Я пытаюсь понять, почему это так и куда я должен направить свои усилия по улучшению модели:
- Такие параметры обучения, как: lr, импульс, отсев, размер пакета..
- Архитектура сети MaskRCNN: рентабельность инвестиций, привязки..
- Кое-что о моем наборе данных: добавление дополнения..
Я не уверен, где искать, чтобы понять, как я могу улучшить производительность. Каков достойный способ подойти к этому?
РЕДАКТИРОВАТЬ: Моя модель:
def get_model_instance_segmentation(num_classes):
# load an instance segmentation model pre-trained pre-trained on COCO
model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)
# get number of input features for the classifier
in_features = model.roi_heads.box_predictor.cls_score.in_features
# replace the pre-trained head with a new one
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)
# now get the number of input features for the mask classifier
in_features_mask = model.roi_heads.mask_predictor.conv5_mask.in_channels
hidden_layer = 256
# and replace the mask predictor with a new one
model.roi_heads.mask_predictor = MaskRCNNPredictor(in_features_mask, hidden_layer, num_classes)
return model
Комментарии:
1. Они используют сеть пирамид объектов для извлечения объектов перед переходом в сеть предложений регионов. Что, я полагаю, делает их более точными, чем другие. И в моем случае, когда я попытался заменить resnet50 по умолчанию на vgg16, разница в точности была очень огромной. Я думаю, это помогает!
2. @SubashKharel Я не совсем уверен, что понимаю. Я отредактировал свой вопрос, чтобы показать, какую модель я использую
3. @SubashKharel вы хотите сказать, что vgg был большим улучшением по сравнению с resnet50 в качестве основы?
4. Нет, это другой путь.