首页 > 解决方案 > MobileNet-SSD 输入分辨率

问题描述

我有一个工作对象检测模型(微调 MobileNet SSD),可以检测我的自定义小型机器人。我将向它提供一些网络摄像头镜头(将与无人机相关联)并使用实时边界框信息。

所以,我准备购买相机。

我的问题:既然 SSD 将输入图像的大小调整为 300x300,那么相机分辨率是否非常重要?更高的分辨率是否意味着更高的精度(即使它被调整为 300x300 的尺寸)?在运行对象检测模型之前,我是否应该在每一帧将摄像机素材裁剪为 1:1 的纵横比?我应该将图像分成 MxN 裁剪段并逐个运行推理吗?

因为我的机器人非常小,无人机将在 4 米的高度,所以我将有效地尝试检测输入图像上的一个非常小的点。

非常感谢任何智慧,谢谢。

标签: object-detectionobject-detection-api

解决方案


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


推荐阅读