【问题标题】:Can't change the Anchors in Faster RCNN无法更改 Faster RCNN 中的锚点
【发布时间】:2019-11-19 14:22:06
【问题描述】:

我是 pytorch 的新手,我试图在 pytorch 的 Faster RCNN 网络上放置一些自定义锚点。基本上,我使用的是 resnet50 主干网,当我尝试放置锚点时,出现不匹配错误。

这是我的代码:

backbone = torchvision.models.detection.backbone_utils.resnet_fpn_backbone('resnet50', True)
backbone.out_channels = 256

anchor_generator = AnchorGenerator(sizes=((4, 8, 16, 32, 64, 128),),
                                    aspect_ratios=((0.5, 1.0, 2.0),))

roi_pooler = torchvision.ops.MultiScaleRoIAlign(featmap_names=[0],
                                                    output_size=7,
                                                    sampling_ratio=2)

model = FasterRCNN(backbone, 
                   num_classes=10,
                   rpn_anchor_generator=anchor_generator,
                   box_roi_pool=roi_pooler)

我得到的错误如下:shape '[1440000, -1]' is invalid for input of size 7674336.

【问题讨论】:

    标签: pytorch faster-rcnn


    【解决方案1】:

    好吧,在深入研究PyTorch Faster RCNN的源代码后,我发现了它们是如何初始化锚点的:

    anchor_sizes = ((32,), (64,), (128,), (256,), (512,))
                aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)
    
    rpn_anchor_generator = AnchorGenerator(
                    anchor_sizes, aspect_ratios
                )
    

    按照我的自定义锚点的相同模式,代码将是:

    anchor_sizes = ((4,), (8,), (16,), (32,), (64,), (128,))
                aspect_ratios = ((0.5, 1.0, 2.0),) * len(anchor_sizes)
    
    rpn_anchor_generator = AnchorGenerator(
                    anchor_sizes, aspect_ratios
                )
    
    

    它会起作用的!

    【讨论】:

    • 默认主干需要 5 个大小/比率。我的猜测是您最后添加的 (128,) 将被忽略。
    猜你喜欢
    • 2018-10-31
    • 2020-12-24
    • 2018-06-14
    • 1970-01-01
    • 2020-06-17
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多