【问题标题】:Training image classifier - Neural Network训练图像分类器 - 神经网络
【发布时间】:2015-06-02 19:41:36
【问题描述】:
我想训练一个卷积神经网络来检测图像中是否存在手。
困难在于:
1/ 图像将包含除手以外的其他对象,就像一组人的照片,其中手只是图像的一小部分
2/ 手可以有许多方向/形状等(是否张开,取决于角度等)
我正在考虑在一大组裁剪的手部图像(+ 没有手部的随机图像)上训练卷积神经网络,然后将分类器应用于我图像的所有子方格。这是一个好方法吗?
还有其他复杂的 2-class convnets / RNNs 示例我可以从中获得灵感吗?
谢谢!
【问题讨论】:
标签:
neural-network
deep-learning
conv-neural-network
【解决方案1】:
我正在考虑在一大组短手上训练卷积神经网络
图像(+ 没有手的随机图像),然后应用分类器
在我图像的所有子方格上。这是一个好方法吗?
是的,我相信这将是一个好方法。但是,请注意,当您说随机时,您也许应该从“最有可能出现手”的图像中对其进行采样。这实际上取决于您的用例,您必须调整数据集以适应您正在做的事情。
你应该如何构建你的数据集,应该是这样的:
- 从大图像中裁剪手部图像。
- 从同一张图片中采样 X 张图片,但不要靠近手/手。
但是,如果您应该选择执行以下操作:
- 从大图像中裁剪手部图像。
- 下载 100 万张绝对没有手的图片(有点夸张)。例如,沙漠、海洋、天空、洞穴、山脉,基本上是很多风景。然后将其用作“没有手的随机图像”,您可能会得到不好的结果。
之所以这样,是因为已经有一个底层分布。我假设您的大多数图像可能是一群朋友的照片,在家里开派对,或者背景图像可能是建筑物。因此,在保持上述假设的同时,引入风景图像可能会破坏这种分布。
因此,使用“随机图像”时要非常小心!
在我图像的所有子方格上
至于您问题的这一部分,您实际上是在整个图像上运行一个滑动窗口。是的,实际上,它会起作用。但是,如果您正在寻找性能,这可能不是一个好主意。您可能需要运行一些分割算法来缩小搜索空间。
还有其他复杂的 2-class convnets / RNNs 的例子吗?
用于灵感?
我不确定您所说的复杂 2 类卷积网络是什么意思。我不熟悉 RNN,所以让我专注于 convnet。你基本上可以自己定义卷积网络。例如,卷积层的大小、层数、最大池化方法是什么、全连接层有多大等等。最后一层基本上是一个 softmax 层,网络决定了它要去的类是。如果您有 2 个类,则最后一层有 2 个节点。如果你有 3 个,那么 3 个。依此类推。所以它的范围可以从 2 到甚至 1000。我没有听说过有超过 1000 个类的卷积网络,但我可能不了解情况。我希望这会有所帮助!