【发布时间】:2017-08-10 08:34:30
【问题描述】:
我已经在我自己的 PascalVOC 数据集上训练了 TensorFlow 对象检测 API,包含 7 个类。每个类有 100 到 200 张图像。我使用的是 ssd_mobilenet_v1_pets.config 标准配置,除了类数和步数选项。
在训练之前,我使用图像调整了大小,因此我的集合中的每张图像的大小都在 600 到 1024 像素之间。已使用 LabelImg App 完成注释。
在完成 100k 步的训练作业后,我在几个测试图像上使用来自 jupyter notebook tutorial 的代码尝试了我的模型。不幸的是,结果有点奇怪。
如果测试图像只包含一个对象,它可以正常工作:
但是如果图像上有很多物体,结果会很奇怪甚至不显示:
您可以看到由于某些原因它几乎检测到了整个图像。那么,您可以通过什么方法来检测图像上的多个对象,如上图所示。
非常感谢您的帮助。提前致谢!
这是我的任何情况下的标签图:
item {
id: 1
name: 'chesterfield_blue'
}
item {
id: 2
name: 'chesterfield_red'
}
item {
id: 3
name: 'lucky_strike_blue'
}
item {
id: 4
name: 'lucky_strike_red'
}
item {
id: 5
name: 'marlboro_gold'
}
item {
id: 6
name: 'marlboro_mentol'
}
item {
id: 7
name: 'marlboro_red'
}
【问题讨论】:
-
您是否尝试在放大图像的较小部分上运行该算法?使用什么算法来检测对象?它是在处理图像金字塔本身吗?
-
感谢您回复@omu_negru,是的,我一直在尝试对象较少的图像上的算法。探测器能够找到一个或最多两个物体,但也错过了其他物体。如果有感觉,我也可以尝试裁剪现有的测试图像,看看它在放大图像的某些部分上是如何工作的。谈到算法,如果你是指我用于训练的检查点,它们来自 ssd_mobilenet_v1_coco 模型,但如果你问我在训练后如何评估模型,我只是使用了他们 repo 中的 jupyter notebook 教程示例。随时询问任何其他信息。
标签: python machine-learning tensorflow computer-vision object-detection