Tensorflow 图像增强会降低性能

Tensorflow 图像增强会降低性能,tensorflow,computer-vision,deep-learning,caffe,keras,Tensorflow,Computer Vision,Deep Learning,Caffe,Keras,我正在从事一个图像分割项目,并一直试图采用图像增强技术来增加训练集的大小。起初,我只是尝试使用水平翻转将图像大小增加一倍,但我发现性能比不使用它差得多。有什么可以分享的见解吗。谢谢。所以基本上你需要回答自己一个重要的问题:翻转的图像在你的域中是有效的图像吗? 如果不是-那么它可能会损害您的培训过程,因为您为网络提供了无效输入,这可能会从您的数据中学习到您的网络虚假模式。翻转可能会损害您的培训的情况并不罕见-例如,在徽标识别中,重要的是不要更改数据的方向,以便正确学习徽标 如果是-那么可能有不同的

我正在从事一个图像分割项目,并一直试图采用图像增强技术来增加训练集的大小。起初,我只是尝试使用水平翻转将图像大小增加一倍,但我发现性能比不使用它差得多。有什么可以分享的见解吗。谢谢。

所以基本上你需要回答自己一个重要的问题:翻转的图像在你的域中是有效的图像吗?

  • 如果不是-那么它可能会损害您的培训过程,因为您为网络提供了无效输入,这可能会从您的数据中学习到您的网络虚假模式。翻转可能会损害您的培训的情况并不罕见-例如,在徽标识别中,重要的是不要更改数据的方向,以便正确学习徽标
  • 如果是-那么可能有不同的原因导致您的模型开始表现更差。其中之一可能是它的容量太小,无法了解数据中的所有模式。第二,你没有足够的例子,当你添加翻转的图像时,它实际上记录了大量的训练案例。另一件事是,也许您学习它的时间太少,将迭代次数设置为更大的值可能是一个好主意

    有一点是肯定的——由于翻转的数据是有效的,所以您的模型不能很好地推广


  • 当您说数据扩充的性能更差时,您是在同一个数据集上比较这两者吗

    我只是犯了一个错误,将在增强数据集上进行数据增强训练的模型与在常规数据集上未进行数据增强训练的模型的精度进行了比较

    我惊讶地发现,随着数据的增加,准确率更差。然而,当我在没有增加的数据集上比较这两种精度时,有数据增加的模型显示出比另一个更好的性能


    重要的是要记住,对于模型来说,增加的数据集可能更难处理。因此,即使精度没有以前那么高,但在常规数据集上进行评估时,实际精度可能会更高。

    图像增强是一种很好的方法,但正如您所示,它不是一个灵丹妙药。图像增强通过改变与模型的基本映射功能无关的图像特征(即,图像亮度不应与狗的存在相关)来工作(在一定程度上),同时仍使图像中的对象可识别

    我认为你能做的最简单的改进就是改变你的增强技术。不要只是水平翻转图像,尝试缩放、剪切、旋转、拉伸、调整亮度、对比度、添加噪波等。这将改变原始图像,而不仅仅是一种增强模式。我为这项工作撰写的文章经历了不同类型的增强以及它们的作用,这就是我们更喜欢如何实现图像增强

    不同的增强示例: 剪 噪音: 色空间:


    通过过度依赖增强来增加模型的大小,您总是会面临将模型过度拟合到训练数据集的风险,但是改变增强技术将帮助您避免过度拟合。如果你有足够的资源,没有什么比新的数据更有效,如果你想获得更高的价值,你可以研究生成性的对抗网络,基本上你可以从头开始创建新数据。

    谢谢!就我的情况而言,如果我翻转训练图像,对我来说仍然有意义。因此,我将假定翻转的图像在我的域中仍然是有效的图像。我将看看你在第2项中提到的情景是否能给我任何指导。此外,如果该模型不具有普遍性,是否有克服它的建议。我正在使用segnet类型的框架进行分割工作。在这种情况下,您使用什么样的segnet?你能提供关于你拥有的数据类型和数量的见解吗?这些数据就像遥感图像。我有100张600*800大小的图片。我试过u-net和segnet。可能是这样的-你提供的数据量真的很小。那么-我的答案对你有帮助吗?