gpt4 book ai didi

python - Tensorflow Object Detection API 无法正确检测到对象/根本无法检测到对象

转载 作者:行者123 更新时间:2023-11-28 18:14:15 24 4
gpt4 key购买 nike

我遵循了代码的整个步骤/格式(多次交叉检查以确保它们 100% 正确)以及在 Tensorflow Object Detection API 上训练自定义对象所需的数据。我尝试使用 ssd_mobilenet_v1_coco、faster_rcnn_resnet101_coco 以及 faster_rcnn_inception_v2_coco 模型,但仍然没有得到任何好的结果。我得到的只是对象的错误分类或根本没有边界框。

我正在训练以检测单个类对象,训练图像数量约为 250,验证图像数量为 63;每张大小不一的图像大多在 300 x 300 像素左右或更小。我正在训练模型,直到它们有点收敛(不完全收敛)。我通过查看超过 15000 步时显示的 eval 性能知道这一点,随着时间的推移,损失逐渐减少(至 < 0.04),但也会波动。我停止训练并导出图表。我的问题是:

我对我得到的用于解决对象检测问题的测试视频深表怀疑。视频帧非常大,尺寸为 1370 x 786 像素,其中我需要检测的对象与帧大小相比非常小。这是导致问题的原因吗?因为我的训练图像很小(300 x 300 和更小),而我的测试视频帧与训练图像相比太大了?我尝试了几次训练,但每个模型每次都失败了,我被困在了一个我想放弃的地步。

有人可以阐明这里发生的事情吗?我应该训练更多步数吗?还是我也应该训练与测试框架中相似的维度图像进行训练?这会有帮助吗?

以下是我使用的配置文件和labelmap.pbtxt的代码。

配置文件:

    fine_tune_checkpoint: ".../ssd_mobilenet_v1_coco_2017_11_17/model.ckpt"
from_detection_checkpoint: true
num_steps: 200000
data_augmentation_options {
random_horizontal_flip {
}
}
data_augmentation_options {
ssd_random_crop {
}
}
}

train_input_reader: {
tf_record_input_reader {
input_path: ".../train.record"
}
label_map_path: ".../labelmap.pbtxt"
}

eval_config: {
num_examples: 63

labelmap.pbtxt:

item {
id: 1
name: 'tomato'
}

最佳答案

Or should I train similar dimension images as in test frames for training as well? Will this help?

根据您的解释,这正是您需要做的。

您不应期望在 300x300 图像上训练的网络在 1370x786 图像上按预期工作。特别是如果对象在大图像中已经很小。

您的训练数据必须与您的评估数据尽可能相似,而不能进入危险的过拟合区。至少图像必须具有相似的大小和纵横比并且来自相同的域

一旦你解决了这个问题,请记住小物体真的很难检测到,所以你可能需要修改默认模型配置。

如果您没有实时约束,我建议您首先尝试将 output_stride 参数设置为 8 而不是 16 的 Faster-RCNN。

关于python - Tensorflow Object Detection API 无法正确检测到对象/根本无法检测到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49484066/

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