- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经用自定义数据集(电池)训练了 SSD Mobilenet 模型。下面给出了电池的示例图像,并附上了我用来训练模型的配置文件。
当物体靠近摄像头时(用网络摄像头测试),它以超过 的概率准确检测到物体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
在检测小物体时很重要。
上图中,(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,
}
Conv2d_11_pointwise
的移动网络。
一般层数越低,feature map 特征越精细,对检测小物体效果越好 .所以你可以改变这个
Conv2d_11_pointwise
至
Conv2d_5_pointwise
(为什么会这样?可以从 tensorflow 图中发现,这一层的特征图比层
Conv2d_11_pointwise
更大),它应该有助于检测更小的物体。
Conv2d_5_pointwise
在
Conv2d_11_pointwise
,我们失去了
Conv2d_11_pointwise
的检测能力.
num_layers
也将配置文件输入为 7。
你可以把这个参数看成检测网络的分辨率,越低层级,分辨率就会越精细。
random_image_scale
关于tensorflow - SSD mobilenet 模型无法检测较远距离的物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56071683/
我想使用在ImageNet上预训练的MobileNet模型进行特征提取。我按如下方式加载模型: from keras.applications.mobilenet import MobileNet f
我有一个工作对象检测模型(微调的 MobileNet SSD)可以检测我的自定义小型机器人。我将向它提供一些网络摄像头镜头(将与无人机绑定(bind))并使用实时边界框信息。 所以,我准备购买相机。
我已经用自定义数据集(电池)训练了 SSD Mobilenet 模型。下面给出了电池的示例图像,并附上了我用来训练模型的配置文件。 当物体靠近摄像头时(用网络摄像头测试),它以超过 的概率准确检测到物
我想在自定义数据集上训练 Mobilenet SSD 模型。 我研究了重新训练模型的工作流程,并注意到配置文件中的 image_resizer{} 块: https://github.com/tens
我已关注tensorflow for poets教程,并对如何重新训练自定义对象的模型有了基本的了解。在教程中,我针对不同类别的花卉重新训练了模型,然后使用新生成的图表并得到了正确的结果。 现在我想重
我正在尝试加载在 TensorFlow 中训练的 mobilenet_v2_1.4_224(链接:https://github.com/tensorflow/models/tree/master/re
我如何使用 mobilenet 模型作为分辨率高于 224x224 的图像的特征提取器? 我想我需要在加载后更改某个图层以增加输入大小?我目前的代码是这样的: const featureExtract
我开始使用 Tensorflow/Deeplab 学习 ML。我尝试使用带有 mobilenet_v2 模型变体的语义分割从头开始训练自己的模型进行服装识别。但我没有得到结果。 我正在使用tensor
我对 SSD 和 mobilenet 感到困惑。据我所知,它们都是神经网络。 SSD提供定位,而mobilenet提供分类。因此SSD和mobilenet的结合可以产生物体检测。图片取自SSD pap
最近我一直在使用tensorflow inception V3 和mobileNet 将它们部署在Android 中使用。将 inception V3 的重新训练模型转换为“tflite”时,存在一些
我一直在研究在 tensorflow 中导入预训练模型的检查点。这样做的目的是让我可以检查它的结构,并将其用于图像分类。 具体来说,mobilenet 模型 found here .我找不到任何从各种
run_meta = tf.RunMetadata() enter codwith tf.Session(graph=tf.Graph()) as sess: K.set_session(sess)
这是有关 MobileNet V3 的论文的链接。 MobileNet V3 根据该论文,h-swish 和 Squeeze-and-excitation 模块是在 MobileNet V3 中实现的
我想基于重新训练的 ssd_mobilenet 模型创建一个对象检测应用程序,我已经像 youtube 上的那个人一样重新训练了。 . 我从 Tensorflow Model Zoo 中选择了型号 s
有没有办法仅使用 Keras API 来测试 Google 发布的名为“MobileNets”的预训练图像分类模型? 像 ResNet50 和 InceptionV3 这样的模型已经作为 Keras
我使用 MobileNet 和 TensorFlow 2 来区分 4 个非常相似的玩具。我有每个玩具的 750 张图片和一个包含 750 张“负面”图片的标签,没有任何玩具。 我之前为此使用过 Mob
对此问题更准确的描述是,当 is_training 未显式设置为 true 时,MobileNet 表现不佳。我指的是 TensorFlow 在其模型存储库 https://github.com/te
我正在尝试在图像分类任务的自定义数据集上微调 Mobilenet_v2_1.4_224 模型。我正在关注本教程TensorFlow-Slim image classification library
该模型过度拟合训练集并且无法泛化到测试集。 如何向模型的特征提取器部分添加 dropout? (.config文件只提供了一个键值给box predictor添加dropout) 我可以采取哪些其他措
我已经使用 Keras 微调 MobileNet v1。现在我有了 model.h5,我需要将它转换为 TensorFlow Lite 才能在 Android 应用程序中使用它。 我使用 TFLite
我是一名优秀的程序员,十分优秀!