object-detection - MobileNet-SSD输入分辨率

标签 object-detection object-detection-api

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

所以,我准备购买相机。

我的问题:由于 SSD 将输入图像的大小调整为 300x300,相机分辨率是否非常重要?更高的分辨率是否意味着更高的准确性(即使无论如何将其调整为 300x300)?在运行我的对象检测模型之前,我是否应该在每一帧将摄像机镜头裁剪成 1:1 的纵横比?我是否应该将图像分成 MxN 个裁剪片段并一个一个地运行推理?

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

非常感谢任何形式的智慧,谢谢。

最佳答案

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

关于object-detection - MobileNet-SSD输入分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54931023/

相关文章:

tensorflow - Tensorflow对象检测API的置信度

opencv - 60x60 检测窗口的合理训练图像大小?

javascript - 根据值从对象中删除项目

python - 错误 : object_detection. utils ModuleNotFoundError

deep-learning - 关于RetinaNet的困惑

python - 如何修复 TensorFlow 对象检测示例中 version.py 导致的错误

tensorflow - 使用 Tensorflow Object Detection API 检测图像中的小物体

python - Tensorflow 对象检测后续步骤

python-3.x - Tensorflow 2 对象检测 API : Numpy Version Errors

tensorflow - od_graph_def = tf.GraphDef() AttributeError : module 'tensorflow' has no attribute 'GraphDef'