gpt4 book ai didi

tensorflow - SSD mobilenet 模型无法检测较远距离的物体

转载 作者:行者123 更新时间:2023-12-04 17:06:24 25 4
gpt4 key购买 nike

我已经用自定义数据集(电池)训练了 SSD Mobilenet 模型。下面给出了电池的示例图像,并附上了我用来训练模型的配置文件。

Sample Battery image

当物体靠近摄像头时(用网络摄像头测试),它以超过 的概率准确检测到物体0.95 但是当我将物体移动到更长的距离时,它没有被检测到。调试时,发现对象被检测到但概率较低 0.35 .最小阈值设置为 0.5。如果我将阈值 0.5 更改为 0.2,则会检测到对象,但会出现更多错误检测。

引用这个link , SSD 对于小物体的表现不是很好,一个替代的解决方案是使用 FasterRCNN,但是这个模型在实时性上很慢。我也希望使用 SSD 从更远的距离检测电池。

请帮我解决以下问题

  • 如果我们想以更高的概率检测更远距离的物体,我们是否需要更改配置中的纵横比和缩放参数?
  • 如果我们想要纵横比,如何选择与对象相关的那些值?
  • 最佳答案

    改变纵横比和尺度无助于提高小物体的检测精度(因为原始尺度已经足够小,例如 min_scale = 0.2 )。您需要更改的最重要的参数是 feature_map_layout . feature_map_layout确定特征图的数量(及其大小)及其相应的深度( channel )。但遗憾的是这个参数不能在 pipeline_config 文件中配置,你必须直接在特征提取器中修改它。

    这就是为什么 feature_map_layout在检测小物体时很重要。
    enter image description here

    上图中,(b)和(c)是两个不同布局的特征图。真实图像中的狗与 4x4 特征图上的红色 anchor 框匹配,而猫与 8x8 特征图上的蓝色 anchor 框匹配。现在,如果您要检测的对象是 猫耳 ,那么就没有 anchor 框来匹配对象。 所以直觉是:如果没有 anchor 框匹配一个对象,那么这个对象就不会被检测到。 要成功检测猫的耳朵,您可能需要一个 16x16 的特征图。

    以下是对 feature_map_layout 进行更改的方法.此参数在每个特定的特征提取器实现中配置。假设您使用 ssd_mobilenet_v1_feature_extractor ,然后您可以在 this 中找到它文件。

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

    这里有 6 个不同尺度的特征图。前两层直接取自 mobilenet 层(因此深度均为 -1),而其余四层则来自额外的卷积运算。可以看出,最底层的特征图来自层 Conv2d_11_pointwise的移动网络。 一般层数越低,feature map 特征越精细,对检测小物体效果越好 .所以你可以改变这个 Conv2d_11_pointwiseConv2d_5_pointwise (为什么会这样?可以从 tensorflow 图中发现,这一层的特征图比层 Conv2d_11_pointwise 更大),它应该有助于检测更小的物体。

    但是更好的准确性是有额外成本的,这里的额外成本是检测速度会下降一点,因为有更多的 anchor 框需要处理。 (更大的特征图)。也因为我们选择了 Conv2d_5_pointwiseConv2d_11_pointwise ,我们失去了 Conv2d_11_pointwise 的检测能力.

    如果您不想更改图层而只需添加额外的特征图,例如总共7个特征图,你将不得不改变 num_layers也将配置文件输入为 7。 你可以把这个参数看成检测网络的分辨率,越低层级,分辨率就会越精细。

    现在,如果您已经执行了上述操作,另一件有帮助的事情是添加更多带有小对象的图像。如果这不可行,至少您可以尝试添加数据增强操作,例如 random_image_scale

    关于tensorflow - SSD mobilenet 模型无法检测较远距离的物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071683/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com