0

我想重新训练量化的 Mobilenet-SSD V2 模型,所以我从 COCO 下载了未标记的文件夹。这个模型需要 300x300 的输入尺寸,但我成功地在不同尺寸的图片上重新训练了一次,它工作(很差,但工作)。此外,使用重新训练模型的代码将来自相机的输入大小调整为 500x500,并且可以正常工作。所以我的问题是,如果它也适用于其他尺寸,为什么它会写出所需的输入是 300x300?在标记它们之前,我是否需要将所有数据集的大小调整为 300x300?我知道它会对输入进行卷积,所以我认为大小并不重要(如果我错了,请纠正我)。据我所知,卷积一直持续到我们到达输入的末尾。

感谢您的帮助!

4

1 回答 1

3

如果我理解正确,您正在使用 TF Object Detection API。给定的模型,如 mobilenet-v2-ssd,包含 3 个主要块:[预处理(规范化和调整大小)-> [检测器(骨干网 + 检测头)]-> [后处理(bbox 解码+nms)]

当他们谈论所需的输入时,它是用于检测器的。检查点本身包含完整的管道,这意味着预处理单元将为您完成工作 - 因此无需事先将其调整为 300x300。

如果出于某种原因您打算自己将输入直接注入到检测器中,您必须执行与训练中相同的预处理

顺便说一句:在训练的配置文件(https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_mobilenet_v2_coco.config)中,您可以看到定义的调整大小: image_resizer { fixed_shape_resizer { height: 300 width: 300 } } - 标准化是 mobilenet 标准化(将输入的动态范围从 [0,255] 更改为 [-1,1]

于 2020-04-13T09:25:25.377 回答