MobileNet-SSD输入分辨率

时间:2019-02-28 17:18:16

标签: object-detection object-detection-api

我有一个工作对象检测模型(经过微调的MobileNet SSD),可以检测到我的自定义小型机器人。我将为它提供一些网络摄像头素材(将与无人机绑定),并使用实时边框信息。

所以,我要购买相机。

我的问题:由于SSD将输入图像的大小调整为300x300,相机分辨率是否非常重要?更高的分辨率是否意味着更好的准确性(即使将大小调整为300x300也是如此)?在其上运行对象检测模型之前,是否应该在每一帧上将摄像机素材裁剪为1:1的长宽比?我应该将图像划分为MxN个裁剪的片段,然后一一进行推理吗?

因为我的机器人很小,而且无人机将处于4米的高度,所以我将有效地尝试在输入图像上检测出非常小的斑点。

非常感谢任何智慧,

1 个答案:

答案 0 :(得分:1)

这些是很多问题,我将尽力回答所有问题。该检测模型在通过某种调整大小的方法将输入图像馈送到网络之前调整其大小。双线性。如果输入图像等于或大于网络的输入大小而不是较小,那当然更好。一条经验法则是,确实更高的分辨率意味着更好的精度,但这在很大程度上取决于设置和任务。如果您要检测小的物体,例如,假设原始分辨率为1920x1080。然后,在调整图像大小之后,小物体将变得更小(逐像素),并且可能太小而无法检测到。因此,的确,将图像分割成较小的图像(可能有一些重叠以避免由于对象分割而导致的误检测)并在每个图像上应用检测或使用具有更高输入分辨率的模型会更好。请注意,虽然当前模型可以实现第一个模型,但您需要为后者训练一些新的模型,该模型可能需要进行一些架构更改(例如,添加SSD层并修改锚点,具体取决于您要检测的比例)。关于长宽比问题,您最需要保持一致。不保留原始宽高比并不重要,但是如果不保留原始长宽比,则可以同时在培训和评估/测试/部署中进行。