【问题标题】:Neural network library for true-false based image recognition用于基于真假的图像识别的神经网络库
【发布时间】:2017-02-07 22:48:12
【问题描述】:

我需要一个人工神经网络库(最好在 python 中)来完成一项(简单)任务。我想训练它,以便它能够判断某物是否在图像中。我会通过喂它很多图片来训练它,并告诉它它是否包含我正在寻找的东西:

这些图片包含这个东西,返回真(或者它包含这个东西的概率)

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

这样的库是否已经存在?我对人工神经网络和图像识别还很陌生;虽然我理解它们在原则上是如何工作的,但我发现很难找到一个合适的库来完成这项任务,而且即使是这个领域的研究也被证明是一种挫折——任何对正确方向的建议都非常感谢。

【问题讨论】:

标签: python python-3.x boolean neural-network image-recognition


【解决方案1】:

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

要考虑的一件事是您是要使用 CNN(卷积神经网络)还是标准 ANN。使用 ANN,您很可能必须将图像“展开”成向量,而使用 CNN,它希望图像是立方体(如果是彩色,则为正方形)。

这里是一个good resource,关于 Python 中的 CNN。

但是,由于您并没有真正进行多类图像分类(CNN 是当前的黄金标准)并且更多地进行单个对象识别,因此您可以考虑使用转换图像方法,例如使用 @987654323 的方法@。

无论如何,神经网络方法的准确性,尤其是在使用 CNN 时,高度依赖于成功的超参数调整。不幸的是,目前还没有任何关于在给定情况下什么超参数值(层数和大小、学习率、更新规则、辍学率、批量大小等)是最佳的通用理论。所以准备好有一个很好的训练、验证和测试集设置,以适应一个健壮的模型。

【讨论】:

    【解决方案2】:

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

    我希望你知道ImageNet,并且Caffe 有一个基于ImageNet 的trained model

    这是一个想法:

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

    这是我写的ImageNet tutorial的链接。

    您可以尝试以下方法:

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

    我知道您正在寻找一个特定的库,我会寻找它,但这是我一开始会尝试的东西。

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2011-04-25
      • 2013-07-10
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 2014-04-13
      • 2015-02-20
      相关资源
      最近更新 更多