ssd mobilenet v1:更改功能图布局

时间:2019-10-28 14:51:24

标签: python tensorflow object-detection object-detection-api mobilenet

我正在尝试重新训练SSD模型以检测一类自定义对象(吉他)。 我正在使用 ssd_mobilenet_v1_coco 模型,该模型具有从OpenImage数据集中下载的1000K预先标记图像的数据集。 我指的是this answer,以尝试改善图像中小物体的检测。

如那里的建议,我想在已经存在的特征图中添加一个额外的特征图( Conv2d_5_pointwise ),因此总共有7个特征图。因此,我通过以下方式修改了“ models / ssd_mobilenet_v1_feature_extractor.py”:

 feature_map_layout = {
        'from_layer': ['Conv2d_5_pointwise','Conv2d_11_pointwise', 'Conv2d_13_pointwise', '', '',
                       '', ''][:self._num_layers],
        'layer_depth': [-1, -1, -1, 512, 256, 256, 128][:self._num_layers],
        'use_explicit_padding': self._use_explicit_padding,
        'use_depthwise': self._use_depthwise,
    }

因此,我也将 num_layers 更改为配置文件,也更改为7。


    anchor_generator {
      ssd_anchor_generator {
        num_layers: 7
        min_scale: 0.2
        max_scale: 0.95
        aspect_ratios: 1.0
        aspect_ratios: 2.0
        aspect_ratios: 0.5
        aspect_ratios: 3.0
        aspect_ratios: 0.3333
      }
    }

但是,当尝试使用main_model.py训练模型时,出现错误消息


 File "/home/carlo/projects/tf_models/research/object_detection/core/anchor_generator.py", line 105, in generate
    raise ValueError('Number of feature maps is expected to equal the length '
ValueError: Number of feature maps is expected to equal the length of `num_anchors_per_location`.

我是否应该修改其他内容以使其正常工作? 谢谢!

2 个答案:

答案 0 :(得分:1)

好,知道了。

简单来说,我必须在SSDMobileNetV1FeatureExtractor类的构造函数中修改另一个参数( num_layers ):

def __init__(self,
           is_training,
           depth_multiplier,
           min_depth,
           pad_to_multiple,
           conv_hyperparams_fn,
           reuse_weights=None,
           use_explicit_padding=False,
           use_depthwise=False,

           num_layers=7,    <--- HERE

           override_base_feature_extractor_hyperparams=False):

以匹配新的要素图。

答案 1 :(得分:0)

在ssd模型中尝试将multiscale_anchor_generator与以下配置一起使用时,我遇到了问题。我必须在num_layers部分下将feature_extractor设置为5才能解决该问题。

multiscale_anchor_generator {
  min_level: 3
  max_level: 7
  anchor_scale: 4.0
  aspect_ratios: [1.0, 2.0, 0.5]
  scales_per_octave: 2
}