2016-09-29 37 views
1

我需要一个(简单)任务的人工神经网络库(最好是在Python中)。我想训练它,以便它可以告诉我们一件事情在图像中。我会通过喂养它大量的图片,并告诉其还判定是否包含我正在寻找或没有的事训练它:基于真假的图像识别的神经网络库

这些映像包含这个东西,返回True (或包含它的概率事情)

这些图像不包含这个东西,返回False (或包含的东西它的概率)

这样的图书馆是否已经存在?我对人工神经网络和图像识别相当陌生;虽然我理解他们两人在原则上是如何工作的,但我发现很难为此任务寻找一个合适的图书馆,甚至在这一领域的研究已被证明是一种挫败感 - 任何有关正确方向的建议都是非常值得赞赏的。

+0

https://www.tensorflow.org/versions/r0.10/tutorials/index.html –

回答

2

Python中有几种很好的神经网络方法,包括TensorFlow,Caffe,Lasagne和sknn(Sci-kit神经网络)。 sknn提供了一个简单的开箱即用解决方案,但在我看来,定制更加困难,而且对于大型数据集可能会很慢。

需要考虑的一件事是,您是要使用CNN(卷积神经网络)还是标准的ANN。使用ANN时,大多数情况下可能需要将图像“展开”为矢量,而使用CNN则希望图像为立方体(如果是彩色的,则为正方形)。

以下是Python中的CNN上的good resource。但是,由于您并未真正在做一个多类图像分类(为此CNN是当前的黄金标准),并且做了更多的单个对象识别,您可以考虑使用转换后的图像方法,例如使用Histogram of Oriented Gradients (HOG)

在任何情况下,神经网络方法(尤其是使用CNN)的准确性高度依赖于成功的超参数调整。不幸的是,在给定的情况下,超参数值(图层的数量和大小,学习速率,更新规则,丢失百分比,批量大小等)是最优的还没有任何一种通用理论。因此,准备好一个良好的培训,验证和测试集设置,以适应一个强大的模型。

-1

我不知道任何可以为你做到这一点的图书馆。我使用了很多Caffe,并可以给你一个解决方案,直到你找到一个可以为你做的单个库。

我希望你对ImageNet有所了解,并且Caffe有基于ImageNet的trained model

这里的理念是:

  • 定义什么是the object。说object = "laptop"
  • objectoutput labels中时,使用Caffe的ImageNet训练模型,更改代码以显示所需的输出(您提到TRUEFALSE)。

这是我写的ImageNet tutorial的链接。

这里是你可以尝试什么:

  • 看看here。这是我在预测引擎中使用的ImageNet程序的精简版本。
  • 在第80行中,您将获得排名前1的预测输出标签。在第86行,你会得到前5名预测标签。写一行代码来检查object是否在output_label中,并根据它返回TRUEFALSE

我明白你正在寻找一个特定的图书馆,我会寻找它,但这是我会在开始时尝试的。