首页 文章

使用Convnet的对象中心检测总是返回图像的中心而不是对象的中心

提问于
浏览
2

我有一个约150张图像的小数据集 . 每个图像都有一个放在地板上的物体(白色和黑色矩形框) . 所有图像中的对象相同,但地板的图案不同 . 目标是训练网络以找到图像的中心 . 每张图片的尺寸为 256x256x3 .

Train_X 的大小为 150x256x256x3 ,Train_y的大小为 150x2 (此处为150表示图像总数)

我理解150个图像太小了数据集,但我可以放弃一些准确性,所以我在Conv网上训练数据 . 这是我使用的convnet架构

  • Conv2D图层(过滤器大小为32)

  • 激活Relu

  • Conv2D图层(过滤器大小为64)

  • 激活Relu

  • Flattern图层

  • 密集(64)层

  • 激活Relu

  • 密集(2)

  • 激活Softmax

  • model.compile(loss = 'mse',optimizer = 'sgd')

观察:训练模型总是返回标准化的图像中心0.5,0.5作为“对象”的中心,即使在训练数据上也是如此 . 当我在train_X上运行预测函数时,我希望得到一个矩形对象的中心而不是图像的中心 . 我是否因为我的转换层选择而得到此输出?

1 回答

  • 0

    由于您未在详细信息中提及,以下建议(如果您尚未实施)可能会有所帮助:

    1)归一化输入数据(例如,如果您正在处理输入图像,x_train = x_train / 255,然后将输入馈送到图层)

    2)尝试对最后一个输出层进行线性激活

    3)在更高的时期运行拟合,并尝试不同的批量大小

相关问题