def __init__(self, configer): super(FasterRCNN, self).__init__() self.configer = configer self.backbone, self.classifier = VGGModel(configer)() self.rpn = NaiveRPN(configer) self.rpn_target_assigner = RPNTargetAssigner(configer) self.roi_generator = FRROIGenerator(configer) self.roi_sampler = FRROISampler(configer) self.bbox_head = BBoxHead(configer, self.classifier) self.det_loss = FasterRCNNLoss(self.configer)
def __init__(self, configer): super(FasterRCNN, self).__init__() self.configer = configer self.backbone, self.classifier = VGGModel(configer)() self.rpn = NaiveRPN(configer) self.rpn_target_assigner = RPNTargetAssigner(configer) self.roi_generator = FRROIGenerator(configer) self.roi_sampler = FRROISampler(configer) self.bbox_head = BBoxHead(configer, self.classifier) self.valid_loss_dict = configer.get('loss', 'loss_weights', configer.get('loss.loss_type'))
def __init__(self, configer): self.configer = configer self.blob_helper = BlobHelper(configer) self.det_visualizer = DetVisualizer(configer) self.det_parser = DetParser(configer) self.det_model_manager = ModelManager(configer) self.test_loader = TestDataLoader(configer) self.roi_sampler = FRROISampler(configer) self.rpn_target_generator = RPNTargetAssigner(configer) self.fr_priorbox_layer = FRPriorBoxLayer(configer) self.fr_roi_generator = FRROIGenerator(configer) self.device = torch.device('cpu' if self.configer.get('gpu') is None else 'cuda') self.det_net = None self._init_model()
def __init__(self, configer): super(FpnRCNN, self).__init__() self.configer = configer self.backbone = BackboneSelector(configer).get_backbone() self.RCNN_layer0 = nn.Sequential(self.backbone.conv1, self.backbone.bn1, self.backbone.relu, self.backbone.maxpool) self.RCNN_layer1 = nn.Sequential(self.backbone.layer1) self.RCNN_layer2 = nn.Sequential(self.backbone.layer2) self.RCNN_layer3 = nn.Sequential(self.backbone.layer3) self.RCNN_layer4 = nn.Sequential(self.backbone.layer4) # Top layer self.RCNN_toplayer = nn.Conv2d(2048, 256, kernel_size=1, stride=1, padding=0) # reduce channel # Smooth layers self.RCNN_smooth1 = nn.Conv2d(256, 256, kernel_size=3, stride=1, padding=1) self.RCNN_smooth2 = nn.Conv2d(256, 256, kernel_size=3, stride=1, padding=1) self.RCNN_smooth3 = nn.Conv2d(256, 256, kernel_size=3, stride=1, padding=1) # Lateral layers self.RCNN_latlayer1 = nn.Conv2d(1024, 256, kernel_size=1, stride=1, padding=0) self.RCNN_latlayer2 = nn.Conv2d(512, 256, kernel_size=1, stride=1, padding=0) self.RCNN_latlayer3 = nn.Conv2d(256, 256, kernel_size=1, stride=1, padding=0) # ROI Pool feature downsampling self.RCNN_roi_feat_ds = nn.Conv2d(256, 256, kernel_size=3, stride=2, padding=1) self.RCNN_top = nn.Sequential( nn.Conv2d(256, 1024, kernel_size=self.configer.get('roi', 'pooled_height'), stride=self.configer.get('roi', 'pooled_height'), padding=0), nn.ReLU(True), nn.Conv2d(1024, 1024, kernel_size=1, stride=1, padding=0), nn.ReLU(True) ) self.rpn = NaiveRPN(configer) self.roi = FRROIGenerator(configer) self.roi_sampler = FRROISampler(configer) self.head = RoIHead(configer)