【问题标题】:Classify handwritten digits from images using Caffe使用 Caffe 对图像中的手写数字进行分类
【发布时间】:2016-12-16 21:47:07
【问题描述】:

我正在尝试使用 mnist 示例中经过训练的 LeNet 模型对给定图像中的数字进行分类。我正在关注cpp classification example,因为它读取图像(虽然是 ImageNet 数据)并对其进行分类。 我对 Imagenet 中的 sysnet 文件是什么以及它如何用于分类感到困惑?我们还需要一个用于 Lenet 的标签文件来对手写数字进行分类吗?如果需要,如何创建一个标签文件,格式应该如何?

【问题讨论】:

    标签: c++ deep-learning caffe


    【解决方案1】:

    caffe 本身有一个关于这个主题的很好的教程:http://caffe.berkeleyvision.org/gathered/examples/mnist.html。他们会比我更好地解释这一点。

    但是,对于标签,有多种方法可以做到这一点。最常见的图像只是按文件夹拆分。然后 1 文件夹包含显示数字 1 的图像,文件夹 2 显示具有数字 2 的图像,依此类推。然后你可以利用它来加载训练数据。

    但是,您也可以为每个图像创建一个标签文件,并将相应的编号写入标签文件。那么你只需要知道名称模式就可以找到标签文件。

    【讨论】:

    • 我对如何分类存有疑问。在 cpp_classification 的链接(有问题)中,他们使用了 synset_words.txt,这是一个标签文件,我不明白其格式。您能否更具体地了解一下标签文件的格式,它只是一个数字吗?
    • 此标签文件与数字识别无关。它与 imagenet 上的对象检测有关。这是从 id 到对象类的映射,如下所示:image-net.org/download-API
    • 我无法理解它是如何用于在 Imagenet 中对图像进行分类的。那么我实际上需要哪些文件来对数字进行分类呢?我需要定义网络的 prototxt 文件、具有所有权重和图像的 .caffemodel 对吗? mean_image 文件是必需的还是仅在训练期间使用?
    • prototxt 文件也定义了输入文件。 caffe.berkeleyvision.org/gathered/examples/mnist.html 的输入文件是examples/mnist/mnist_train_lmdb。该文件包括图像数据和标签。可以在此处找到对哪些文件的描述:github.com/BVLC/caffe/issues/2042
    • 分类是使用为特定图像输出某些类的模型完成的。班级只是一个数字。现在我们想知道那个类的名字。因此,我们提供了一个标签文件,将类映射到相应的对象。那就是 synset_words.txt 文件。
    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 2015-07-23
    • 2019-04-02
    • 2018-09-25
    • 2017-07-08
    • 2018-07-04
    • 2020-10-26
    相关资源
    最近更新 更多