Skip to content

Commit 30299cc

Browse files
committed
Reducing Resolution to 320-640 and anchor sizes to 16-256.
1 parent c3dfca1 commit 30299cc

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed
Binary file not shown.
Binary file not shown.

torchvision/models/detection/faster_rcnn.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ def fasterrcnn_resnet50_fpn(pretrained=False, progress=True,
372372

373373

374374
def fasterrcnn_mobilenet_v3_large(pretrained=False, progress=True, num_classes=91, pretrained_backbone=True,
375-
trainable_backbone_layers=None, **kwargs):
375+
trainable_backbone_layers=None, min_size=320, max_size=640, **kwargs):
376376
"""
377377
Constructs a Faster R-CNN model with a MobileNetV3-Large backbone. It works similarly
378378
to Faster R-CNN with ResNet-50 FPN backbone. See `fasterrcnn_resnet50_fpn` for more details.
@@ -391,6 +391,8 @@ def fasterrcnn_mobilenet_v3_large(pretrained=False, progress=True, num_classes=9
391391
pretrained_backbone (bool): If True, returns a model with backbone pre-trained on Imagenet
392392
trainable_backbone_layers (int): number of trainable (not frozen) resnet layers starting from final block.
393393
Valid values are between 0 and 6, with 6 meaning all backbone layers are trainable.
394+
min_size (int): minimum size of the image to be rescaled before feeding it to the backbone
395+
max_size (int): maximum size of the image to be rescaled before feeding it to the backbone
394396
"""
395397
trainable_backbone_layers = _validate_trainable_layers(
396398
pretrained or pretrained_backbone, trainable_backbone_layers, 6, 3)
@@ -400,19 +402,19 @@ def fasterrcnn_mobilenet_v3_large(pretrained=False, progress=True, num_classes=9
400402
backbone = mobilenet_backbone("mobilenet_v3_large", pretrained_backbone, False,
401403
trainable_layers=trainable_backbone_layers)
402404

403-
anchor_sizes = ((32, 64, 128, 256, 512), )
405+
anchor_sizes = ((16, 32, 64, 128, 256), )
404406
aspect_ratios = ((0.5, 1.0, 2.0), )
405407

406408
model = FasterRCNN(backbone, num_classes, rpn_anchor_generator=AnchorGenerator(anchor_sizes, aspect_ratios),
407-
**kwargs)
409+
min_size=min_size, max_size=max_size, **kwargs)
408410
if pretrained:
409411
state_dict = load_state_dict_from_url(model_urls['fasterrcnn_mobilenet_v3_large_coco'], progress=progress)
410412
model.load_state_dict(state_dict)
411413
return model
412414

413415

414416
def fasterrcnn_mobilenet_v3_large_fpn(pretrained=False, progress=True, num_classes=91, pretrained_backbone=True,
415-
trainable_backbone_layers=None, **kwargs):
417+
trainable_backbone_layers=None, min_size=320, max_size=640, **kwargs):
416418
"""
417419
Constructs a Faster R-CNN model with a MobileNetV3-Large FPN backbone. It works similarly
418420
to Faster R-CNN with ResNet-50 FPN backbone. See `fasterrcnn_resnet50_fpn` for more details.
@@ -431,6 +433,8 @@ def fasterrcnn_mobilenet_v3_large_fpn(pretrained=False, progress=True, num_class
431433
pretrained_backbone (bool): If True, returns a model with backbone pre-trained on Imagenet
432434
trainable_backbone_layers (int): number of trainable (not frozen) resnet layers starting from final block.
433435
Valid values are between 0 and 6, with 6 meaning all backbone layers are trainable.
436+
min_size (int): minimum size of the image to be rescaled before feeding it to the backbone
437+
max_size (int): maximum size of the image to be rescaled before feeding it to the backbone
434438
"""
435439
trainable_backbone_layers = _validate_trainable_layers(
436440
pretrained or pretrained_backbone, trainable_backbone_layers, 6, 3)
@@ -440,11 +444,11 @@ def fasterrcnn_mobilenet_v3_large_fpn(pretrained=False, progress=True, num_class
440444
backbone = mobilenet_backbone("mobilenet_v3_large", pretrained_backbone, True,
441445
trainable_layers=trainable_backbone_layers)
442446

443-
anchor_sizes = ((32, 64, 128, 256, 512, ), ) * 3
447+
anchor_sizes = ((16, 32, 64, 128, 256, ), ) * 3
444448
aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)
445449

446450
model = FasterRCNN(backbone, num_classes, rpn_anchor_generator=AnchorGenerator(anchor_sizes, aspect_ratios),
447-
**kwargs)
451+
min_size=min_size, max_size=max_size, **kwargs)
448452
if pretrained:
449453
state_dict = load_state_dict_from_url(model_urls['fasterrcnn_mobilenet_v3_large_fpn_coco'], progress=progress)
450454
model.load_state_dict(state_dict)

0 commit comments

Comments
 (0)