gpt4 book ai didi

Tensorflow 高误报率和非最大抑制问题

转载 作者:行者123 更新时间:2023-12-01 23:28:05 25 4
gpt4 key购买 nike

我正在培训 Tensorflow 对象检测 在 Windows 10 上使用 fast_rcnn_inception_v2_coco 作为预训练模型。我在 Windows 10 上,在 NVIDIA GeForce GTX 1080、CUDA 9.0 和 CUDNN 7.0 上使用 tensorflow-gpu 1.6。

我的数据集仅包含一个对象“手枪”和 3000 张图像(2700 个训练集,300 个测试集)。图像的大小从 ~100x200 到 ~800x600。

我训练了这个模型 55k 次迭代,其中 mAP是 ~0.8 和 TotalLoss似乎收敛到 0.001。但是,看到评估,在同一个检测到的对象上有很多多个边界框(例如 thisthis ),以及很多误报( house detected as a pistol )。例如,在 this photo由我(后来应用模糊过滤器),该模型将人和汽车检测为手枪,以及正确检测。

数据集上传here ,连同 tfrecords 和标签映射。
我用过 this config file ,其中我唯一更改的是:num_classes 为 1、fine_tune_checkpoint、train 和 eval 的 input_path 和 label_map_path 以及 num_examples。
由于我认为多个框是非最大抑制问题,因此我将 score_threshold(第 73 行)从 0 更改为 0.01,将 iou_threshold(第 74 行)从 1 更改为 0.6。使用标准值,结果比这更糟糕。

我该怎么做才能获得良好的检测结果?我应该改变什么?也许我错过了一些关于参数调整的东西......

谢谢

最佳答案

我认为在深入研究参数调整(即提到的 score_threshold )之前,您必须检查您的数据集。

我没有检查您共享的整个数据集,但从高级角度来看,我发现的主要问题是 大多数的图像非常小并且具有高度可变的纵横比。

在我看来,这与您的配置文件的这一部分发生冲突:

image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 600
max_dimension: 1024
}
}

如果获取数据集的其中一张图像并手动应用该转换,您将看到小图像的结果非常嘈杂,而具有不同纵横比的许多图像的结果非常变形。

我强烈建议您使用更清晰的图像重新构建数据集,并尝试使用填充、裁剪或其他策略对具有不寻常纵横比的图像进行预处理。

如果您想坚持使用小图像,您至少必须更改 image_resizer 的最小和最大尺寸。但是,根据我的经验,这里最大的问题是数据集,我会花时间尝试解决这个问题。

钯。

如果我们认为它来自数据集的一个完全不同的域,我不认为房子误报是一个大问题。

您可能可以调整最小置信度以将检测视为真阳性并将其删除。

如果你把 COCO 的当前获胜者和像卡通一样的奇怪图像喂给它,你会发现它会产生很多误报。

因此,这更像是当前对象检测方法的一个问题,它对域更改不具有鲁棒性。

关于Tensorflow 高误报率和非最大抑制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49687809/

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