【问题标题】:Methods to feed multiple images of same object to neural network for object detection将同一对象的多个图像馈送到神经网络进行对象检测的方法
【发布时间】:2017-10-24 10:37:09
【问题描述】:

我正在考虑一个使用神经网络进行物体识别的玩具项目。我的一些物体从一个特定角度看时非常相似,但从不同角度看时很容易区分。因此我的问题是:

有哪些方法可以将同一对象的多个图像输入网络?或者有哪些网络架构可以利用从不同角度拍摄的多张图像?

我对机器学习技术有很好的了解,但对神经网络只有基本的了解。所以我在这里寻找的是与谷歌搜索相关的方法、技术和其他行话的名称,以及可能感兴趣的特定论文或文章的链接。

【问题讨论】:

  • 不同角度是什么意思?是否像将图像旋转 90、180.. 度向您显示不同的对象?
  • @Pramod:不。从一个给定的角度看,两个不同的对象看起来是一样的。如果您在给定轴上将它们都旋转 90 度,那么只有这样它们才能区分。因此,我需要不同角度的图像才能正确分类。
  • 所以你在谈论数据增强。数据增强将增加数据量,并且通过从不同角度输入图像,CNN 实际上会变得健壮。通过这样做,任何网络都会得到改善。看到这个问题datascience.stackexchange.com/questions/5224/…
  • @Pramod:感谢您的链接,但我不是在这里谈论数据增强。我需要网络知道我从同一物体的不同角度向它提供了两个图像。通过将这两个图像作为两个单独的样本放入,我会错过重要信息。下面托马斯的回答是我所追求的。
  • 我最终使用了多个输入(每个摄像头一个输入)并在它们上使用了 Keras 合并层。我的对象并不总是向同一个相机显示同一侧,它们可以任意旋转。换句话说,我希望网络平等对待以下两种情况:“cam 1 显示 a,cam 2 显示 b”和“cam 1 显示 b,cam 2 显示 a)。不过,我对此并不完全确定。

标签: machine-learning neural-network computer-vision deep-learning image-recognition


【解决方案1】:

最常见的使用多维数据的方法是使用多维卷积 (https://keras.io/layers/convolutional/#conv3d)、循环网络 (http://www.deeplearningbook.org/contents/rnn.html) 或多输入,这有点类似于多维卷积。

循环网络处理数据序列,并且可以看到图像堆栈是一个序列。相比之下,多维卷积主要利用附近的数据。因此,相同的空间在您的图像堆栈中高度相关是很重要的。如果不是这种情况,您可能需要考虑在神经网络中使用多个输入。

【讨论】:

    猜你喜欢
    • 2018-04-12
    • 1970-01-01
    • 2020-02-13
    • 2017-11-12
    • 2013-04-30
    • 2020-04-12
    • 1970-01-01
    • 2021-12-31
    • 2011-07-30
    相关资源
    最近更新 更多